B21 - Анализ программ с циклами и подпрограммами

1. Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := -3*(x-10)*(x+2)+2;
end;
BEGIN
a := -20; b := 20;
M := a; R:= F(a);
for t := a to b do
if (F(t)>R) then begin
M := t;
R:= F(t);
end;
write(M);
END.
Ответ: 
2. Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := 19*(16-x)*(16-x)+27;
end;
BEGIN
a := -20; b := 20;
M := a; R:= F(a);
for t := a to b do begin
if (F(t) < R) then begin
M := t;
R:= F(t);
end;
end;
write(M);
END.
Ответ: 
3. Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
var a,b,t,M,R:integer;
Function F(x: integer):integer;
begin
F := 26*(9+х)*(9+х)+131;
end;
BEGIN
a:= -20; b:= 20;
M:= a; R:= F(a);
for t:=a to b do begin
if F(t) < R then begin
M:= t;
R:= F(t);
end;
end;
write(R);
END.
Ответ: 
4. Определите, количество чисел K, для которых следующая программа выведет такой же результат, что и для K=30:
  var i, k: integer;
function F(x:integer):integer;
begin
if x < 3 then
F:= 1
else F:= 2*F(x-1) + F(x-2);
end;
begin
i := 15;
readln(K);
while (i > 0) and (F(i) > K) do
i:=i-1;
writeln(i);
end.
Ответ: 
5. Напишите в ответе количество различных значений входной переменной k, при которых программа выдаёт тот же ответ, что и при входном значении k=64.
var k, i : longint;
function f(n: longint) : longint;
begin
f := n * n + 20
end;
begin
readln(k);
i := 12;
while (i>0) and (f(i)>=k) do
i := i-1;
writeln(i)
end.
Ответ: 
6. Напишите в ответе число различных значений входной переменной k, при которых программа выдаёт тот же ответ, что и при входном значении k=47.
var k, i : longint;
function f(n: longint): longint;
begin
f := n*(n+1)-5
end;
begin
readln(k);
i := 0;
while (f(i)<=k) do
i := i+1;
writeln(i)
end.
Ответ: 
7. Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k=14.
var k, i : longint;
function f(n: longint) : longint;
begin
f := 2*n*n + 5;
end;
begin
readln(k);
i := 1;
while f(i) < k do
i:= i+1;
if f(i)-k <= k-f(i-1) then
writeln(i)
else writeln(i-1);
end.
Ответ: 
8. Напишите в ответе наименьшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k=12.
var k, i : longint;
function f(n: longint): longint;
begin
f := n * n * n;
end;
function g(n: longint): longint;
begin
g := 3*n + 2;
end;
begin
readln(k);
i := 1;
while f(i) < g(k) do
i := i+1;
writeln(i)
end.
Ответ: 
9. Напишите в ответе наибольшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k=16.
var k, i : longint;
function f(n: longint): longint;
begin
f := n * n * n;
end;
function g(n: longint): longint;
begin
g := 3*n + 3;
end;
begin
readln(k);
i := 1;
while f(i) < g(k) do
i := i+1;
writeln(i)
end.
Ответ: 
10. Напишите в ответе наибольшее значение входной переменной k, при котором программа выдаёт тот же ответ, что и при входном значении k=30.
var k, i : longint;
function f(n: longint): longint;
begin
f := n * n * n;
end;
function g(n: longint): longint;
begin
g := 3*n + 6;
end;
begin
readln(k);
i := 1;
while f(i) < g(k) do
i := i+1;
writeln(i)
end.
Ответ: