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.


 

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

10433. Загальні фізичні властивості металів. Металічний звязок. Особливості будови атомів металів 67 KB
  Навчальний предмет: хімія Клас: 9 Тема уроку: Загальні фізичні властивості металів. Металічний звязок. Особливості будови атомів металів Вид заняття: урок вивчення нового матеріалу Цілі уроку: навчальні: формувати поняття про металічний звязок е...
10434. Загальні хімічні властивості металів 71.5 KB
  Тема: Загальні хімічні властивості металів Навчальна мета: розглянути хімічні властивості металів як простих речовин з позиції знань про окисновідновні реакції сформувати поняття про метали як відновники; сформувати вміння порівнювати хімічну активність металів ск...
10435. Значення хімії у створенні нових матеріалів, розвязання сировинної та енергетичної проблем 53 KB
  Тема: Значення хімії у створенні нових матеріалів розвязання сировинної та енергетичної проблем. Навчальна мета: поглибити й розширити знання учнів про роль хімії у створенні нових матеріалів; показати можливості застосування нових синтетичних матеріалів з оригін...
10436. Значення хімії у створенні нових матеріалів 45.5 KB
  Тема: Значення хімії у створенні нових матеріалів. Навчальна мета: поглибити й розширити знання учнів про роль хімії у створенні нових матеріалів; показати можливості застосування нових синтетичних матеріалів з оригінальними властивостями й новими технологіями. ...
10437. Кисень у природі. Фізіологічна дія кисню. Одержання кисню в лабораторії. Реакції розкладу. Поняття про каталізатор. Фізичні властивості кисню 93 KB
  Тема: Кисень у природі. Фізіологічна дія кисню. Одержання кисню в лабораторії. Реакції розкладу. Поняття про каталізатор. Фізичні властивості кисню. Тип уроку: комбінований урок з елементами інтерактивності. Навчальна мета: Розглянути елемент Оксиген та просту ре...
10438. Корозія металів та способи захисту від корозії 60.5 KB
  Корозія металів та способи захисту від корозії. Мета: навчальна: дати поняття про корозію металів як окисновідновний процес ознайомитись з причинами її виникнення; показати шкоду якої завдає корозія; розглянути способи захисту металів від корозії. виховна: фо
10439. Динаміка культурних процесів 97.5 KB
  Динаміка культури характеризує трансформаційні процеси всередині культури й у взаємодіях культур, які специфічні цілісністю, закономірністю, спрямованістю і впорядкованістю провідних тенденцій. Для динаміки культури характерною є усталеність взаємодії компонентів
10440. Загальні методи одержання металів. Метали в природі 84.5 KB
  Тема: Загальні методи одержання металів. Метали в природі. Навчальна мета: спираючись на знання періодичного закону та типи хімічних звязків поглибити знання учнів про елементи метали їх місце у періодичній системі та особливості будови атомів сформувати поняття
10441. Метали в природі. Загальні методи одержання металів 53.5 KB
  Тема: Метали в природі. Загальні методи одержання металів. Навчальна мета: спираючись на знання періодичного закону та типи хімічних звязків поглибити знання учнів про елементи метали їх місце у періодичній системі та особливості будови атомів; сформувати поняття