Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi.doc
Скачиваний:
11
Добавлен:
29.10.2018
Размер:
3.35 Mб
Скачать

Лабораторна робота № 5 Рекурсивні процедури і функції

Мета роботи:

1. Засвоєння принципів організації рекурсивних обчислювальних процесів.

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.,

Динамічні структури даних

Дані, які використовуються у програмі, поділяються на статичні й динамічні.

Статичні структури даних розміщуються у статичній пам’яті, виділеній компілятором у процесі компіляції програми. Їх взаєморозміщення, взаємозв’язки елементів і кількість завжди залишаються постійними в процесі виконання програми.

Динамічні структури даних розміщуються у динамічній пам’яті, яка виділяється на етапі виконання програми. Їх внутрішня побудова формується за деяким законом, а їх взаєморозміщення, взаємозв’язки елементів і кількість можуть динамічно змінюватися в процесі виконання програми. Для роботи з динамічними даними використовуються вказівники.

Вказівник – це статична змінна, значенням якої є адреса динамічної пам’яті. З допомогою вказівників можна розміщати в динамічній пам’яті будь-які типи даних (цілі, дійсні, логічні, символьні, символьні рядки, масиви, записи та інші). Такі вказівники називаються типізованими. Для опису типізованого вказівника використовується значок ^, який поміщається перед відповідним типом, наприклад

Type Tank = record

p, i, b: string[15];

rn: word;

ps: string[20];

end;

Var v1, s1; ^integer;

v2: ^double;

v3: ^Tank;

Можна описати вказівник і не зв’язувати його з конкретним типом даних. Для цього є стандартний тип Pointer, наприклад:

Var p1, p2: pointer;

Такі вказівники називають нетипізованими. З їх допомогою зручно працювати з динамічними даними, структура і тип яких змінюється при виконанні програми.

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