Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОП Конспект лекций - Паскаль.doc
Скачиваний:
20
Добавлен:
30.11.2018
Размер:
1.46 Mб
Скачать

Тема 20: Процедури та функції для обробки рядків

Строковий тип даних. Змінна типу String.

Усе раніше розглянуті типи даних могли зберігати тільки один об'єкт: чи символ число. У Turbo Pascal-і є тип даних для обробки ланцюжка символів – рядків. Цей тип даних займає проміжне положення між простими структурованими типами.

Для збереження рядків використовується змінна типу String (рядок), що складається з елементів типу Char. Оголошення її має вид:

var ім'я змінної : string[n];

де n – довжина рядка (кількість символів), що може зберігатися в цій змінній. За замовчуванням довжина рядка максимальна – 225 символів.

Приклад описів:

var str1 : string;

str2 : string[10];

str3 : string[64];

Змінну типу String можна обробляти як цілий рядок, чи як складену з окремих елементів типу Char. Значення, що привласнюються строковій змінний, полягають в апострофи:

str1 :='ми – ';

str2 :='учні';

str3 :='10-а класу';

Ці рядки можна об'єднати операцією конкатенації:

str4 :='ми -' + 'учні' + '10-а класу';

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

str1[1] :='А'{першим символом у рядок str1 занести 'А'}

str3[4] :='б' {четвертим символом у рядок str3 занести 'б'}

одержимо:

“А ми – учні 10-б класу”

До символів рядка застосовні всі операції, що і до змінної типу Char.

Рядки обробляються за допомогою наступних стандартних процедур і функцій.

Функція Length (Str) визначає довжину текстового рядка, що зберігається в перемінної Str. Наприклад.

var

str : string;

begin

write ('Уведіть рядок:');

readln (str);

writeln (‘У цьому рядку’, length (str),’ символів.’ )

end.

Функція UpCase(Str[i]) перетворює латинську букву з рядкової в прописну в i-й позиції рядка, що зберігається в змінній Str. Рядок обробляється за допомогою циклу. Наприклад.

var

str : string; i : byte;

begin

write (‘Уведіть рядок:’);

readln (str);

for i := 1 to length(str) do

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

writeln(str)

end.

Функція Copy(Str,p,n) вирізає з рядка, що зберігається в змінній Str, фрагмент довжиною n символів, починаючи з позиції p. Наприклад.

var

str1, str2, str3, str4 : string;

begin

str1 := 'абракадабра';

writeln(str1);

str2 := copy(str1,2,4);

writeln(str2);

str3 := copy(str1,2,3);

writeln(str3);

str4 := copy(str1,3,3);

writeln(str4);

end.

Функція Pos(Frag,Str) виконує пошук фрагмента Frag у рядку Str. Якщо рядок містить фрагмент, то функція повертає номер позиції в рядку, з якої починається цей фрагмент; якщо такого фрагмента немає, - функція повертає 0. При пошуку символи фрагмента повинні збігатися із символами рядка; прописні і малі літери розрізняються, тобто «А» не ідентична «а». Наприклад.

var

frag,str : string; position : byte;

begin

write('Введіть слово: ');

readln(str);

write('Введіть фрагмент: ');

readln(frag);

position := pos(frag,str);

if position <> 0 then

writeln(‘Фрагмент’, frag,’ міститься в слові ‘,str,

‘, починаючи з позиції ‘, position)

else

writeln(‘Фрагмент’, frag,’ не міститься в слові ‘,str)

end.

Процедура Insert(Str1, str2,p) уставляє рядок Str1 у рядок Str2, починаючи з позиції р.

Процедура Delete(Str,p,n,) видаляє n символів рядка Str, починаючи з позиції р. Наприклад.

var

str1, str2: string[20];

begin

str1 := 'комп'ютеризація';

writeln(str1);

delete(str1,1,7);

Writeln(str1);

Delete(str1,3,2);

Writeln(str1);

str2:=’Г’;

Insert(str2,str1,1);

Writeln(str1);

str2:=’не’;

Insert(str2,str1,3);

Writeln(str1);

end.

Процедура Сoncat(str1, str2, . . str) виконує зчеплення рядків str1, str2,...str у зазначеному рядку. Результуючий рядок не повинен перевищувати 255 символів. Наприклад.

var

str1,str2:string;

begin

str1 := ’електро’;

Writeln(str1);

str2 := ’технічний коледж’;

Writeln(str2);

Writeln(‘новий рядок:’,concat(str1,str2));

end.

Питання для контролю

  1. Змінна строкового типу.

  2. Присвоєння значень строкової змінної.

  3. Доступ до символів рядка.

  4. Визначення довжини рядка.

  5. Витяг фрагмента з рядка.

  6. Пошук фрагмента в рядку.

  7. Вставка одного рядка в інший.

  8. Видалення символів з рядка.

  9. Операція конкатенації рядків.