Объясните, пожалуйста, как будет работать программа, если в 8 строке будет i:=ivar a:...

0 голосов
21 просмотров

Объясните, пожалуйста, как будет работать программа, если в 8 строке будет i:=i
var a: array [1..5] of integer;
i,min,max,x:integer;
begin
for i:=1 to 5 do begin a[i]:=random(10); writeln(a[i]);
end;
max:=a[1];
min:=a[1];
for i:=i to 5 do begin
if a[i]>max then max:=a[i];
if a[i]end;
writeln('max=',max);
writeln('min=',min);
end.


Информатика (117 баллов) | 21 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Это зависит от реализации языка Паскаль. В большинстве случаев после выхода из первого цикла значение i будет равно конечному значению в условии выхода, т.е. 5. Поэтому второй оператор цикла будет эквивалентен конструкции for i:=5 to 5 do выполнится один раз. В результате max и min или останутся равными значению a[1] или одно из них будет изменено на значение a[5].

(142k баллов)
0

Есть и другие реализации, там при выходе из цикла его параметр становится на 1 больше верхней границы, т.е. в данном случае 6 и второй цикл не выполнится ни разу.