Во-первых, не whill, а while. Во-вторых, цикл с предусловием(while) выполняется только тогда, когда его условие возвращает ложь. Если условие возвращает правду, цикл завершается. Бывает так, что при попытке первой итерации цикла условие уже возвращает правду. В этом случае цикл не будет выполнен ни разу. Цикл с предусловием(repeat), наоборот, выполняется, пока условие возвращает правду и завершается ложью. Стоит заметить, что если цикл с предусловием проверяет своё условие перед итерацией, цикл с постусловием делает это после, а это значит, что последний выполнится хотя бы один раз.
Во-вторых, цикл с предусловием(while) выполняется только тогда, когда его условие возвращает ложь. Если условие возвращает правду, цикл завершается. Бывает так, что при попытке первой итерации цикла условие уже возвращает правду. В этом случае цикл не будет выполнен ни разу.
Цикл с предусловием(repeat), наоборот, выполняется, пока условие возвращает правду и завершается ложью. Стоит заметить, что если цикл с предусловием проверяет своё условие перед итерацией, цикл с постусловием делает это после, а это значит, что последний выполнится хотя бы один раз.
ответ:
uses crt;
var a: array[1..20,1..20] of real;
n,m,i,j: integer;
s: real;
begin
clrscr; randomize;
write('введите кол-во строк: '); readln(n);
write('введите кол-во столбцов: '); readln(m);
for i: =1 to n do
begin
for j: =1 to m do
begin
a[i,j]: =random(100)/10;
write(a[i,j]: 4: 1);
end;
writeln;
end;
for i: =1 to n do
begin
s: =0;
for j: =1 to m do
s: =s+a[i,j];
writeln('сумма ',i,'-ой строки: ',s: 0: 1);
end;
for j: =1 to m do
begin
s: =0;
for i: =1 to n do
s: =s+a[i,j];
writeln('сумма ',j,'-ого столбца: ',s: 0: 1);
end;
for j: =1 to m do
begin
s: =0;
if j mod 2 = 0 then
begin
for i: =1 to n do
s: =s+a[i,j];
writeln('среднее арифметическое ',j,'-ого столбца: ',s/m: 0: 1);
end;
end;
readln;
end.
объяснение: