Что я сделал не так в решении с использованием рекурсивных функций - Free Pascal

Узнай цену своей работы

Формулировка задачи:

program zerna;
uses crt;
function i(z,y:byte):integer;
var n,k:integer;
begin
z:=10;
y:=22;
i:=z*y;
end;
begin
writeln('Vvedite kol-vo let:');
readln(n);
k:=n*i;
writeln(k);
end.

Решение задачи: «Что я сделал не так в решении с использованием рекурсивных функций»

textual
Листинг программы
Const
  kk = 10;
  ur = 22;
 
Var n : Byte;
 
Function Zerno(n : Byte; k :Longint) : Longint;
Begin
  If n>1 then Zerno:=Zerno(n-1,k*ur) else Zerno:=k*ur;
end;
 
Begin
  Readln(n);
  Writeln(Zerno(n,kk));
end.

Объяснение кода листинга программы

  1. Константы и переменные:
    • kk = 10
    • ur = 22
    • n (переменная, используемая в функции и в основном блоке)
  2. Функция Zerno:
    • Принимает два аргумента: n (счетчик) и k (производное значение)
    • Если n больше 1, то рекурсивно вызывает себя, уменьшая счетчик на 1 и умножая k на ur
    • Если n равно 1, то возвращает k, умноженное на ur
  3. Основной блок:
    • Считывает значение n с помощью функции Readln
    • Вызывает функцию Zerno, передавая ей значение n и kk
    • Выводит результат с помощью функции Writeln Таким образом, данный код реализует простую рекурсивную функцию, которая вычисляет факториал числа n (где n - это количество раз, которое kk умножается на ur). Факториал числа n выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.286 из 5
Похожие ответы