Завдання

Варіант 1

1.

 

2.

 

3.

 

4.

 

5.

 

6.

 

7.

 

8.

 

9.

 

10.

 

11.

 

12.

 

13.

 

14.

 

15.

 

16.

 

17.

 

18.

 

19.

 

20.

 

21.

 

22.

 

23.

 

24.

 

25.

 

26.

 

27.

 

28.

 

29.

 

30.

 

31.

 

32.

 

33.

 

34.

35.

 

Варіант 2

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

36.

37.

38.

39.

40.

41.

42.

43.

44.

45.

46.

47.

48.

49.

50.

Варіант 3

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

 

Варіант 4

1. Організувати цикл, в якому змінна і міняється місцями від до 180 з кроком (=3.1415926).

2. Організувати цикл, в якому змінна і міняється місцями від 8 до –12 з кроком -2.

3. Організувати цикл, в якому змінна і міняється місцями від –0,35 до –2,84 з кроком 1,15 і.

4. Організувати цикл, в якому змінна і міняється місцями від 0,35 до 2,84 з кроком 1,15і.

5. Організувати цикл, в якому змінна і міняється місцями від -1 до –100 з кроком –і2.

6. Організувати цикл, в якому змінна і міняється місцями від 1 до 35 з кроком 2і.

7. Організувати цикл, в якому змінна і міняється місцями від -13 до 247 з кроком 2|і|.

8. Організувати цикл, в якому змінна і міняється місцями від -3 до –27 з кроком -3.

9. Організувати цикл, в якому змінна і міняється місцями від 3 до 27 з кроком 3.

10. Організувати цикл, в якому змінна і міняється місцями від 20 до –4 з кроком -4.

11. Організувати цикл, в якому змінна і міняється місцями від -20 до 4 з кроком 4.

12. Організувати цикл, в якому змінна і міняється місцями від 1,15 до –8,75 з кроком –0,45.

13. Організувати цикл, в якому змінна і міняється місцями від 7 до –49 з кроком -7.

14. Організувати цикл, в якому змінна і міняється місцями від 7,28 до –3,19 з кроком –0,52.

15. Організувати цикл, в якому змінна і міняється місцями від 9 до –3 з кроком -3.

16. Організувати цикл, в якому змінна і міняється місцями від 5 до 45 з кроком 5.

17. Організувати цикл, в якому змінна і міняється місцями від 4 до –20 з кроком -4.

18. Організувати цикл, в якому змінна і міняється місцями від -10 до 26 з кроком 3.

19. Організувати цикл, в якому змінна і міняється місцями від -11 до 25 з кроком 6.

20. Організувати цикл, в якому змінна і міняється місцями від -4 до 20 з кроком 4.

21. Організувати цикл, в якому змінна і міняється місцями від 100 до 1 з кроком –і/2.

22. Організувати цикл, в якому змінна і міняється місцями від -49 до 7 з кроком 7.

23. Організувати цикл, в якому змінна і міняється місцями від 1 до 100 з кроком і2.

24. Організувати цикл, в якому змінна і міняється місцями від -1 до –35 з кроком –2і.

25. Організувати цикл, в якому змінна і міняється місцями від -100 до –1 з кроком –і/2.

26. Організувати цикл, в якому змінна і міняється місцями від 1 до 9 з кроком і/2.

27. Організувати цикл, в якому змінна і міняється місцями від 47 до –63 з кроком –3/2*|і|.

28. Організувати цикл, в якому змінна і міняється місцями від –4,97 до –6,24 з кроком –0,01і2.

29. Організувати цикл, в якому змінна і міняється місцями від 35 до 1 з кроком –і/2.

30. Організувати цикл, в якому змінна і міняється місцями від 2до з кроком (=3.1415926).

31. Організувати цикл, в якому змінна і міняється місцями від до з кроком (=3.1415926).

32. Організувати цикл, в якому змінна і міняється місцями від -2до - з кроком (=3.1415926).

33. Організувати цикл, в якому змінна і міняється місцями від до з кроком (=3.1415926).

34. Організувати цикл, в якому змінна і міняється місцями від до з кроком (=3.1415926).

35. Організувати цикл, в якому змінна і міняється місцями від до з кроком (=3.1415926).

36. Організувати цикл, в якому змінна і міняється місцями від до з кроком (=3.1415926).

 

Варіант 5

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

2. Написати програму, яка шукає суму мінімальних елементів по всіх рядках матриці . Пояснити призначення індексів.

