Цикл с предусловием это такой цикл, в котором условие проверяется перед выполнением тела цикла. А цикл с постусловием - на оборот, он сначала выполнит, а потом проверит условие и если условие true, то цикл завершится.
Цикл с постусловием, можно использовать в таких ситуациях, когда надо что-то сделать и если чего-то не хватает, то сделать еще раз. Напрмер отправить письмо на email, а если не отправилось, то повторить еще 3 раза. Сначала выполнится тело цикла, в котором находятся функции отправки письма и если отправка удачная, то сообщаем until() true. Иначе тело выполнится еще и еще и еще кучу раз, если мы не задали счетчик в теле цикла, как вариант...
Цикл с предусловием можно использовать, если надо проверять какое-то значение ПЕРЕД выполнением тела цикла и тебе не важно, должно ли оно хоть раз выполниться. Например запросить пароль у пользователя. Но если пользователь уже ввёл пароль, то зачем его запрашивать? Тут можно было бы использовать while
program Ex1; const nn=100; { ограничение на длину массива } var i,n,s,k:integer; a:array[1..nn] of integer; begin Randomize; Write('n='); Read(n); k:=0; for i:=1 to n do begin a[i]:=Random(101)-50; Write(a[i],' '); if a[i]>0 then begin k:=k+1; s:=s+a[i] end end; Writeln; Writeln('Среднее положительных ',s/k) end.
program Ex2; const nn=100; { ограничение на длину массива } var i,n,min:integer; a:array[1..nn] of integer; begin Randomize; Write('n='); Read(n); min:=100; { больше максимально возможного } for i:=1 to n do begin a[i]:=Random(101)-50; Write(a[i],' '); if a[i]<min then min:=a[i] end; Writeln; Writeln('Минимум ',min) end.
Выводы о том, чему и как учат в школе, делайте самостоятельно...
program z1;
var m,n,k,i: integer;
begin
writeln('Введите два числа m и n (m < n)');
write ('m = ');
readln (m);
write ('n = ');
readln (n);
k:=0;
for i := m to n do if i mod 2 <> 0 then k:=k+1;
writeln (k,' нечётных чисел лежат в диапазоне от ',m,' до ',n)
end.
Объяснение:
Считается, что m и n входят в диапазон.