Упр.92 ГДЗ Рабочая тетрадь Босова 9 класс (Информатика)
Результат работы программы:
x=7
y=12
p=588648368
В программе можно выделить четыре части:
- заголовок головной программы;
- раздел описания переменных;
- раздел описания подпрограммы;
- раздел операторов головной программы.
Подпрограмма f вычисляет произведение чисел от $$1$$ до $$n$$, то есть $$n!$$.
Тогда при $$x=7$$ и $$y=12$$ получаем:
$$f(7)=1\cdot2\cdot3\cdot4\cdot5\cdot6\cdot7=5040$$
$$f(12)=1\cdot2\cdot3\cdot4\cdot5\cdot6\cdot7\cdot8\cdot9\cdot10\cdot11\cdot12=479001600$$
$$f(19)=1\cdot2\cdot3\cdot4\cdot5\cdot6\cdot7\cdot8\cdot9\cdot10\cdot11\cdot12\cdot13\cdot14\cdot15\cdot16\cdot17\cdot18\cdot19=121645100408832000$$
Но в программе переменная $$p$$ имеет тип longint, поэтому при вычислении значения $$f(19)$$ происходит переполнение, и в результате получается значение, указанное в условии.
Фрагменты программы нужно подписать так:
- program n92; — заголовок головной программы;
- var x, y: integer; p: longint; — раздел описания переменных;
- function f(n: integer): longint; var i: integer; p: longint; begin p:=1; for i:=1 to n 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. — раздел операторов головной программы.
Ответ
Заголовок головной программы: program n92;
Раздел описания переменных: var x, y: integer; p: longint;
Раздел описания подпрограммы: function f(n: integer): longint; var i: integer; p: longint; begin p:=1; for i:=1 to n 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.