PROGRAM PG9J0;
VAR I: INTEGER; FUNCTION FIB(I: INTEGER): INTEGER; BEGIN IF I = 0 THEN FIB:= 0; IF (I = 1) OR (I = 2) THEN FIB:= 1 ELSE FIB:= FIB(l-1)+FIB(l-2) END; BEGIN REPEAT WRITE('BBEДИTE ПОРЯДКОВЫЙ НОМЕР ЧИСЛА I»'); READLN(I); UNTIL I > = 0; WRITELN(I: 5, ' -E ЧИСЛО ФИБОНАЧЧИ РАВНО ', FIB(I)) END. Для решения задачи: - формируем тело программы и описываем переменные; - создаем описание рекурсивной функции FIB; - вводим порядковый номер числа I; - вызываем рекурсивную функцию FIB(I) для определения числа Фибоначчи; - завершаем работу программы. Переменные: в функции FIB: I - натуральное число (формальный параметр); в основной программе: I - натуральное число (глобальная переменная). Задача 9.11 Использовать рекурсию для решения задачи 9.7 о цифровом корне. PROGRAM PG9J1; VAR N: LONGINT; FUNCTION NUM(I: LONGINT): INTEGER; VAR S: INTEGER; BEGIN S:=0; REPEAT S:= S+N MOD 10; N:= N DIV 10 UNTIL N = 0; NUM:= S END; FUNCTION ROOT(L: LONGINT): INTEGER; BEGIN IF N<10 THEN ROOT:= N ELSE BEGIN N:= NUM(N); ROOT:= ROOT(N); END; END; BEGIN WRITE('BBEДИTE ЦЕЛОЕ ЧИСЛО N = '); READLN(N); WRITELN('EГO ЦИФРОВОЙ КОРЕНЬ РАВЕН:', ROOT(N)) END. Для решения задачи: - формируем тело программы и описываем переменные; - создаем описание функций NUM и ROOT; - вводим целое число N; - вызываем рекурсивную функцию ROUT и определяем цифровой корень числа N; - завершаем работу программы. Переменные: в функции NUM: N - целое число (глобальная переменная); S - вспомогательная переменная (локальная переменная); в функции ROOT: N - целое число (глобальная переменная); в основной программе: N - целое число (глобальная переменная). Задача 9.12 Использовать рекурсию для решения задачи 9.8 о квадратах.
|