Цикл с предусловием это такой цикл, в котором условие проверяется перед выполнением тела цикла. А цикл с постусловием - на оборот, он сначала выполнит, а потом проверит условие и если условие true, то цикл завершится.
Цикл с постусловием, можно использовать в таких ситуациях, когда надо что-то сделать и если чего-то не хватает, то сделать еще раз. Напрмер отправить письмо на email, а если не отправилось, то повторить еще 3 раза. Сначала выполнится тело цикла, в котором находятся функции отправки письма и если отправка удачная, то сообщаем until() true. Иначе тело выполнится еще и еще и еще кучу раз, если мы не задали счетчик в теле цикла, как вариант...
Цикл с предусловием можно использовать, если надо проверять какое-то значение ПЕРЕД выполнением тела цикла и тебе не важно, должно ли оно хоть раз выполниться. Например запросить пароль у пользователя. Но если пользователь уже ввёл пароль, то зачем его запрашивать? Тут можно было бы использовать while
1) Program NoName; Var i,m : integer; Begin read(m); if m>31 then begin for i:=31 to m do if (i mod 16) = 0 then writeln(i); end; end.
2)Program NoName; Var i,n,x,c : integer; Begin c:=1; x:=0; i:=0; while i<5 do begin if (c mod 13) = 0 then begin x:=x+c; i:=i+1; end; c:=c+1; end; write(x); end.
3)Program NoName; Var i,n,x,c : integer; Begin read(n); c:=1;x:=1;i:=0; while i<n do begin if (c mod 11) = 0 then begin x:=x*c; i:=i+1; end; c:=c+1; end; write(x); end.
4)Program NoName; Var i,m,x : integer; Begin x:=0;i:=1; while x<7 do begin if (i mod 7) = 0 then begin writeln(i);x:=x+1; end;i:=i+1; end; end.