OT_METOD_KP_ONOEOT
.pdf10. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11. |
|
√ |
| |
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
12. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
13. |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
14. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
15. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
16. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
| |
|
|
|
| |
|
|
|
√ |
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
17. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
18. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
| |
|
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
lg |
|
|
|
|
|
√ |
|
|
|
|
|
||||||||||||||||||||
19. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
20. |
|
|
|
|
arcsin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
21. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
22. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
23. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
24. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
25. |
| |
|
| |
|
|
|
|
|
|
√ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
√ |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
26. |
cossin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
√ |
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
27. |
lnsin |
|
√ |
|
1 |
|
|
30 |
|
|
|
|
|
|
|
|
|
|
|
|
ln |
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28.
√
29. √
30.1
Стислі теоретичні відомості
Концепція структурного програмування полягає в тому, що будь-яку складну чи громіздку задачу потрібно звести до послідовності простіших підзадач, записати підпрограми для їхнього розв'язування і створити головну програму, яка складається з викликів цих підпрограм.
Застосування підпрограм робить програму структурно більш зрозумілішою, економить пам'ять, дозволяє писати програми великого розміру. В мові Turbo Pascal є два види підпрограм. А саме: процедури та функції. Вони відрізняються між собою описом, способом виклику а також поверненням результату. В головній програмі всі підпрограми розміщуються зразу після описової частини програми до оператора Begin.
Опис функції
FUNCTION <ім’я_функції>(ім’я_параметру:тип):тип_значення_ функції; BEGIN
{ тіло функції, в кінці тіла обов’язковий оператор ім’я_функції:=значення; }
END;
Функція має свій тип - це може бути скалярний тип тобто: цілий, дійсний, логічний, символьний, та рядковий.
Виклик функції можливий через оператор присвоєння або через параметр процедури або іншої функції:
31
Ім’я змінної:= імя_функції(фактичні значення параметрів); Write (імя_функції(фактичні значення параметрів));
Функція завжди визначає тільки одне значення і повертає його до головної програми через своє ім’я.
Відносно формальних параметрів, локальних та глобальних даних, в функції діють такі ж вимоги, як і в процедурах.
Формальні параметри – це локальні змінні, що використовуються тільки в тілі процедури або функції. Фактичні параметри підставляються під час виклику процедури або функції та змінюють формальні параметри.
Для опису параметрів використовується розділ типів користувача:
TYPE ім’я_типу = стандартний_тип;
Контрольні питання
1.Що таке функція?
2.Які розділи можна використовувати в функціях?
3.Для чого використовуються функції?
4.Який оператор обов’язково повинен бути в тілі функції?
5.Чи можна використовувати назву функцію у тілі функції у якості змінної? Якщо можливо то як саме?
6.Що таке формальні параметри?
7.Що таке фактичні параметри?
8.Яка відмінність між формальними та фактичними параметрами?
32
Комп’ютерний практикум №3. Частина 2
Процедури
Мета
Мати поняття процедури. Мати поняття про область видимості змінних, про локальні та глобальні змінні.
Робоче завдання
Навчитися розрізняти процедури. Навчитися вміло їх використовувати в залежності від поставленого завдання. Навчитись правильно використовувати глобальні та локальні змінні.
Хід роботи
Розв’язати задачу з обов’язковим використанням процедур. Заборонено використовувати функцій exp та ln, окрім випадків зазначених в завданні.
Варіанти завдань
1.Описати процедуру, яка обчислює другу, третю і четверту степінь числа A і повертає ці степені відповідно в змінних B, C і D (A - вхідний, B, C, D - вихідні параметри; всі параметри дійсного типу). За допомогою цієї процедури знайти другу, третю і четверту степінь п'яти заданих чисел.
2. Описати процедуру, |
|
яка обчислює середнє арифметичне |
|||
|
і |
середнє геометричне |
|
|
|
|
|
|
|
||
X і Y (X і Y - вхідні, AMean і GMean - вихідні |
|||||
двох додатних чисел/ 2 |
|
|
√ |
|
параметри дійсного типу). За допомогою цієї процедури знайти середнє арифметичне і середнє геометричне для пар(A, B), (A, C), (A, D),якщо дано A, B, C, D.
3. Описати процедуру, яка обчислює по стороні a рівностороннього трикутника його периметр 3 і площу √3/4 (a - вхідний, P і S - вихідні параметри; всі параметри дійсного типу).
33
За допомогою цієї процедури знайти периметри і площі трьох рівносторонніх трикутників з заданими сторонами.
4.Описати процедуру, яка обчислює периметр P і площу S прямокутника зі сторонами, паралельними осям координат, за координатами (x1, y1), (x2, y2) його протилежних вершин (x1, y1, x2, y2 - вхідні, P і S - вихідні параметри дійсного типу). За допомогою цієї процедури знайти периметри і площі трьох прямокутників з заданими протилежними вершинами.
5.Описати процедуру, що знаходить кількість C цифр цілого додатного числа K, а також їх суму S (K - вхідний, C і S - вихідні параметри цілого типу). За допомогою цієї процедури знайти кількість і суму цифр для кожного з п'яти заданих цілих чисел.
6.Описати процедуру, яка міняє порядок цифр цілого позитивного числа K на зворотний (K - параметр цілого типу, який є одночасно вхідним і вихідним). За допомогою цієї процедури поміняти порядок цифр на зворотний для кожного з п'яти заданих цілих чисел.
7.Описати процедуру, що додає до цілого додатного числа K праворуч цифру D (D - вхідний параметр цілого типу, який лежить в діапазоні 0-9, K - параметр цілого типу, який є одночасно вхідним і вихідним). За допомогою цієї процедури послідовно додати до даного числа K праворуч дані цифри D1 і D2,виводячи результат кожного додавання.
8.Описати процедуру, що додає до цілого додатного числа K зліва цифру D (D - вхідний параметр цілого типу, що лежить в діапазоні 1-9, K - параметр цілого типу, який є одночасно вхідним і вихідним). За допомогою цієї процедури послідовно додати до
34
даного числа K зліва дані цифри D1 і D2,виводячи результат кожного додавання.
9.Описати процедуру, яка міняє вміст змінних X і Y (X і Y - дійсні параметри, що є одночасно вхідними і вихідними). З її допомогою для даних змінних A, B, C, D послідовно поміняти вміст наступних пар: A і B, C і D, B і C і вивести нові значення A, B, C, D.
10.Описати процедуру ,що записує в змінну X мінімальне із значень X і Y, а в змінну Y - максимальне з цих значень (X і Y - дійсні параметри, що є одночасно вхідними та вихідними). Використовуючи чотири виклики цієї процедури, знайти мінімальне і максимальне з даних чисел A, B, C, D.
11.Описати процедуру, яка міняє вміст змінних A, B, C таким чином, щоб їх значення виявилися впорядкованими за зростанням (A, B, C - дійсні параметри, які є одночасно вхідними та вихідними). За допомогою цієї процедури впорядкувати за зростанням два заданих набори з трьох чисел: (A1, B1, C1) і (A2, B2, C2).
12.Описати процедуру, яка міняє вміст змінних A, B, C таким чином, щоб їх значення виявилися впорядкованими за спаданням (A, B, C - дійсні параметри, які є одночасно вхідними та вихідними). За допомогою цієї процедури впорядкувати за спаданням два даних набору з трьох чисел: (A1, B1, C1) і (A2, B2, C2).
13.Описати процедуру, що виконує правий циклічний зсув: значення A переходить в B, значення B - в C, значення C - в A (A, B, C - дійсні параметри, що є одночасно вхідними і вихідними). За допомогою цієї процедури виконати правий циклічний зсув для двох заданих наборів із трьох чисел: (A1, B1, C1) і (A2, B2, C2).
35
14.Описати процедуру, що виконує лівий циклічний зсув: значення A переходить в C, значення C - в B, значення B - в A (A, B, C - дійсні параметри, що є одночасно вхідними і вихідними). За допомогою цієї процедури виконати лівий циклічний зсув для двох даних наборів із трьох чисел: (A1, B1, C1) і (A2, B2, C2).
15.Описати процедуру, що визначає кількість коренів квадратного рівняння A·x2 + B·x + C = 0 (A, B, C - вхідні параметри дійсного типу, A ≠ 0, n – вихідний параметр цілого типу). З її допомогою знайти кількість коренів для кожного з трьох квадратних рівнянь з заданими коефіцієнтами.
16.Описати процедуру, що виконує над ненульовими дійсними числами A і B одну з арифметичних операцій і повертає її результат у вихідному параметрі. Вид операції визначається цілим параметром Op: 1 - віднімання, 2 - множення, 3 - розподіл, інші значення - додавання. За допомогою процедури виконати для даних A і B операції, що визначаються даними цілими N1, N2,
N3.
17.Описати процедуру, яка знаходить два найближчі до заданого числа з послідовності чисел Фібоначчі FK, яка описується такими формулами: 1, 1, , 3,4,… Використовуючи отриману процедуру, знайти п'ять пар чисел Фібоначчі найближчих до заданих чисел N1, N2,..., N5.
18.Описати процедуру, яка визначає за часом T (у секундах) скільки він містить годин H, хвилин M і секунд S (T - вхідний, H, M і S - вихідні параметри цілого типу). Користуючись даною процедурою, знайти кількість годин, хвилин і секунд для п'яти даних відрізків часу T1, T2,..., T5.
36
19.Описати процедуру, яка збільшує на T секунд час, заданий в годинах H, хвилинах M і секундах S (H, M і S - вхідні і вихідні параметри, T - вхідний параметр; всі параметри – цілі додатні числа). Дано час (в годинах H, хвилинах M, секундах S) і ціле число T. Використовуючи одержану процедуру, збільшити даний час на T секунд і вивести нові значення H, M, S.
20.Описати процедуру, яка повертає у вихідному параметрі True, якщо рік Y (ціле позитивне число) є високосним, і False в іншому випадку. Вивести отримані значення для п'яти заданих значень параметра Y. Високосним вважається рік, що ділиться на 4, за винятком тих років, які діляться на 100 і не діляться на 400.
21.Описати процедуру ,яка по інформації про правильну дату, що включає день D, номер місяця M і рік Y, визначає попередню дату (параметри цілого типу D, M, Y є одночасно вхідними і вихідними). Застосувати отриману процедуру до трьох заданих дат і вивести результати.
22.Описати процедуру, що знаходить висоти hA, hB, hC трикутника ABC (вихідні параметри), що проведені відповідно з вершин A, B, C (їх координати є вхідними параметрами). З допомогою цієї процедури знайти висоти трикутників ABC, ABD, ACD, якщо задані координати точок A, B, C, D.
Стислі теоретичні відомості
Концепція структурного програмування полягає в тому, що будь-яку складну чи громіздку задачу потрібно звести до послідовності простіших підзадач, записати підпрограми для їхнього розв'язування і створити головну програму, яка складається з викликів цих підпрограм.
Застосування підпрограм робить програму структурно більш зрозумілішою, економить пам'ять, дозволяє писати програми великого
37
розміру. В мові Turbo Pascal є два види підпрограм. А саме: процедури та функції. Вони відрізняються між собою описом, способом виклику а також поверненням результату. В головній програмі всі підпрограми розміщуються зразу після описової частини програми до оператора Begin.
Опис процедури
PROCEDURE <ім’я_процедури>(
ім’я_параметру1:тип; ім’я_параметру2:тип; VAR ім’я_параметру3:тип);
BEGIN
{ тіло процедури }
END;
Ім'я процедури вибирає сам програміст. В списку формальних параметрів переліковуються всі параметри, які використовує процедура разом із зазначенням їх типу. Деякі параметри призначені для передачі даних в процедуру, інші для повернення результату в ту програму, яка її викликала.
Процедура повертає значення, що визначається через параметри-змінні, які описуються, як VAR ім’я_параметру3:тип; у списку параметрів. Параметри, що описуються, як ім’я_параметру2:тип; називаються параметрами-значеннями. В розділі локальних даних (може бути відсутнім) описуються тільки ті змінні, які використовуються самою процедурою. Глобальні змінні описуються в головній програмі. Вони можуть бути використаними як в основній програмі так і в підпрограмах. Результати роботи підпрограма повертає до основної програми через формальні параметри та глобальні дані.
Оператор виклику процедури:
Ім’я_процедури(фактичні значення параметрів);
38
Контрольні питання
1.Що таке процедура?
2.Які розділи можна використовувати в процедурах?
3.Для чого використовуються процедури?
4.Що таке формальні параметри?
5.Що таке фактичні параметри?
6.Яка відмінність між формальними та фактичними параметрами?
39