Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
posibnik_paskal.pdf
Скачиваний:
230
Добавлен:
11.02.2016
Размер:
2.43 Mб
Скачать

«Turbo Pascal »

Значенко О.П.

ТЕМА 9. РОБОТА З РЯДКОВИМИ ТИПАМИ ДАНИХ В СЕРЕДОВИЩІ ТУРБО ПАСКАЛЬ

У кожному комп’ютері можуть зберігатися числа та символьні данні. Кожен символ займає один байт пам’яті. Для даного, значення якого є одиничний символ, використовується тип даних CHAR. У Мові Турбо Паскаль існує тип даних, призначений для обробки ряду символів STRING. Рядок може містити ві 0 до 255 символів.

Змінна типу STRING складається з ланцюжка символів, тобто елементів типу CHAR. Рядки виводяться на екран монітора стандартними процедурами WRITE, WRITELN та вводяться в пам’ять комп’ютера стандартними процедурами READ,

READLN.

Оголошення рядкових типів та рядкових змінних.

Змінна типу STRING можн бути оголошена наступним чином.

Var <змінна> : string [n];

Приклад:

VAR

A:STRING;

B:STRING [45]; {довжина рядка повинна не перевищувати 45

символів + 1 байт для зберігання довжини рядка}

Де в дужках зазначається максимальна довжина рядка, якщо розмір не вказано то розмір рядка береться максимальною 255.

Операції над рядками

Присвоювання. Оператор присвоювання має такий вигляд:

<ім’я змінної>:=<рядковий вираз>

Об’єднання рядків. Ця операція дозволяє з’єднати два рядки в один, приєднавши початок другого рядка до кінця першого. Операція позначається символом „+”.

Приклад:

x:=’тепло’;

y:=’хід’; z:= x+y;

Порівняння рядків. (=, <>, <=, >=, >, < ). Де (=) „рівність” означає посимвольний збіг рядків, а (<>) „не дорівнює” означає, що рядки не збігаються. При застосуванні

51

«Turbo Pascal »

Значенко О.П.

решти операторів порівняння рядків відбувається зліва на право до першого не співпадаючого символу. Довшим вважається той рядок, в якого перший не співпадаючий символ має більший номер у таблиці кодів (‘abd’>’abc’). Якщо рядки різної довжини то коротший рядок вважається меншим.

Процедури та функції обробки рядків

ФУНКЦІЇ

1.LENGTH (х) - (довжина). Вбудована функція, що дозволяє визначити фактичну довжину рядка, який зберігається у вказаній змінній.

Приклад: Визначити довжину двох рядків та їх об’єднання.

Program p2;

Var x, y : string [10]; l, k, n : integer;

Begin

Writeln (‘введіть два рядка’);

Readln (x);

Readln (y); k:=Length (x); l:= Length (y); n:= Length (x+y); Writeln (k, l,n);

Readln; End.

2. COPY (R, N, K) - (копіювання). Функція дозволяє копіювати фрагмент рядка

зодної змінної в іншу. Викликаючи дану функцію необхідно вказати такі параметри: R -ім’я рядка, з якого береться фрагмент;

N -позиція у рядку, починаючи з якого буде копіюватися фрагмент; K - кількість копіюємих символів.

Приклад:

 

Program p3;

 

Var x, y : string [10];

 

Begin

 

x:=’інформатика’;

 

y:= Copy (x, 3, 5);

 

Writeln (y);

{результат - форма}

Readln;

 

End.

 

52

«Turbo Pascal »

Значенко О.П.

3. POS(<фрагмент>,<рядок>) - (пошук). За допомогою даної функції здійснюється пошук певного фрагменту. Якщо заданий фрагмент у рядку існує, то функція повертає номер позиції в рядку з якої цей фрагмент починається. У випадку якщо фрагмент не знайдено то функція повертає „0”. Функція вимагає повного спів падання фрагменту в рядку та фрагменту який шукається. Причому великі та маленькі літери вважаються різними.

Приклад.

Program p4;

Var x, y : string [10]; i: integer;

Begin x:=’ай’;

y:=’файл’; i:= Pos (x, y);

If i<>0 then

Writeln (‘фрагмент знаходиться у слові в позиції’, і);

Readln;

End.

4. UPCASE (x[i]) - (перетворення літери в прописну). Дозволяє перетворювати символ-якої літери в прописну. Ця функція розрахована на обробку окремого символу, тому для обробки рядку символів за допомогою даної функції необхідно організувати цикл.

Приклад.

Program p5;

Var x : string [10]; i: integer;

Begin

x:=’Турбо Pascal’;

For i:=1 to length (x) do

x[i]:= UpCase (x[i]);

 

Writeln (x);

{ результат - Турбо PASCAL}

Readln;

 

End.

{ В результаті роботи даної програми на екран монітора буде виведено рядок, який містить великі англійські та маленькі російські }

53

«Turbo Pascal »

Значенко О.П.

ПРОЦЕДУРИ

1.INSERT(F, R, N) - (вставка). За допомогою даної процедури можна вставити фрагмент з вказаної позиції.

INSERT (<фрагмент>, <рядок> , <позиція з якої вставлено фрагмент в рядок>)

2. DELETE(R, N, K) (видалення). Процедура знищує у визначеному рядку фрагмент, визначеної довжини починаючи з вказаної позиції.

DELETE ( <рядок>, <позиція>, <кількість символів які буде видалено>)

Приклад: Програма трансформації слова.

Program p6;

Var x : string [10];

Begin x:=’форма’;

Insert(‘i’,x, 2); {фіорма} Delete(x, 3,1); {фірма}

Writeln (х); Readln;

End.

3.STR(<число>, <змінна>) Процедура переводить числове дане в дане типу рядок.

Приклад програми. З двох слів обрати найбільше та обернути його.

Program p7;

Var x, y, n, z : string [30]; i, k, l: integer;

Begin

Writeln (‘введіть перше слово’);

Readln (x);

Writeln (‘введіть друге слово’);

Readln (y); k:=length(x); l:= length(y);

If k>l then n:=x else n:=y; for i:=1 to length (n) do z:= Copy(n, i, 1)+z;

Writeln (z); Readln;

End.

54

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]