Ручной способ решения
Тип 1. Определите, при каком наименьшем введённом значении переменной s программа выведет число 64 (Демоверсия 2021).
var s, n: integer;
begin
readln (s);
n := 1;
while s < 51 do
begin
s := s + 5;
n := n * 2
end;
writeln(n)
end.
Решение:
После шестого шага условие не должно выполняться, т. е. s+30>=51; s>=21; минимальное значение s=21
Для нахождения максимального значения рассматриваем предыдущий шаг. После пятого шага условие выполнялось, т. е. s+25<51; s<26; максимальное значение s=25
Для нахождения количества значений s запишем 21 <= S <= 25, пять значений s обеспечивают ожидаемый результат.
Тип 2. Сколько различных значений числа d можно ввести, чтобы после выполнения программы было напечатано 246? (Тренировочный вариант №17 от 19.04.2021)
var s, n, d: integer;
begin
readln(d);
n := 8;
s := 6;
while s < 1800 do
begin
s := s + d;
n := n + 7;
end;
writeln(n);
end.
Решение:
Количество повторений (246-8)/7 = 34
После 34-ого шага условие не должно выполняться, т. е. 6+34*d>1800; d>52,76; минимальное значение d=53
Для нахождения максимального значения рассматриваем предыдущий шаг. После 33-его шага условие выполнялось, т. е. 6+33*d<=1800; d<=54,36; максимальное значение d=54
Для нахождения количества значений d запишем 53 <= d <= 54, количество значений d, обеспечивающих ожидаемый результат – 2
Тип 3. Получив на вход некоторое натуральное число X, этот алгоритм печатает одно число. Сколько существует чисел Х, для которых алгоритм напечатает 81?
var x, s, n: integer;
begin
readln(x);
s := 7 * (x div 8);
n := 1;
while s < 300 do begin
s := s + 18;
n := n * 3;
end;
writeln(n);
end.
Решение:
После 4-го шага условие не должно выполняться, т. е. 7а+72>=300; a>=32,5; минимальное значение a=33
Для нахождения максимального значения рассматриваем предыдущий шаг. После 3-го шага условие выполнялось, т. е. 7а+54<300; a<=35,1; максимальное значение d=35
Количества значений а запишем 33 <= а <= 35, но а=x div 8,
и если а=33, то 264<=х<=271; а=34, то 272<=х<=279;
а=35, то 280<=х<=287; т. е. 264 <= х <= 287;
Минимальное значение х=264, максимальное — 287, кол-во – 24
Программный способ для всех типов задания 6.
var
x, s, n, i: integer;
begin
{readln(x)}
for i := 100 to 300 do
begin
x := i;
s := 7 * (i div 8);
n := 1;
while s < 300 do
begin
s := s + 18;
n := n * 3;
end;
writeln(n, ‘ – ‘, i);
end;
end.
Красным цветом выделено то, что нужно изменить или добавить в программе. Интервал цикла может меняться в зависимости от задания.