Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

OT_METOD_KP_ONOEOT

.pdf
Скачиваний:
18
Добавлен:
12.05.2015
Размер:
845.28 Кб
Скачать

10.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]