Программа
вычисления чисел ряда Фибоначчи по
рекуррентной формуле без запоминания
членов.
|
Program
Pr39(Input, Output);
|
Объявление
имени программы
|
Var
|
Блок
объявления глобальных переменных
|
N
: Integer;
|
Переменная
N - число вычисляемых членов
|
X1,
X2, Y
: LongInt;
|
Переменные
X1, X2 и Y - вспомогательные переменные
|
i
: Integer;
|
Переменная
i - параметр цикла
|
|
|
Begin
|
Начало
тела программы
|
|
|
WriteLn
('PASCAL: Вычисление чисел Фибоначчи ');
|
Формулировка
цели алгоритма
|
WriteLn
('по рекуррентной формуле без
запоминания членов.');
|
Формулировка
цели алгоритма
|
Write
('Введите количество членов (3<=N<=50):
N = ');
|
Запрос
ввода числа N - количества членов
|
ReadLn
(N);
|
Ввод
N
|
WriteLn
('Ваши ', N, ' членов:');
|
Сообщение
пользователю о выводе вычисляемых
членов
|
Write
('1 1 ');
|
Вывод
первых двух членов
|
X1
:= 1;
|
Запоминаем
первый член ряда Фибоначи в переменной X1
|
X2
:= 1;
|
Запоминаем
второй член ряда Фибоначи в переменной X2
|
|
|
For
i := 3 To N Do
|
Цикл
для i от 3 до N вычисления и вывода чисел
Фибоначи
|
Begin
|
Начало
тела цикла
|
Y
:= X1 + X2;
|
Y
- новый член ряда Фибоначи - вычиялется
как сумма двух предыдущих X1 и X2
|
Write
(Y);
|
Вывод
очередного члена
|
Write
(' ');
|
Вывод
разделителя членов ряда - символа "пробел"
|
X1
:= X2;
Запоминание двух предыдущих
членов
|
Запоминаем
X2 в переменной X1, т.е. "сдвигаем" на
один элемент
|
X2
:= Y;
для вычисления следующего
|
Запоминаем
Y в переменной X2, т.е. "сдвигаем" на
один элемент
|
End;
|
Конец
тела цикла
|
|
|
ReadLn;
|
Ожидание
нажатия клавиши Enter для завершения
|
End.
|
Конец
программы.
|