Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Алгоритмізація та програмування 1: Базові концепції програмування
ЗВІТ
до лабораторної роботи № 5
«Рекурсивний виклик функції»
Варіант 4
Дата «24» листопада 2021
Завдання:1. Ознайомитись з рекурсивним викликом функції.2.Розробити алгоритмом розрахунку значення функції за її розкладенням у ряд за умови отримання результату з заданою точністю. Врахувати діапазон дозволених значень для змінної x.3. У якості індивідуального завдання необхідно написати програмний код, що реалізує алгоритм розрахунку значень функцій за їх розкладенням в ряд із заданою користувачем точністю.
РЕЗУЛЬТАТ РОБОТИ ПОТРІБНО:1. Роздрукувати (вивести на екран) точне значення функції, її приблизне значення та точність розрахунку.
2. Відкритий для редагування програмний код розмістити на сайті https://replit.com/ (посилання через кнопку «+ Share»).
3. Звіт до комп’ютерного практикуму № 5 додати в свій Клас на ресурсі https://classroom.google.com/.
Витяг з теорії
Вступ до рекурсивної функції в С:
Процес повторення предметів аналогічним чином, як це було раніше, відомий як рекурсія. Кажуть, що функція є рекурсивною, якщо вона викликається всередині себе. Нижче наведено дві умови, які є критичними для впровадження рекурсії в C:
Умова виходу: Ця умова допомагає функції визначити, коли потрібно вийти з цієї функції. Якщо ми не вкажемо умову виходу, то код увійде в нескінченний цикл.
Зміна лічильника: Зміна лічильника при кожному дзвінку до цієї функції.
Таким чином ми можемо реалізувати рекурсивну функцію в мові програмування C. Ці функції корисні для вирішення математичних задач з грошима, які вимагають викликати подібний процес кілька разів. Прикладами таких проблем є обчислення факторіалу ряду поколінь серії Фібоначчі.
Синтаксис:
/
Як працює рекурсивна функція в C?
Рекурсивні функції - це спосіб реалізації рівняння в мові програмування C. Рекурсивна функція викликається аргументом, переданим в неї, скажімо, n, пам'ять у стеці розподіляється на локальні змінні, а також функції. Усі операції, присутні в функції, виконуються за допомогою цієї пам'яті. Умова виходу перевіряється, чи він відповідає. Коли компілятор виявляє виклик до іншої функції, він негайно виділяє нову пам’ять у верхній частині стека, де створюється інша копія тих же локальних змінних і функція створюється. Введіть той же процес, що продовжується.
Коли базова умова повертає істинне, конкретне значення передається функції виклику. Очищена пам'ять, виділена на цю функцію. аналогічно, нове значення обчислюється у функції виклику, а ІТ повертається до функції супервиклику. Таким чином здійснюються рекурсивні виклики, щоб функція видалення досягає першої функції, і вся пам'ять стека очищається, а вихід повертається. Базовий стан або умова виходу не визначені у функції, тоді рекурсивні виклики до функції можуть призвести до нескінченного циклу
Види рекурсії:
Хвостова та нехвоста рекурсія
Хвостова рекурсія
Нехвильова рекурсія
Пряма та непряма рекурсія
Непряма рекурсія
Пряма рекурсія
Приклад рекурсивної функції
/
Завдання за варіантом
/
Результати компіляції
//
Посилання на код в середовищі Replit
https://replit.com/join/htwhxplqfs-ironfire2535
Висновок
Під час виконання лабораторної роботи №5 я ознайомився з рекурсивним викликом функції;Розробив алгоритм розрахунку значення функції за її розкладенням у ряд за умови отримання результату з заданою точністю. Врахував діапазон дозволених значень для змінної x;У якості індивідуального завдання написав програмний код, що реалізує алгоритм розрахунку значень функцій за їх розкладенням в ряд із заданою користувачем точністю;Зробив звіт з лабораторної роботи, що містить всі необхідні компоненти та вчасно надіслав викладачу на додав у свій клас у ресурсі Classroom.