3. Написати програму, яка шукає суму максимальних елементів по парних рядках матриці . Пояснити призначення індексів.

4. Написати програму, яка шукає найменший з максимальних елементів по парних рядках матриці . Пояснити призначення індексів.

5. Написати програму, яка шукає максимальний елемент бічної діагоналі матриці . Пояснити призначення індексів.

6. Написати програму, яка шукає найбільший з мінімальних елементів по парних стовпцях матриці . Пояснити призначення індексів.

7. Написати програму, яка шукає суму мінімальних елементів по непарних рядках матриці . Пояснити призначення індексів.

8. Написати програму, яка шукає найбільший з мінімальних елементів по непарних рядках матриці . Пояснити призначення індексів.

9. Написати програму, яка шукає найменший з максимальних елементів по всіх рядках матриці . Пояснити призначення індексів.

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

11. Написати програму, яка шукає суму елементів бічної діагоналі матриці . Пояснити призначення індексів.

12. Написати програму, яка шукає максимальний елемент головної діагоналі матриці . Пояснити призначення індексів.

13. Написати програму, яка шукає мінімальний елемент бічної діагоналі матриці . Пояснити призначення індексів.

14. Написати програму, яка шукає найменший з максимальних елементів по непарних стовпцях матриці . Пояснити призначення індексів.

15. Написати програму, яка шукає суму мінімальних елементів по парних стовпцях матриці . Пояснити призначення індексів.

16. Написати програму, яка шукає суму максимальних елементів по всіх рядках матриці . Пояснити призначення індексів.

17. Написати програму, яка шукає суму максимальних елементів по непарних стовпцях матриці . Пояснити призначення індексів.

18. Написати програму, яка шукає суму елементів головної діагоналі матриці . Пояснити призначення індексів.

19. Написати програму, яка впорядковує по спаданню елементи головної діагоналі матриці . Пояснити призначення індексів.

20. Написати програму, яка впорядковує по зростанню елементи головної діагоналі матриці . Пояснити призначення індексів.

21. Написати програму, яка впорядковує по зростанню елементи бічної діагоналі матриці . Пояснити призначення індексів.

22. Написати програму, яка впорядковує по спаданню елементи бічної діагоналі матриці . Пояснити призначення індексів.

23. Написати програму, яка транспонує матрицю . Пояснити призначення індексів. Нової матриці створювати не можна.

24. Написати програму, яка міняє місцями елементи парних рядків матриці так, щоб максимальні елементи по парних рядках розмістилися на головній діагоналі. Пояснити призначення індексів.

25. Написати програму, яка міняє місцями елементи парних рядків матриці так, щоб максимальні елементи по парних рядках розмістилися на головній діагоналі. Пояснити призначення індексів.

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

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

28. Написати програму, яка міняє місцями елементи рядків матриці так, щоб мінімальні елементи по всіх рядках розмістилися на бічній діагоналі. Пояснити призначення індексів.

29. Написати програму, яка міняє місцями елементи непарних рядків матриці так, щоб мінімальні елементи по непарних рядках розмістилися на бічній діагоналі. Пояснити призначення індексів.

30. Написати програму, яка міняє місцями елементи рядків матриці так, щоб максимальні елементи по всіх рядках розмістилися на головній діагоналі. Пояснити призначення індексів.

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

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

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

34. Написати програму, яка міняє місцями найбільший з мінімальний елементів по парних стовпцях і найменший з максимальних елементів по непарних стовпцях матриці . Пояснити призначення індексів.

35. Написати програму, яка міняє місцями максимальний елемент головної діагоналі матриці з мінімальним елементом бічної діагоналі, і знаходить суму цих елементів. Пояснити призначення індексів.

36. Написати програму, яка міняє місцями максимальний з елементів, що знаходяться над головною діагоналлю матриці , і мінімальний з елементів, що знаходяться під головною діагоналлю; і знаходить суму цих елементів. Пояснити призначення індексів.

37. Написати програму, яка міняє місцями мінімальний з елементів, що знаходяться над бічною діагоналлю матриці , і максимальний з елементів,що знаходяться під бічною діагоналлю; і знаходить суму цих елементів. Пояснити призначення індексів.

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

1. Які переваги дає використання операторів циклу в програмах?

2. Які засоби мови слід застосовувати для створення циклів із заданою кількістю повторень?

