Задача:
Напишите программу, которая запрашивает у пользователя число и выводит все числа Фибоначчи до этого числа. Pascal ABC.
План:
- Алгоритм решения
- Код программы
- Примеры входных данных и ожидаемых результатов
- Объяснение кода программы
- Блок-схема
Алгоритм решения:
- Запросить у пользователя число
n
- Инициализировать переменные:
a = 0
(первое число Фибоначчи)b = 1
(второе число Фибоначчи)
- Вывести сообщение о числах Фибоначчи до
n
- Начать цикл
while
, который продолжается, покаa <= n
:- Вывести текущее число Фибоначчи
a
- Вычислить следующее число Фибоначчи:
c = a + b
- Обновить значения:
a = b
b = c
- Вывести текущее число Фибоначчи
- Завершить программу
Этот алгоритм генерирует и выводит числа Фибоначчи, начиная с 0 и 1, до тех пор, пока они не превысят введенное пользователем число.
Код программы на языке Pascal ABC:
Код Pascal ABC
program Fibonacci;
var
n, a, b, c: integer;
begin
Write('Enter a number: ');
ReadLn(n);
a := 0;
b := 1;
Write('Fibonacci numbers up to ', n, ': ');
while a <= n do
begin
Write(a, ' ');
c := a + b;
a := b;
b := c;
end;
WriteLn;
end.
Примеры входных данных и ожидаемых результатов:
Input: 10
Output: Fibonacci numbers up to 10: 0 1 1 2 3 5 8
Input: 100
Output: Fibonacci numbers up to 100: 0 1 1 2 3 5 8 13 21 34 55 89
Input: 5
Output: Fibonacci numbers up to 5: 0 1 1 2 3 5
Input: 1
Output: Fibonacci numbers up to 1: 0 1 1
Input: 0
Output: Fibonacci numbers up to 0: 0
Объяснение кода программы:
-
Объявление переменных:
Объявляются четыре целочисленные переменные:var n, a, b, c: integer;
n
для хранения введенного пользователем числа,a
иb
для хранения текущих чисел Фибоначчи,c
для временного хранения суммы. -
Ввод числа:
Выводится приглашение для ввода числа, затем считывается введенное пользователем значение в переменнуюWrite('Enter a number: '); ReadLn(n);
n
. -
Инициализация начальных значений:
Устанавливаются начальные значения для первых двух чисел Фибоначчи:a := 0; b := 1;
a = 0
иb = 1
. -
Вывод заголовка:
Выводится сообщение о том, какие числа Фибоначчи будут показаны.Write('Fibonacci numbers up to ', n, ': ');
-
Цикл генерации и вывода чисел Фибоначчи:
Циклwhile a <= n do begin Write(a, ' '); c := a + b; a := b; b := c; end;
while
продолжается, пока текущее число Фибоначчи (a
) не превысит введенное пользователем число (n
). На каждой итерации:- Выводится текущее число Фибоначчи (
a
). - Вычисляется следующее число Фибоначчи (
c = a + b
). - Значения
a
иb
обновляются для следующей итерации.
- Выводится текущее число Фибоначчи (
-
Переход на новую строку:
После вывода всех чисел Фибоначчи осуществляется переход на новую строку для улучшения форматирования вывода.WriteLn;