Завдання

Варінт 1

1. Дано лiтерну змiнну довжини N, яка складається з символiв S1, S2, ...,Sn. Cкласти алгоритм та програму на PASCAL, якi дають можливiсть:

2. Вияснити чи є в послiдовностi S1,...,Sn набiр символiв "- ," та пiдрахувати скiльки разiв зустрiчаеться символ "+" i скiльки разiв символ "*".

3. Перетворити послiдовнiсть S1,...,Sn, замiнивши в нiй:

4. а) всi знаки оклику крапками;

5. б) кожну крапку трьома крапками;

6. в) кожну групу з крапок , що стоять поряд, замiнити однiєю крапкою.

7. Пeретворити послiдовнiсть S1,...,Sn, вилучивши кожний символ "*" i повторивши кожний символ, вiдмiнний вiд "*".

8. Знайти i та j такi, що Si – перша за порядком кома, Sj – остання за порядком кома (вважаеться, що послiдовнiсть S1,...,Sn мiстить, по меншій мiрi один символ ",".

9. Вияснити, чи мiстяться в S1,..., Sn всi лiтери, що входять в слово "шина".

10. Вияснити чи є серед S1,...,Sn пара сусiднiх лiтер "со", або "ос".

11. Вияснити, скільки серед S1,...,Sn є пар однакових символiв, що стоять поряд.

12. Вилучити з даної послiдовностi всi групи букв виду "абвг".

13. Одержати всi символи, розмiщенi до першоi двокрапки включно.

14. Одержати всi символи, розмiщенi мiж першою та другою двокрапкою.

15. Пiдрахувати найбiльшу кiлькiсть пробiлiв, що йдуть пiдряд.

16. Вияснити, чи мiстить S1,...,Sn чотири лiтери "е", розміщені підряд.

17. Замiнити в послiдовностi S1, ..., Sn кожну групу лiтер "ха" групою лiтер "хата".

18. Виключити з послiдовностi S1,...,Sn групу символiв, розмiщених мiж дуж-ками ( ). Дужки також повиннi бути виключенi.

19. Вважаючи словом групу символiв, роздiлених пробiлами (всерединi слова пробiли вiдсутнi):

20. Пiдрахувати кiлькiсть слiв в посдiдовностi S1,...,Sn.

21. Пiдрахувати кiлькiсть слiв, що починаються з лiтери "б".

22. Пiдрахувати кiлькiсть лiтер "а" в останньому словi послiдовностi S1,...,Sn.

23. Підрахувати кiлькiсть слiв, в яких перший та останнiй символи спiвпа-дають;

24. Знайти будь-яке слово, що починаеться з лiтери "а";

25. Знайти довжину найкоротшого слова.

26. Знайти довжину найдовшого слова.

27. Підрахувати кількість слів, в яких не менше п'яти літер, три з яких голосні.

 

Варінт 2

1. Дано: послідовність символів s1,…,sn. Замінити кожний четвертий символ крапкою.

2. Дано: послідовність символів s1,…,sn. Знайти номер позиції четвертого символу “+”.

3. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів групи букв “DATA” і ”READ” .

4. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів пара сусідніх букв “ik” або ”lm” .

5. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів пара сусідніх букв “но” або ”он” .

6. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів пара сусідніх букв “аа” або ”вв” або “сс” .

7. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів пара сусідніх слів “DATA” і ”READ”.

8. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів пара сусідніх слів “школа” і ”клас”.

9. Дано: послідовність символів s1,…,sn. Вияснити, чи вірно, що в послідовності є п’ять букв “z”, що йдуть підряд.

10. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів пара сусідніх однакових символів.

11. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів всі букви, що входять в слово “шина”.

12. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів пара сусідніх однакових символів, яка не співпадає з символами “RR” .

13. Дано: послідовність символів s1,…,sn. Вияснити, чи зустрічається в даній послідовності група з трьох символів “*”, які стоять підряд .

14. Дано: послідовність символів s1,…,sn. Вияснити, чи зустрічається в даній послідовності група з чотирьох знаків оклику, які стоять підряд .

15. Дано: послідовність символів s1,…,sn. Вияснити, чи є в цій послідовності такі елементи si, si+1 що si – це кома (“,”), а si+1 – тире (“–”).

16. Дано: послідовність символів s1,…,sn. Вияснити, чи зустрічається в даній послідовності така група si-2, si, si+2, яка складається з знаків “!”.

17. Дано: послідовність символів s1,…,sn. Визначити число входжень в послідовність групи букв “АВС” і загальне число букв “А”, “В” і “С” в даній послідовності .

18. Дано: послідовність символів s1,…,sn. Визначити число входжень в послідовність групи букв “DIM” .

19. Дано: послідовність символів s1,…,sn. Підрахувати, скільки разів серед даних символів зустрічається символ “А”, скільки разів – символ “В” і скільки разів – символ “С”.

20. Дано: послідовність символів s1,…,sn. Підрахувати: скільки разів серед даних символів зустрічається символ “+”, і скільки разів – символ “*”.

21. Дано: послідовність символів s1,…,sn. Підрахувати загальне число входжень символів “1”, “2”, “3”, “4” в цю послідовність.

22. Дано: послідовність символів s1,…,sn. Отримати номер позиції, з якої починається друга група “АВС”.

23. Дано: послідовність символів s1,…,sn. Отримати число, рівне першому номеру і,для якого символи si, si+1, si+2 співпадають з буквою “R”. Якщо такої трійки символів в даній послідовності немає, то відповіддю повинно бути число 0.

24. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів групи букв “шило” або ”мило”.

25. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів всі букви, що входять в слово ”RESTORE”.

26. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів трійка сусідніх букв “ОГО” або ”АГА”.

27. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів всі букви, що входять в слово ”школа”.

28. Дано: послідовність символів s1,…,sn. Вияснити, чи вірно, що в послідовності є п’ять букв, що утворюють слово ”школа”.

29. Дано: послідовність символів s1,…,sn. Вияснити, чи зустрічається в даній послідовності група з чотирьох символів “+”, які стоять підряд .

30. Дано: послідовність символів s1,…,sn. Вияснити, чи зустрічається в даній послідовності група з чотирьох символів “5”, які стоять підряд .

31. Дано: послідовність символів s1,…,sn. Вияснити, чи зустрічається в даній послідовності група з чотирьох символів “*” і символу “=”, які стоять підряд.(Група з п’яти символів)

32. Дано: послідовність символів s1,…,sn. Вияснити, чи зустрічається в даній послідовності група з трьох символів “!”, які стоять підряд .

33. Дано: послідовність символів s1,…,sn. Вияснити, чи зустрічається в даній послідовності група з трьох символів “.”, які стоять підряд .

34. Дано: послідовність символів s1,…,sn. Підрахувати загальне число входжень символів “+”, “-”, “=” в послідовність s1,…,sn.

35. Дано: послідовність символів s1,…,sn. Підрахувати загальне число входжень букв, з яких складається слово “клас” в послідовність s1,…,sn.

36. Дано: послідовність символів s1,…,sn. Підрахувати загальне число входжень букв, з яких складається слово “READ” в цю послідовність.

37. Дано: послідовність символів s1,…,sn. Підрахувати загальне число входжень символів “1”, “2”, “3”, “4” в цю послідовність.

38. Дано: послідовність символів s1,…,sn. Підрахувати загальне число входжень в дану послідовність символів “+” і “-”, які стоять перед символом sk.

39. Дано: послідовність символів s1,…,sn. Визначити число входжень в послідовність групи букв “END”.

40. Дано: послідовність символів s1,…,sn. Визначити число входжень в послідовність групи букв “авс”.

41. Дано: послідовність символів s1,…,sn. Підрахувати, скільки разів серед даних символів зустрічається символ “0”, і скільки разів – символ “1”.

42. Дано: послідовність символів s1,…,sn. Підрахувати, скільки разів серед даних символів зустрічається символ “А”, і скільки разів – група “АВ”.

43. Дано: послідовність символів s1,…,sn. Підрахувати, скільки разів серед даних символів зустрічається кожний символ , що входить в слово “INPUT”.

44. Дано: послідовність символів s1,…,sn. Підрахувати, скільки разів серед даних символів зустрічається кожний символ , що входить в слово “BASIC”.

45. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів четвірка сусідніх однакових символів.

46. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів три сусідніх однакових символи, які не співпадають з буквою “Z”.

47. Дано: послідовність символів s1,…,sn. Вияснити, чи є в цій послідовності такі символи si-1, si+1 що si-1 – це знак “-”, а si+1 – це знак “+”.

48. Дано: послідовність символів s1,…,sn. Вияснити, чи є в цій послідовності такі символи si-1, si+1 що si-1 – це буква “А”, а si+1 – це буква “В”.

49. Дано: послідовність символів s1,…,sn. Вияснити, чи є в цій послідовності така група символів si-1, si+1 , яка складається з букв “а” і “в” в довільному порядку(“а..в”, ”в..а”, “а..а”, “в..в”).

50. Дано: послідовність символів s1,…,sn. Вияснити, чи є серед цих символів всі букви, що входять в слово ”RESTORE”.

 

5.3. Контрольні запитання з теми

1. Як описати змінну рядкового типу ?

2. Яка максимально можлива довжина рядка символів і чому ?

3. Як резервується пам'ять під змінну рядкового типу ?

4. Чим відрізняється символьний тип даних від рядкового ?

5. У чому відмінність рядка символів від масиву символів?

6. Чим відрізняється загальна довжина рядка символів від біжучої довжини ?

7. Які операції допустимі над рядковими даними?

8. Перерахуйте основні процедури та функції для роботи з рядками символів.

9. Напишіть приклад використання процедури copy.

10. Напишіть приклад використання функції pos.

11. Напишіть приклад використання процедури insert.

12. Напишіть приклад використання процедури delete.

 


Лабораторна робота № 6

Тема:

Структуровані типи даних.

Мета:

Навчитись складати програми з використанням операцій над множинами.

 

6.1. Теоретичні відомості

6.1.1. Операції з даними перелічувального типу

Перелічувальний тип задається програмістом шляхом перелічення за порядком всієї множини його значень. Всі ці значення новоствореного типу подаються їх іменами (ідентифікаторами), які є константами типу. Перелiчувальний тип задається виразом:

Type <Iм'я типу> = (Список констант iдентифiкаторiв);

Перелічувальний тип впорядковує набір своїх констант в порядку їх зростання, тому до цих велечин можна застосувати операції відношення =, <, >, якщо обидва компоненти належать до одного типу. Результатом такого відношення є логічна величина Тrue, якщо відношення справджується, тa False, якщо відношення не справджується.

Для аргументів перелічувального типу можливе застосування стандартних функцій знаходження попереднього та наступного елементів. При цьому вірні співвідношення:

Рred (Vi)=Vi-1, i=2,3,...,N; Succ (Vi)=Vi+1, i=1,2,...,N-1,

де Vi – i-й елемент списку констант перелічувального типу.

Функція Оrd для аргумента перелічувального типу видає число, що є порядковим номером даного аргумента. При цьому порядковий номер першого елемента дорівнює 0, тобто існують співвідношення:

Оrd(V1)=0; Оrd(Vi)=Оrd(Рred(Vi))+1; i=2,3,...,n.

Характерною особливістю даних перелiчувального типу в мові PASCAL є те, що вони не можуть беcпосередньо вводитися з клавiатури в програму та виводитися на дисплей. Для цього використовуються спецiальнi прийоми з використанням оператора CASE, як видно на прикладі реалізації виведення змінної типу Season:

Var Season : (Winter, Spring, Summer, Autumn);

Begin

. . . . . . . . . . . . . . . .

Case Season of

Winter : Writeln( "Winter");

Spring : Writeln("Spring");

Summer : Writeln("Summer");

Autumn : Writeln("Autumn")

end;

Введення даних перелічувального типу з клавіатури комп'ютера здійсню-ється за допомогою спеціальним чином організованих меню.

Приклад:

Дано

Type Course = (Nord,Ost,Suid,West);

Command = (Forwar, Left, Right, Back);

Корабель йшов спочатку курсом C1, а потім курс було змінено згідно наказу Rule. Визначити C2 – новий курс корабля.

Program Ship;

Var H, L: Byte;

Course : (Nord, Ost, Suid, West);

Rule : (Forwar, Left, Right, Back);

Begin

Write('Задайте курс: Північ=1 Схід=2 Південь=3 Захід=4 ');

Readln(L);

Write('Введiть команду: Назад=1 Вліво=2 Вправо=3 Вперед=4 ');

Readln(H);

Case L of

1 : Course:=Nord;

2 : Course:=Ost;

3 : Course:=Suid;

4 : Course:=West

end;

Case H of

1 : Rule:=Back;

2 : Rule:=Left;

3 : Rule:=Right;

4 : Rule:=Forwar

end;

Case Course of

Nord : Case Rule of

Back : Course:=Suid;

Left : Course:=West;

Right : Course:=Ost;

Forwar: Course:=Nord

end;

Ost : Case Rule of

Back : Course:=West;

Left : Course:=Nord;

Right : Course:=Suid;

Forwar: Course:=Ost

end;

Suid : Case Rule of

Back : Course:=Nord;

Left : Course:=Ost;

Right : Course:=West;

Forwar: Course:=Suid

end;

West : Case Rule of

Back : Course:=Ost;

Left : Course:=Suid;

Right : Course:=Nord;

Forwar: Course:=West

end;

end;

Case Course of

Ost : Writeln('Kорабель змiнив курс на Схід');

Suid : Writeln('Kорабель змiнив курс на Південь');

Nord : Writeln('Kорабель змiнив курс на Північ');

West : Writeln('Kорабель змiнив курс на Захід')

end;

END.