69742

Символьні масиви. Рядковий тип

Домашняя работа

Информатика, кибернетика и программирование

Крім того, для рядкових масивів допустима операція конкатенації, яку позначають символом +. Вона полягає у формуванні нового символьного масиву, розмір якого дорівнює сумі розмірів масивів-операндів, а значення - це елементи масивів-операторів, розміщені послідовно.

Украинкский

2014-10-09

40 KB

0 чел.

Самостійне вивчення

Тема 4: Символьні масиви. Рядковий тип.

Окремо виділимо масиви, елементи яких є символьного типу (char). Такі одновимірні масиви, індексами яких є діапазон цілого типу, називають рядками. Наприклад:

var R: array [1..14] of char;

У Паскалі є деякі додаткові засоби роботи з такими масивами. По-перше, змінним такого типу можна присвоювати символьні сталі (тобто рядки символів):

R:='Рядок символів';

У цьому випадку довжина присвоюваного рядка повинна чітко збігатися з розмірністю відповідного символьного масиву.

Крім того, для рядкових масивів допустима операція конкатенації, яку позначають символом +. Вона полягає у формуванні нового символьного масиву, розмір якого дорівнює сумі розмірів масивів-операндів, а значення - це елементи масивів-операторів, розміщені послідовно. Наприклад:

var

s1: array [1..5] of char; s2: array [1..8] of char;

Тоді можна записати

s1:='Рядок'; s2:='символів'; writeln(s1+'   '+s2);

Буде виведене повідомлення: Рядок символів

Виведення для рядка не є обов'язково покомпонентне, дозволено задати й ім'я. Операцію конкатенації не можна використати в правій частині присвоєння, наприклад, s:=s1+s2. Для цього треба застосувати рядки змінної довжини.

Рядки, що містять однакову кількість компонентів, хоча належать до різних типів, можна порівнювати за допомогою

знаків -, <>, <, <-, >, >=. Для цього використовують властивість упорядкованості рядків. Рядки порівнюють шляхом послідовного порівняння символів до першого незбігання. Незбіжні символи визначають упорядкованість рядків. Упорядкованість же символів визначена їхнім внутрішнім зображенням у комп'ютері, зокрема, для букв - це алфавітний порядок, для цифр - порядок за зростанням.

Для прикладу порівняємо дві змінні рядкового типу:

type

aa=array [1..10] of char;

var

x1, x2: aa;

b: boolean;

x1 :='програма 1';

х2:='прогноз 22;

b:=х1>х2;

У цьому випадку b буде мати значення true, оскільки 'р'>'н'. Стандартна процедура read не читає автоматично рядки, їх треба читати в циклі символ за символом.

Рядковий тип (string)

У Турбо Паскалі реалізований рядковий тип, що є узагальненням символьних масивів, який дає змогу, на відміну від них, динамічно змінювати довжину рядка. Загальний вигляд опису рядкового типу такий:

type

<ім'я>=string[<максимальний розмір>];

Наприклад:

type

Line=string[80];

var R: Line;

Тепер змінна R типу Line може набувати значення будь-якої послідовності символів (типу char) завдовжки від 0 до 80. Це значення може бути присвоєне або введенне. Наприклад:

R:='Гpyпa КТ-14'; або readln(R); (3 клавіатури вводять ГрупаКТ-14<Enter>).

Як і для символьних масивів, тут використовується операція конкатенації. Наприклад:

writeln(R+'складає іспит 20-го січня');

Максимальну довжину в описі рядкового типу зазначають цілим числом або не зазначають, за замовчуванням приймається 255.

Під змінну рядкового типу відводиться N+1 байтів пам'яті, де N - максимальна довжина, зазначена в описі (рис 1).

Нульовим елементом є байт, що містить значення довжини поточного рядка, наступні k елементів - поточне значення рядка, і байти k+1..N- вільні.

 0 1 2          к    к+1 n-1      n

 Значення рядкової змінної Вільна частина

Довжина рядкової змінної

Рис. 1. Структура пам'яті для даних типу string.

Для визначення довжини поточного значення рядка використовують нульовий елемент

Writeln (ord(R[0]))

З іншого боку, якщо спочатку присвоїти R[0]:=5;

то writeln(R) виведе "Група", тобто тільки п'ять елементів.

Частіше для визначення довжини рядка використовують функцію Length, параметром якої є вираз рядкового типу. Наприклад:

writeln(Length(R+'здає  іспит 20-го січня')); виведе число 33 - цілого типу.

