ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 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));

}

//---------------------------------------------------------------------------

Контрольні питання

  1. Дайте визначення підпрограми.

Підпрограма (subroutine) - частина програми, яка реалізує певний алгоритм і дозволяє звернення до неї з різних частин загальної (головної) програми. В термінах мов програмування: функції (С), процедури (Pascal), методи (в термінології об'єктно-орієнтованого програмування в мовах C++, Java, С# та ін.).

  1. Дайте визначення рекурсії та рекурсивної функції.

Рекурсія - це спосіб організації обчислювального процесу, при якому функція в ході виконання операторів, що входять в неї, звертається сама до себе. Класичним прикладом є обчислення факторіалу n! (n>0)

double Faktorial_R (int n) {

if (n < 2) return 1; // Умова закінчення рекурсії

else

return n* Faktorial_R (n - 1); // Рекурсивне звернення до функції

}

  1. Що таке прототип функції та в чому полягає його призначення?

Прототип функції - декларація функції в деяких мовах програмування, при якій вказується тільки її назва, тип та кількість і типи її аргументів. Таке оголошення необхідне і достатнє для компілятора при створенні правильного об'єктного коду.

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


Оголошення прототипів функцій стандартних бібліотек С та С++ поміщені в спеціальні заголовні файли, які приєднуються до програми препроцесором на першому етапі компілювання.

  1. Поясніть своїми словами механізми роботи рекурсивних функцій.

Поясніть своїми словами механізми роботи рекурсивних функцій.

  1. В чому полягає особливість рекурсивної функції?

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

  1. Чи можна вирішити запропоновані задачі без використання рекурсії? Поясніть свою відповідь.

Так, за допомогою функцій.

Висновок: На лабораторній роботі я навчився використовувати способи реалізації алгоритмів з використанням рекурсії.