- •Лабораторна робота №8 Тема: рекурсивні функції, вказівники на функції в алгоритмічній мові с
- •1. Мета роботи
- •2. Теоретичні відомості
- •2.1. Рекурсивні функції
- •2.2. Приклади програм з використанням рекурсії
- •2.3. Вказівники на функції. Масиви вказівників на функції
- •2.4. Вказівники типу near і far
- •3. Контрольні запитання
- •4. Лабораторне завдання
- •6. Список літератури
- •Завдання до лабораторної роботи
3. Контрольні запитання
У яких випадках використовуються рекурсивні функції?
Опишіть дію рекурсивної функції на прикладі обчислення
Як змінюється вміст стеку при цьому?Чи може бути рекурсивною функція main ?
На що вказує вказівник функції?
Яким чином відбувається об’єднання вказівників у масиви?
Наведіть приклад програми обчислення кореня функції з використанням вказівника.
Які особливості використання вказівників типу near і far ?
Якого типу є far-вказівники при виконанні операцій <, >, <=, >= ?
Якого типу є far-вказівники при виконанні операцій != і == ?
4. Лабораторне завдання
Вивчити елементи алгоритмічної мови С, пов’язані з рекурсивними функціями і вказівниками на функції.
Одержати індивідуальне завдання.
Скласти програму на алгоритмічній мові С.
Відлагодити програму, виконати обчислення.
5. ЗМІСТ ЗВІТУ
Мета роботи.
Короткий опис конструкцій алгоритмічної мови С, що вивчаються.
Індивідуальне завдання.
Текст програми у відповідності з індивідуальним завданням.
5. Результати обчислень.
6. Аналіз результатів, висновки.
6. Список літератури
Керниган Б., Ритчи Д. Язык программирования С. - М. - Финансы и статистика. - 1992. – 272 с.
Уэйт М., Прата С., Мартин Д. Язык С. Руководство для начинающих. - М. - Мир. - 1988. –512 с.
Глинський Я. М., Анохін В. Є., Ряжська В. А. C++ i C++ Builder. – Львів: Деол. – 2003. – 192 с.
Герберт Шилдт. Полный справочник по C++. М. – С.-П.-К., Вильямс. – 2003. – 800 с.
Демидович Е. М. Основы алгоритмизации и программирования. Язык Си. (Учебное пособие). – Санкт-Петербург: “БХВ Петербург”. – 2006. – 439 с.
Завдання до лабораторної роботи
1. Не оголошуючи масиву, ввести групу даних і вивести їх у зворотному порядку.
2. Не оголошуючи масиву довгих цілих чисел, ввести групу даних. Вивести їх у зворотному порядку разом з їх порядковими номерами.
3. Визначити масив вказівників на функцію. Ввести цифру, яка означає функцію, яку необхідно виконати: 0 – знайти мінімальне число,
1 – знайти максимальне число,
2 – вирахувати суму.
4. Використовуючи рекурсивний виклик функції main (), обчислити суму елементів масиву цілого типу. Масив не оголошувати. Останній елемент масиву – 0. У файлу з початковим програмним модулем повинно бути розширення .C.
5. Використовуючи рекурсію, для кожного елемента масиву вирахувати n! Масив не оголошувати.
6. Обрахувати значення дробу
,
використовуючи рекурсію. Значення n задає кількість членів (ступенів).
7. Для заданого масиву чисел ( > 0 ) вирахувати числа Фібоначчі (див. Додаток).
8. Визначити масив вказівників на функцію. Ввести цифру, яка означає функцію, яку необхідно виконати: 0 – знайти перше додатне,
1 – знайти перше від’ємне,
2 – вирахувати добуток.
9. Порахувати ланцюговий дріб вигляду
.
де
,
- цілі числа.
10. Ввести десяткове число, вивести його на екран у вигляді стрічки. Зображену (виведену) стрічку вивести у зворотному порядку (інвертувати). Роботу завершити введенням числа 0.
11. Ввести ціле число у вигляді стрічки string. Перевести її в число number? Отримане число знову перевести у стрічку string.
12. Перевести ціле десяткове число в систему числення з іншою основою (наприклад, 2) і зберегти у пам’яті у вигляді стрічки.
13. Визначити масив вказівників на функцію. Ввести цифру, яка означає функцію, яку необхідно виконати: 0 – вирахувати суму,
1 – вирахувати добуток,
2 – вирахувати середнє значення.
14. Ввести стрічку (число). Використовуючи рекурсивну функцію, отримати з введених символів все можливі перестановки знаків.
15. Ввести арифметичний вираз із дужками. Використовуючи рекурсивну функцію, перевірити правильність розстановки дужок.
16. Не оголошуючи масиву, ввести групу даних і вивести їх другу половину у зворотному порядку.
17. Визначити масив вказівників на функцію. Ввести цифру, яка означає функцію, яку необхідно виконати: 0 – знайти перше додатне число,
1 – знайти максимальне число,
2 – вирахувати суму.
18. Обрахувати значення дробу
,
використовуючи рекурсію. Значення n задає кількість членів (ступенів).
19. Визначити масив вказівників на функцію. Ввести цифру, яка означає функцію, яку необхідно виконати: 0 – вирахувати середнє значення,
1 – знайти перше від’ємне,
2 – вирахувати добуток.
20. Визначити масив вказівників на функцію. Ввести цифру, яка означає функцію, яку необхідно виконати: 0 – знайти останнє додатне,
1 – вирахувати добуток,
2 – вирахувати середнє значення.
21. Не оголошуючи масиву чисел з плаваючою крапкою, ввести групу даних. Вивести їх разом з їх порядковими номерами.
22. Використовуючи рекурсію, для кожного елемента масиву цілих чисел вирахувати залишок від ділення на 3. Масив не оголошувати.
23. Перевести ціле десяткове число в систему числення з іншою основою (наприклад, 8) і зберегти у пам’яті у вигляді стрічки.
24. Ввести десяткове число, вивести його на екран у вигляді стрічки. Зображену (виведену) стрічку вивести у зворотному порядку (інвертувати). Роботу завершити введенням числа -1.
25. Ввести ціле число у вигляді стрічки string. Перевести її в число number? Отримане число знову перевести у стрічку string і записати у зворотному порядку.
26. Використовуючи рекурсивний виклик функції main (), обчислити суму елементів масиву типу float. Масив не оголошувати. Останній елемент масиву – 0.0. У файла з початковим програмним модулем повинно бути розширення .C.
27. Порахувати ланцюговий дріб вигляду
,
де - цілі числа.
28. Ввести стрічку символів. Використовуючи рекурсивну функцію, отримати з введених символів все можливі перестановки знаків.
29. Обрахувати значення дробу
,
використовуючи рекурсію. Значення n задає кількість членів (ступенів).
30. Ввести арифметичний вираз із дужками. Використовуючи рекурсивну функцію, перевірити правильність розстановки дужок.
31. Визначити масив вказівників на функцію. Ввести цифру, яка означає функцію, яку необхідно виконати: 0 – вирахувати суму додатних елементів,
1 – вирахувати суму від’ємних елементів,
2 – вирахувати середнє значення.
Додаток. Числа Фібоначчі
Числа Фібоначчі – це ряд чисел, у якому кожен наступний член дорівнює сумі двох попередніх. Назва по імені середньовічного математика Леонардо Пізанського (Фібоначчі).
F(0) = 0 |
F(1) = 1 |
F(2) = 1 |
F(3) = 2 |
F(4) = 3 |
F(5) = 5 |
F(6) = 8 |
F(7) = 13 |
F(8) = 21 |
F(9) = 34 |
F(10) = 55 |
F(11) = 89 |
