Цикл с предусловием это такой цикл, в котором условие проверяется перед выполнением тела цикла. А цикл с постусловием - на оборот, он сначала выполнит, а потом проверит условие и если условие true, то цикл завершится.
Цикл с постусловием, можно использовать в таких ситуациях, когда надо что-то сделать и если чего-то не хватает, то сделать еще раз. Напрмер отправить письмо на email, а если не отправилось, то повторить еще 3 раза. Сначала выполнится тело цикла, в котором находятся функции отправки письма и если отправка удачная, то сообщаем until() true. Иначе тело выполнится еще и еще и еще кучу раз, если мы не задали счетчик в теле цикла, как вариант...
Цикл с предусловием можно использовать, если надо проверять какое-то значение ПЕРЕД выполнением тела цикла и тебе не важно, должно ли оно хоть раз выполниться. Например запросить пароль у пользователя. Но если пользователь уже ввёл пароль, то зачем его запрашивать? Тут можно было бы использовать while
Программа:
Pascal:
№1)
var arr: array[1..10] of integer;
begin
for var i := 1 to 10 do arr[i] := random(100);
writeln(arr);
end.
№2)
const N = 15;
var arr: array[1..N] of integer;
i, tmp: integer;
begin
for i := 1 to 15 do arr[i] := random(100);
writeln(arr);
for i:=1 to n div 2 do begin
tmp := arr[i];
arr[i] := arr[N - i + 1];
arr[N - i + 1]:= tmp;
end;
writeln(arr);
end.
№3)
const N = 20;
var
arr: array[1..N] of integer;
i, tmp, j: integer;
begin
for i := 1 to N do readln(arr[i]);
writeln(arr);
for i := 1 to N - 1 do
for j := 1 to N - i do
if (arr[j] > arr[j+1]) then begin
tmp := arr[j];
arr[j] := arr[j+1];
arr[j+1] := tmp;
end;
writeln(arr);
end.