Зертханалық жұмыс №9
Тақырыбы: Рекурсивті функциялар
(9 апта 2 сағ)
9.1. Жұмыс мақсаты – рекурсияның негізгі ұғымдарымен танысу, рекурсивті шақыру мен қайтару механизмін зерттеу.
9.2. Әдістемелік нұсқау
Рекурсия есепті соған ұқсас кіші есепке келтіретін алгоритм құру тәсілі. Рекурсия дегеніміз программада рекурсивті функцияларды қолдану. Рекурсивті функция деп өзін өзі тура немесе жанама түрде шақыратын функцияны айтамыз. Рекурсивті шақыруға дейін рекурсиядан қайтып оралуды тексеру жолы тұру керек. Рекурсивті функциялардың мысалы ретінде факториалды есептеу және Фибоначчи санын (F0 = F1 = 1, Fn = Fn-1 + Fn-2, n=2,3,…) есептеуді алуға болады.
Мысал 1. Фиббоначи (1 1 2 3 5 8 13 21 …) сандарының тізбегі беріген, мұндағы ағымдағы элемент алдыңғы екі элементтің қосындысына тең, n-ші санды табыңдар.
Рекурсивті шақырудың моделі:
Программасы:
program Fib_N;
Var
N:integer;
Function fib(n:integer): integer;
Begin
If (n=1) or (n=2) then fib:=1
Else fib:=fib(n-1)+fib(n-2);
End;
Begin
Read(n);
Writeln(fib(n));
End;
9.3. Бақылау сұрақтары
1. Рекурсия дегеніміз не және ол не үшін қолданылады?
2. Рекурсивті түрде: а) массив элементтерінің қосындысын; б) массивтің максимальды\минимальды элементтерін табатын; және массив элементтерін енгізу/шығаруды жүзеге асыратын рекурсивті функцияны жазыңдар.
9.4. Жеке тапсырмалар
Рекурсивті шақыруды көрсететін тәсілді құрыңдар.
xn шамасын мына формуламен есептейтін xn=1, n=0 үшін; xn=1/ xn, n<0 үшін; xn=x* xn-1, n>0 үшін pow(x,n) рекурсивті функциясын есептеуді сипаттаңдар.
Cmn биномиальды коэффициентін келесі формуламен есептейтін C0n= Cnn=1, Cmn= Cmn-1+ Cm-1n-1 при 0
Сызықтың массивтің элементтерінің қосындысын рекурсивті есептеуді сипаттаңдар.
Берілген сызықтық массивтегі берліген мәнді рекурсивті табатын есептеуді сипаттаңдар.
1+1/2+1/3+1/4+... қатарының алғашқы N мүшесінің қосындысын рекурсивті табатын есептеуді сипаттаңдар.
Дәрежеге шығару функциясын рекурсивті табатын есептеуді сипаттаңдар.
0>
Достарыңызбен бөлісу: |