3. Як записується і як працює оператор FOR... TO... DO...?

4. Перечисліть можливі варіанти організації циклу із заданим числом повторень.

5. Як програмуються циклічні алгоритми із заздалегідь невідомим числом повторень циклу?

6. У чому відмінність оператора WHILE... DO... від оператора REPEAT... UNTIL... ?

7. Напишіть довільний оператор циклу, що не буде виконуватись жодного разу.

8. Напишіть довільний оператор циклу, що буде виконуватись необмежене число раз.

9. Перечисліть основні правила організації вкладених циклів.

10. Чи можливий вихід з внутрішнього циклу до його завершення ? Як ?

11. Яка умова виходу з циклу при обчислені суми нескінченого ряду?

12. Чому при нагромадженні суми початкова сума задається завжди перед циклом ?

13. Що є спільного і у чому відміна у використанні процедур BREAK і CONTINUE, EXIT і HALT?

14. Що таке масиви і для чого вони призначені?

15. Яка перевага масивів над сукупністю простих змінних ?

16. Вкажіть особливості введення - виведення масивів. Наведіть приклади.

17. Який тип можуть мати індекси масивів?

18. Якого типу можуть бути елементи масивів?

19. Що розуміють під поняттям індексована змінна?

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

21. Чим відрізняється опис типу масив від оголошення змінної типу масив ?

22. Чи можна у мові Turbo Pascal оголосити масив із змінними границями.

23. Вкажіть необхідний порядок дій при написанні програми з застосуванням масивів.

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

25. Що таке повна змінна і коли вона застосовується ?

26. Які особливості введення - виведення символьних масивів ?

27. Наведіть приклади типованої константи типу масив.

28. Чи завжди відбувається перевірка на належність індексу елемента масиву діапазону значень індексного типу? Коли доцільно робити таку перевірку, а коли ні ?

29. Наведіть приклади задач для розв'язку яких необхідно застосувати двовимірний, тривимірний масиви.

30. Що в описі типу двовимірного масиву зазначають спочатку; кількість рядків чи кількість стовпців?

31. Наведіть приклад опису двовимірного масиву.

32. Якого типу можуть бути індекси елементів масиву? Чи можуть вони мати різні типи ?

33. Вкажіть особливості введення - виведення елементів двовимірних масивів.

34. Наведіть приклад фрагменту програми, що виводить на екран двовимірний масив у вигляді матриці.

35. Опишіть специфіку введення - виведення двовимірного символьного масиву.

36. Як здійснюється доступ до окремого елемента двовимірного масиву?

37. Наведіть приклад типованої константи типу двовимірний масив.

38. Масиви якої розмірності допустимі в мові Pascal?

39. Скільки чисел можна записати в шестивимірний масив X : Array [0..1, 0..1, 0..1, 0..1, O..l,0..1]of real?


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

Тема:

Операції на рядками сиволів.

Мета:

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

 

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

5.1.1. Стрінговий тип (тип літерний рядок)

Літерний рядок являє собою послідовність символів. Оскільки кожний окремий символ належить до типу Char, літерний рядок, або стрінг (String) можна подати як сукупність, або масив однорідних елементів типу Char. Стрінг може виступати в програмі як константа, або як змінна. Константа-стрінг подається або за допомогою ідентифікатора в розділі опису констант: Const name='Jack'; або безпосередньо записом у виді послідовності символів обмежених апострофами: Writeln('Кінець програми');

Кількість символів в літерному рядку (довжина рядка) лежить в межах 0-255. Літерний рядок може використовуватися як змінна, яка попередньо повинна бути описана. Формат опису стрінгової змінної в розділі опису змінних має вид:

Var

ідентифікатор : String[ML];

де ідентифікатор – ім’я літерної змінної, String – службове слово, ML – максимальна довжина (кількість символів) даного літерного рядка. Наявність ключового слова String без вказання розміру означає максимальний розмір рядка (255 символів).

Приклад: Var

line : String [30];

Окрім безпосереднього опису стрінгової змінної в розділі Var, можна ввести спочатку стрінговий тип (літерний рядок обмеженої довжини) в розділі опису типів, а потім звертатися до цього типу у розділі Var.

Приклад: Тype

ST = String [80]; Var s1, s2, s3 : ST;

В даному випадку ST – це введений нами тип String обмежений 80 символами; величини s1, s2, s3 належать до цього типу. Тип ST можна було б, подати в виді масиву Сhar: Type ST = array [1..80] of Сhar;

Оскільки змінна стрінг являє собою послідовність символів, Pascal надає можливість (так само як в масиві) звертатися до кожного окремого символа в літерному рядку за форматом ідентифікатор [і], де ідентифікатор – ім’я стрінг-змінної, і – індекс (номер елемента в стрінгу), 0 < і < N, де N – довжина рядка.

Для визначення величини пам`яті в байтах, необхідної для розміщення стрінга в ОЗП, до значення максимальної величини додається одиниця. Додат-ковий байт розміщується на початку рядка (в елементі з індексом [0]). В цьому елементі записується дійсна довжина літерного рядка, записаного в даний момент по вказаному імені.

 

5.1.2. Стрінгові вирази

Вирази, в яких операндами є стрінгові константи, змінні та функції, називаються стрінговими виразами. Над стрінгами виконуються такі операції:

Присвоєння.

Приклад:

Var St1 : String [6];

St1:='інститут';

Значення St1 обмежуються лише 6 символами і становить 'інстит.'

Об’єднання.

Приклад:

St1:='Група '; St2:='МІ';

St:=St1+St2; Write (st);

Результат: Група МІ

До окремих символів літерного рядка можна звертатися за номером (індексом) даного символа в рядку:

Приклад:

St:='Група'; St[1]:='Т'; Write (St);

Результат: Трупа.

Для обробки літерних рядків в Паскаль-системі є такі стандартні функції:

1. Copy(St, Pos, N) – виділяє із стрінга St підрядок довжиною N символів, починаючи з позиції Pos.

Приклад: Write(Copy('трансформатор'; 6, 5)); друкує: фoрма.

Аналогом цієї функції в Бейсіку є MID$(St,Pos,N);

Concat(St1, St2,...,StN) – виконує об'єднання рядків St1,...,StN в тому порядку, в якому вони записані.

3. Length(St) – обчислює справжню(в символах) величину St.

Аналогом цієї функції в Бейсіку є функція Len(St).

Pos(St1, St2) – визначає номер позиції, з якої St1 входить в St2. Якщо входження відсутнє – результат рівний нулю.

Приклад: Pos('форма','трансформатор') => 6.

Аналогом цієї функції в Бейсіку є функція INSTR.

Крім стандартних функцій в Pascal для обробки стрінгових величин використовують такі стандартні процедури:

1. Str(N,St) – перетворює числове значення N в стрінг St.

Аналогом цієї процедури є в Бейсіку функція N=Str$(St).

Val(St,N,Cod) – перетворює стрінг St в величину цілого, або дійсного типу і вміщує результат в N. St не повинен містити пробілів на початку та кінці. Cod – цілочисельна змінна, яка рівна 0, якщо перетворення пройшло корректно, без помилок. В разі помилки в перетворенні, при наявності нечислового символа в St, Cod містить номер позиції першого помилкового символа. N при цьому невизначено.

Аналогом цієї процедури в Бейсіку є функція N=Val(St).

Delete(St,Pos,N) – процедура вилучення N символів рядка St, починаючи з позиції Pos. При Pos>255 виникає помилка.

Приклад: St="аввгд"; Delete(St,4,2); Результат: "авве".

4. Insert(Str1,Str2,Pos) – вставка рядка Str1 в рядок Str2, починаючи з позиції Pos.

Приклад:

Var S1,S2 : String[12];

S1:=' МІ-'; S2:='Група 31'; S3:=Inster(S1,S2,6)

Результат: 'Група МІ-31',

5. UpCase(Ch) – функція, яка перетворює малу літеру Ch в велику. Параметр і результат мають літерний тип. Функція обробляє літери лише латинського алфавіту.

Приклад: Ch:='а'; B:=UpCase(Ch); Результат: 'A'.

Серед множини операцiй над лiтерними рядками найбiльш поширеними є об'єднання, обчислення довжини тексту, копіювання фрагмента тексту, пошук фрагмента тексту, вирiзування фрагмента з тексту.

Введемо такі позначення:

S – змінна типу String PASCAL-програми;

Q – змінна типу String PASCAL-програми (фрагмент тексту);

P – позиція літерної змінної;

N – кількість символів.

Операцiя об'єдання, як вказувалось вище, позначаеться на PASCAL знаком "+", наприклад: S:=S+Q;

Деякі інші, найбільш поширенні операції над літерними рядками, подані в таблиці7.