Программа денесі(операторлар тізбегі)


Рекурсиялы ішкі программалардың қолданылуы



бет151/163
Дата07.02.2022
өлшемі4,26 Mb.
#94523
түріПрограмма
1   ...   147   148   149   150   151   152   153   154   ...   163
Байланысты:
cda6b05d-8cb5-11e3-bf6e-f6d299da70eeУММ ПР1

Рекурсиялы ішкі программалардың қолданылуы.
Begin Begin Begin
P; операторы; операторы;
операторы; P P;
End; End; операторы
End;


Рекурсивті көтеріліс Рекурсивті түсу Рекурсивті көтеріліс
және рекурсивті түсу
Мұндағы P — рекурсивті ішкі программа. Әрекеттерді ұйымдастыру алгоритмге байланысты. Осы келтірі лген мысалдарды Турбо паскаль тіліндегі функциялар және процедуралар түрінде көрсетейік:
Мысал:
{Функция}
Function Factorial(N:integer):Extended;
Begin
If N<=1
Then Factorial:=1
Else Factorial:=Factorial(N-1)*N
End;


{Процедура}

Procedure Factorial(N:integer; Var F:Extended);


Begin
If N<=1
Then F:=1
Else Begin Factorial(N-1, F); F:=F*N End
End;
Осы мысалдарда программалар рекурсивті көтерілу кезінде орындалады.
Мысал:
Сызықтық массив элементтерінің қосындысын есептеу.
Есепті шешу барысында келесілерді қолданамыз: элементтер саны нольге тең болса, қосынды нольге тең және алдыңғы элементтер қосындысына соңғы элементті қосу, егер элементтер саны тең емес ноль болса.
Program Rec2;
Type LinMas = Array[1..100] Of Integer;
Var A : LinMas;
I, N : Byte;
{Рекурсивті функция}
Function Summa(N : Byte; A: LinMas) : Integer;
Begin
If N = 0 Then Summa := 0 Else Summa := A[N] + Summa(N - 1, A)
End;
{Негізгі программа}
Begin
Write(Массив элементтерінің саны ');
ReadLn(N);
Randomize;
For I := 1 To N Do
Begin
A[I] := -10 + Random(21); Write(A[I] : 4)
End;
WriteLn; WriteLn('Қосынды: ', Summa(N, A))
End.
Қорытындылай келе, рекурсия программалаудың ерекше бір түрі болып табылады. Алайда практикалық жағынан қарағанда рекурсияны қолдану көп есептерде тиімсіз болып табылады. Себебі, ол жадыны толтырады, уақыт көп жұмсалады. Сол үшін практикада қарапайым ішкі программаларды қолданған тиімді.


Достарыңызбен бөлісу:
1   ...   147   148   149   150   151   152   153   154   ...   163




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет