ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.09.2024
Просмотров: 4
Скачиваний: 0
Лабораторна робота № 8
Тема: Рекурсивні функції
Мета: вивчити способи реалізації алгоритмів з використанням рекурсії.
В роботі використовувалися 1 edit , 1 button , 1 memo , 1 label,1 checkbox.
Идз
Код программы:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include<math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Memo1->Clear();
}
//---------------------------------------------------------------------------
long double xnminus1(double xn )
{long double xnm,a,y;
a=StrToFloat(Form1->Edit1->Text);
if(xn<=0)
{return xn=((1/2)*(1+a));}
if (xn>0)
{return ((1/2)*(xnminus1(xn-1)+(a/xnminus1(xn-1))));}}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
long double a,x,xn,y;
a=StrToFloat(Edit1->Text);
if (CheckBox1->Checked==1)
{y=sqrt(a);
ShowMessage("Рекурсивно"); }
else
y=sqrt(a);
Memo1->Lines->Add(FloatToStr(y));
}
//---------------------------------------------------------------------------
Контрольні питання
-
Дайте визначення підпрограми.
Підпрограма (subroutine) - частина програми, яка реалізує певний алгоритм і дозволяє звернення до неї з різних частин загальної (головної) програми. В термінах мов програмування: функції (С), процедури (Pascal), методи (в термінології об'єктно-орієнтованого програмування в мовах C++, Java, С# та ін.).
-
Дайте визначення рекурсії та рекурсивної функції.
Рекурсія - це спосіб організації обчислювального процесу, при якому функція в ході виконання операторів, що входять в неї, звертається сама до себе. Класичним прикладом є обчислення факторіалу n! (n>0)
double Faktorial_R (int n) {
if (n < 2) return 1; // Умова закінчення рекурсії
else
return n* Faktorial_R (n - 1); // Рекурсивне звернення до функції
}
-
Що таке прототип функції та в чому полягає його призначення?
Прототип функції - декларація функції в деяких мовах програмування, при якій вказується тільки її назва, тип та кількість і типи її аргументів. Таке оголошення необхідне і достатнє для компілятора при створенні правильного об'єктного коду.
Необхідність у оголошенні прототипу функції перед визначенням її реального коду виникає при складних вкладених викликах однієї функції в іншій. Декларація прототипу дозволяє програмісту уникнути відслідковування послідовності написання функцій в програмі. Крім того, реальний код функції може знаходитися в окремій, уже відкомпільованій бібліотеці, що підключається до програми компонувальником.
Оголошення прототипів функцій стандартних бібліотек С та С++ поміщені в спеціальні заголовні файли, які приєднуються до програми препроцесором на першому етапі компілювання.
-
Поясніть своїми словами механізми роботи рекурсивних функцій.
Поясніть своїми словами механізми роботи рекурсивних функцій.
-
В чому полягає особливість рекурсивної функції?
Міць рекурсивного визначення об'єкта в тім, що таке кінцеве визначення здатне описувати нескінченно велике число об'єктів. За допомогою ж рекурсивної програми можливо описати нескінченне обчислення, причому без явних повторень частин програми.
-
Чи можна вирішити запропоновані задачі без використання рекурсії? Поясніть свою відповідь.
Так, за допомогою функцій.
Висновок: На лабораторній роботі я навчився використовувати способи реалізації алгоритмів з використанням рекурсії.