Задание 6. Анализ программ

Ручной способ решения

Тип 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.

Красным цветом выделено то, что нужно изменить или добавить в программе. Интервал цикла может меняться в зависимости от задания.