Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LN15_16 процедури !!!.DOC
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
86.53 Кб
Скачать

Типізовані константи у процедурних блоках

Типізовані константи програми ініціалізуються (набувають початкових значень) один раз - на початку виконання програми і зберігаються як звичайні змінні у сегменті даних. Таким чином, якщо типізована константа визначена у процедурному блоці (процедура чи функція), тобто є локальною, то при повторному зверненні до цього блоку вона наново не ініціалізується, але зберігає значення, отримане при попередньому зверненні.(Можна використовувати дя накопичення значень чи зберігання флагів - умов та т. і)

Приклад

procedure my; I звернення II звернення

const i:integer=2; i=2 i=4

b:boolean=true; b=true b=false

begin

:

i:=i+2; i=4 i=6

b:=not b; b=false b=true

:

end.

Примусовий вихід із процедури чи функції

1) Процедура EXIT. Якщо зустрічається у тілі процедури чи функції, чи головної програми, то виконання цього блоку припиняється, керування надається блоку, що викликав поточний.

Для рекурсивних функцій - повернення на один рівень віще.

Якщо до моменту виходу із процедурного блоку змінним не надані значення, вони залишаться невизначенними.

2) Процедура HALT[(<код виходу>:word)];

Припиняє виконання програми та віддає керування операційній системі.

<код виходу> - значення, що повертається для подальшого аналізу операційною системою (за допомогою функції EXITCODE чи IF ERRORLEVEL - у пакетній обробці операційної системи DOS)

HALT без параметрів еквівалентно HALT (0) – нормальному завершенню програми.

Завдання

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

2. Для чотирьох чисел a, b, c, d знайти всі трійки, для яких можна побудувати трикутник, та визначити його площу. Використати функцію.

3. Описати логічну функцію search(s,ss,k,n), що превіряє, чи входить підрядок ss у рядок s починаючи з k-ї позиції та надає параметру n номер позиції знайденного у s підрядка.

Використати функцію для змінення у рялку s підрядка x на підрядок y.

4. Описати рекурсивну функцію, що перевіряє, чи є симетричною частина рядка s починаючи з j-го та закінчуючи і-м елементом - simm(s,j,i).

5. Обчислити площину n-кутника, наданого координатами вершин (X1,Y1),…,(Xn,Yn), використовуючи функцію обчислення площі елементарного трикутника (X1,Y1,Xi,Yi,Xi+1,Yi+1), i=2..n-1.

6. Функція для цілих невід'ємних n визначено наступним чином

f(0)=0, f(1)=1;

f(2n)=f(n);

f(2n+1)=f(n)+f(n+1)

Для наданого М визначити f(M) не використовуючи вспоміжних масисвів.

7. Значення функції B(M) обчислюється наступним чином: М записується у двійковій системі числення, а потім його розряди переставляються у зворотній послідовності. Розробити пограму для обчислювання цієї функції для довільного М.

8. Розробити процедури

а) надання матриць (mxn)

б) множення матриць (m*n), (n*k)

в) транспонування

Для довільних матриць A(m,n), B(n,m) обчислити (A*B)T

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