Во-первых, не whill, а while. Во-вторых, цикл с предусловием(while) выполняется только тогда, когда его условие возвращает ложь. Если условие возвращает правду, цикл завершается. Бывает так, что при попытке первой итерации цикла условие уже возвращает правду. В этом случае цикл не будет выполнен ни разу. Цикл с предусловием(repeat), наоборот, выполняется, пока условие возвращает правду и завершается ложью. Стоит заметить, что если цикл с предусловием проверяет своё условие перед итерацией, цикл с постусловием делает это после, а это значит, что последний выполнится хотя бы один раз.
//PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016) const N = 10;
var a: array [1..N] of integer; i, j, b: integer;
begin for i := 1 to N do a[i] := Random(81) - 40; writeln('Элементы массива a: '); for i := 1 to N do write(a[i], ' '); writeln;
//сортировка не очень быстрая, но и массив маленький for j := 1 to n do for i := 1 to n - 1 do if a[i] < a[i + 1] then begin b := a[i]; a[i] := a[i + 1]; a[i + 1] := b; end; writeln; writeln('После сортировки : '); for i := 1 to N do write(a[i], ' '); writeln; end.