Во-первых, не whill, а while. Во-вторых, цикл с предусловием(while) выполняется только тогда, когда его условие возвращает ложь. Если условие возвращает правду, цикл завершается. Бывает так, что при попытке первой итерации цикла условие уже возвращает правду. В этом случае цикл не будет выполнен ни разу. Цикл с предусловием(repeat), наоборот, выполняется, пока условие возвращает правду и завершается ложью. Стоит заметить, что если цикл с предусловием проверяет своё условие перед итерацией, цикл с постусловием делает это после, а это значит, что последний выполнится хотя бы один раз.
Во-вторых, цикл с предусловием(while) выполняется только тогда, когда его условие возвращает ложь. Если условие возвращает правду, цикл завершается. Бывает так, что при попытке первой итерации цикла условие уже возвращает правду. В этом случае цикл не будет выполнен ни разу.
Цикл с предусловием(repeat), наоборот, выполняется, пока условие возвращает правду и завершается ложью. Стоит заметить, что если цикл с предусловием проверяет своё условие перед итерацией, цикл с постусловием делает это после, а это значит, что последний выполнится хотя бы один раз.
var
A, Ap, Ao: array [1..14] of Integer;
i, c, cp, co: Integer;
s: Real;
begin
Randomize;
WriteLn ('Mассив:');
for i := Low (A) to High (A) do begin
A [i] := Random (201) - 100;
Write (A [i], ' ');
end;
cp := 0;
co := 0;
for i := Low (A) to High (A) do begin
if A [i] > 0 then begin
cp := cp + 1;
Ap [cp] := A [i];
end else begin
co := co + 1;
Ao [co] := A [i];
end;
end;
c := Low (A);
for i := 1 to cp do begin
A [c] := Ap [i];
c := c + 1;
end;
for i := 1 to co do begin
A [c] := Ao [i];
c := c + 1;
end;
WriteLn;
WriteLn ('Результат: ');
for i := Low (A) to High (A) do begin
Write (A [i], ' ');
end;
WriteLn;
WriteLn ('Количество положительных элементов массива = ', cp);
end.