Предмет: Информатика
ГДЗ Рабочая тетрадь по Информатике 9 класс Босова

Задание 92. Структура программы с функцией вычисления факториала на Паскале


Задание 92. Выделите в программе и подпишите справа от нее заголовок головной программы; раздел описания переменных; раздел описания подпрограммы с указанием имени функции, входных данных, типа результата и операторов функции; раздел операторов головной программы.


 

program z92;                  { Заголовок головной программы }

var                           { Раздел описания переменных }
  x, y: integer;
  p: longint;

function f (n: integer): longint;  { Раздел описания подпрограммы }
                                 { Имя: f }
                                 { Входные данные: n (integer) }
                                 { Тип результата: longint }
var                             { Локальные переменные подпрограммы }
  i: integer;
  p: longint;
begin                           { Операторы функции }
  p := 1;
  for i := 1 to x do
    p := p * i;
  f := p
end;

begin                          { Раздел операторов головной программы }
  write('x=');
  readln(x);
  write('y=');
  readln(y);
  p := f(x) + f(y) + f(x + y);
  writeln('p=', p)
end.

Что будет выведено на экран в результате выполнения программы? 

Программа выводит одно число — результат выражения f(x) + f(y) + f(x + y). 
Ключевой момент: Функция f всегда вычисляет факториал x (x!), независимо от аргумента n (n не используется в цикле). Таким образом:

  • f(x) = x! 
  • f(y) = x! (опять x!) 
  • f(x + y) = x! (снова x!) 

Итоговый вывод: 3 * x! (трёхкратная сумма факториала x).
Пример: Если ввести x=1, y=2, то вывод будет 3 (поскольку 1! = 1, и 1+1+1=3).
Если x=3, y=любое, вывод 18 (3! = 6, 6+6+6=18).
Вывод зависит только от x (y игнорируется в расчётах).

Поделиться