Рядковий тип даних у Паскалі, Контент-платформа

рядковий

Рядковий тип даних у Паскалі

Рядок (рядковий тип даних)– це послідовність символів довжиною N,де 1 s1, то зайві символи будуть відкинуті

2. Операції порівняння (відносини) =, <>, >, =.

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

1)Порівняння рядків проводиться посимвольно відповідно до їх кодів зліва направо до першого символу, що не збігається. Рядок вважається більше, якщо в ній перший символ, що не збігається, має більший номер у таблиці кодів.

Наприклад, 'MS-DOS' ='0') and (S1[i] st[j]) or (st[j]<>' ') then

for i: = 1 to j do write (st [i]); writeln;

2) Робота з рядком як з єдиним об'єктом масивом (у цьому випадку поточна довжина рядка динамічно змінюється):

Begin writeln('input st');

while pos(' ',st)>0 do delete(st, pos(' ',st),1);

Як перетворити цю програму, щоб не було прогалин на початку і в кінці рядка?

Begin writeln('input st');

while pos(' ',st)>0 do delete(st, pos(' ',st),1);

if st[1]=' ' then delete(st,1,1);

if st[length(st)]=' ' then delete(st, length(st),1);

У PascalABC це завдання спрощується:

Begin writeln('input st');

while pos(' ',st)>0 do delete(st, pos(' ',st),1);

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

Begin writeln('input s');

While pos(' ',s)>0 do

Завдання 2.Знайти в рядку слово максимальної довжини.

Whilepos(' ',s)>0 do

Begin writeln('input s');

Зауваження:У задачі використовувався правильний рядок. В іншому випадку треба її привести до цього виду, видаливши зайві прогалини (рішення див. вище) і оформивши це у вигляді процедури. Краще цю процедуру включити до свого модуля.

Список завдань на рядковий тип.

1. Дано рядок символів. Підрахувати кількість слів у рядку. Оформити у вигляді процедури чи функції.

2. Дано рядок символів. Знайти слово максимальної довжини. Оформити у вигляді процедури чи функції.

3. Дано рядок символів. Знайти слово мінімальної довжини. Оформити у вигляді процедури чи функції.

4. Дано рядок символів. Видалити всі слова, що починаються на "pro". Оформити у вигляді процедури чи функції.

5. Дано рядок символів. Видалити всі символи цифр з рядка. Оформити у вигляді процедури чи функції.

6. Дано рядок символів. Видалити з неї текст, що міститься в <>. Вважати, що таке поєднання зустрічається у рядку лише один раз.

7. Дано рядок символів. Визначити, чи є в ній слова, що починаються і закінчуються на ту саму літеру. Оформити у вигляді процедури чи функції.

8. Дано рядок символів. Визначити чи є у ній слова-паліндроми. Оформити у вигляді процедури чи функції.

9. Дано рядок символів. Замінити символи "I", "2", "3" словами "один", "два", "три". Оформити у вигляді процедури чи функції.

10. Написати процедуру, яка вставляє вказаний символ після цієї позиції.

11. Написати функцію, що визначає входження даного елемента в рядок.

12. Визначити скільки разів GOTO зустрічається у рядку. Оформити у вигляді процедури чи функції.

13. Рядок символів складається з латинських літер. Розташувати їх за абеткою. Оформити ввигляді процедури чи функції.

14. Знайти у рядку всі слова-паліндроми. Оформити у вигляді процедури чи функції.

15. Визначити чи є у рядкуоднакові слова. Оформити у вигляді процедури або функції.

16. Видалити з рядка всі парні слова. Оформити як процедури.

17. Дано рядок символів. Видалити всі нецифрові символи з рядка. Оформити у вигляді процедури чи функції.

18. Дано рядок символів. Визначити, скільки різних символів у рядку.