Предмет: Информатика,
автор: nikolaenkooksana113
Почему бы программа могла просто ничего не выводить, ни какого-то ответа, ни сообщения о том, что где-то ошибка
var max, min,i, f, count :integer;
begin
i:=850000;
while True do begin
//
i:=i+1; min:= 899999; max:=0; count:=0;
for var y:=2 to (y div 2) do begin
if i mod y =0 then begin
if y max then max:=y;
f:=max-min;
if (f<>0) and (f mod 5 =0) then begin
count:=count +1;
writeln ('count = ',count, ' i= ', i, ' f= ', f);
end;
end;
end;
//i:=i+1;
if count =6 then break;
end;
end.
Ответы
Автор ответа:
0
Условие для цикла for составлено крайне некорректно, вы присваиваете начало отсчета к 2 и конец отсчета 1. К сожалению через to из 2 попасть в 1 никак нельзя. Здесь можно использовать downto, но это уже другое. Следовательно данный блок кода выполняться не будет, а значит, что count никогда не станет равным 6, а это ведет к тому, что цикл будет совершаться бесконечно.
Небольшое пояснение (на всякий случай):
2 div 2 = 2/2 =1,0 = 1
Похожие вопросы
Предмет: Русский язык,
автор: Аноним
Предмет: Русский язык,
автор: ulimax
Предмет: Русский язык,
автор: shalamova74
Предмет: Английский язык,
автор: валя391
Предмет: Русский язык,
автор: zhumashnurai