Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція по масивам.doc
Скачиваний:
7
Добавлен:
24.11.2019
Размер:
204 Кб
Скачать
☆

5.7 Строковий тип - string

Строковий тип - аналогічний типу одномірного масиву, але його компоненти мають тип CHAR. Довжина змінної даного типу за замовченням рівняється 255 символам, може бути так само обмежена в розділі описів. Компонента з нульовим номером містить довжину рядка. Строкові змінні описуються таким чином:

<Ім'я типу> : - STRING;

<Ім'я типу> - STRING[n];

На відміну від масивів кількість символів може змінюватися від 0 до 255. Якщо максимальний розмір рядка не зазначений, то він береться рівним 255 символам.

Приклад.

Var a1: string [2]; a2: string; Begin ….... A1:='ТАК'; A2:='Може бути'; … end.

До будь-якого символу можна звертатися за допомогою індексу.

Приклад.

A2:='Осінь';

Writeln(a2[3]); {На друк буде виведена буква е}

Writeln(ord(a2[0]); { ord(a2[0] )дає довжину рядка, }

A2:=A2+' прийшов'; {Знак + «склеює» рядка}

Writeln(a2); {На друк буде виведене повідомлення " Осінь прийшла"}

Для даного типу є бібліотека додаткових функцій:

1) Function Concat (<змінна1>,…,<змінна n>) - злиття строкових змінних.

2) Function Copy (<ім'я рядка>, <позиція>, <кількість символів>) - повертає підрядок із заданого рядка, починаючи з <позиції> довжиною <кількість символів>.

A:='baby_12_toy';

b:= Copy(a,6,3); { з рядка а починаючи з 6 позиції копіюється 3 символи. Результат b= 12_}

3) Procedure Delete (<ім'я рядка>, <позиція>, <кількість символів>) - видалення.

4) Procedure Insert (<ім'я вставки>,< ім'я рядка>, <позиція>) - вставка.

5) Function Upcase (<змінна>) - повертає для малих латинських букв відповідні великі букви.

6) Function Pos (<ім'я підрядка >, <ім'я рядка>) - пошук 1-го входження фрагмента (підряка) у даний рядок.

7) Function Length (<ім'я рядка >) - повертає довжину рядка, результат типу integer.

8) Procedure Val(<ім'я рядка>, <змінна цілого або дійсного типу>, <параметр>) - перетворює рядок символів у значенні цілого або дійсного типу, залежно від типу змінної. Якщо перетворення вдале, <параметр> = 0, якщо немає - він містить номер позиції, де відбулася помилка перетворення.

Приклад. Підрахувати кількість цифр у рядку.

uses wincrt; var ln, i, h: word; St: string; begin writeln('введіть рядок'); readln (st); ln:=ord (st [0]); for i:=1 to ln do if(st[i]>='0') and st[i]<='9') then h:=h+1; write('кількість цифр=',h); end.

5.8 Множини

Множини - набори однотипних об'єктів. Множина може містити до 255 елементів.

Type <ім'я типу> = Set of <тип елементу>

Де <тип елемента> - базовий тип елементів множини, у якості якого може використовуватися будь-який порядковий тип, крім WORD, INTEGER, LONGINT.

Приклад.

uses wincrt; Type dc = Set of '0'…'9'; dt=Setof0...9…9; var s1,s2,s3:dc;s4,s5,s6:dt; begin ……………… s1:=['1','2','3']; s2:=['3','2','1']; s3:=['2','3']; s4:=[0...3,6]; s5:=[4,5]; s6:=[3...9]; ……………… end..........

Основні операції над множинами:

+ об'єднання; результат містить елементи першої множини, доповнені відсутніми елементами із другої:

s4+s5 (([0,1,2,3,4,5,6];

s5+s6 ( [3,4,5,6,7,8,9];

* перетин; результат містить елементи, загальні для обох множин:

s4*s6 ( [3,6].

- різниця; результат містить елементи з першої безлічі, які не належать другому:

s6-s5 ( [3,6,7,8,9];

= перевірка еквівалентності; повертає значення TRUE, якщо обидві множини еквівалентні.

<> перевірка нееквівалентності; повертає значення TRUE, якщо обидві множини нееквівалентні.

<= перевірка включення; повертає значення TRUE, якщо перша множина включається в другу.

>= перевірка включення; повертає значення TRUE, якщо друга множина включається в першу.

IN перевірка належності; у цій операції перший елемент - вираз, а другий - множина. Повертає TRUE, якщо вираз має значення, що належить множині:

3 in s6 повертає TRUE;

2*2 in s1 повертає FALSE;