Крім операції конкатенації, над змінними рядкового типу визначені операції порівняння, у разі використання яких діють такі правила:

а) коротший рядок завжди менший від довшого;

б) якщо довжини однакові, то поелементно порівнюються символи порівнюваних рядків з урахуванням лексикографічної впорядкованості значень стандартного символьного типу char.

Присвоєння змінній рядкового типу виразу з довжиною, більшою від максимально допустимої, зумовлює до обрізання рядка до максимальної довжини. Наприклад:

var

st: string [5];

st:='Програма';

writeln(st);

Буде виведене слово Прогр.

Доступ до окремих елементів рядкових типів такий самий, як і до елементів звичайних одновимірних масивів - за допомогою індексів у квадратних дужках. Наприклад: R[5];     st[2].

У процесі поелементного опрацювання рядкових типів треба враховувати їхню поточну довжину.

У Турбо Паскалі з рядковими типами використовують низку функцій:

1) concat([s1 ,s2,...,sn]: string): string - злиття довільної кількості рядків. Якщо довжина вислідного >255, то він буде обрізаний;

2) copy(s: string; Index: integer; Count: integer): string - повертає частину рядка 5 довжиною Count, починаючи від символу з номером Index;

3) delete(var s: string; Index, Count: intrger) - вилучає з рядка s частину цього рядка довжиною Count, починаючи з Index;

4)  Insert(Source: string; var s: string; Index: integer) — вставляє рядок Source в рядок s, починаючи з Index;

5)  Length(s: string): integer - повертає довжину рядка s;

6) Pos(Substr, s: string): byte - результатом цієї функції є номер позиції, з якої в рядку s розміщений рядок Substr.


 

А также другие работы, которые могут Вас заинтересовать

44990. Качество как экономическая категория и объект управления 800.06 KB
  Понятие качества. Значение повышения качества. Качество как объект управления и основные концепции менеджмента качества. Академия проблем качества России.
44991. Управление затратами на обеспечения качества 741.03 KB
  Этапы формирования и виды затрат на качество продукции. Информационная база анализа затрат на качество продукции. Методы анализа затрат на качество продукции. Экономическая эффективность новой продукции.
44992. Сертификация продукции и систем качества 1.35 MB
  Понятие сертификации продукции. Преимущества сертификации продукции. Этапы проведения сертификации системы качества. Международная практика сертификации.
44994. Оборотный капитал предприятия 67.5 KB
  Определение плановой потребности в оборотных средствах Источники финансирования оборотных средств Оборотными текущими активами называется постоянно находящаяся в движении совокупность производственных оборотных фондов и фондов обращения в денежном выражении предназначенных для обеспечения бесперебойного процесса производства продукции и ее реализации. Классификация оборотных фондов Первый уровень классификации по функциональному признаку. Второй уровень по видам оборотных средств.
44995. Методы математического моделирования в статистике 193.5 KB
  Математической статистикой называют раздел математики, посвященный математическим методам систематизации, обработки и использования статистических данных для научных и практических выводов. Статистические данные здесь понимаются как сведения о числе объектов в какой-либо более или менее обширной совокупности, обладающих теми или иными признаками.
44996. ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ СУЧАСНИХ ПК 58 KB
  Програмне забезпечення ПК – це сукупність системних, прикладних та програм технічного обслуговування ПК. Вони дають змогу найбільш ефективно використовувати ресурси ПК при розв’язанні практичних задач. Основними вимогами до програмного забезпечення ПК...
44997. Финансовые службы, их задачи и функции 48 KB
  Финансовые службы их задачи и функции План Финансовые службы предприятия Финансовые службы предприятия Деятельность финансовых служб подчинена главной цели обеспечению финансовой стабильности созданию устойчивых предпосылок для экономического роста и получения прибыли Задачи финансовых служб: организация взаимоотношений предприятия с другими субъектами хозяйствования поиск внутренних и внешних краткосрочных и долгосрочных источников финансирования выбор наиболее оптимального их сочетания своевременное обеспечение финансовыми...
44998. Разработка программы маркетинговых коммуникаций для ООО «Тойота Центр Кунцево»нсовое 2.1 MB
  Исследованы теоретические основы разработки программ маркетинговых коммуникаций для автодилеров; проанализирована внешняя маркетинговая среда автомобильного салона «Тойота» (Москва); оценено положение на рынке автомобильного салона «Тойота» (Москва) и проанализирована его маркетинговая деятельность...