в цикле for сравниваем Если элемент массива под номером 1 (т.е. число 2) минус 2*m>1 то m равна текущему элементу массива.
т.к. 2-2*0=2 и это больше 0 то значение m становится равным 2
1 проход m=2
При втором проходе цикла фор сравниваем уже второй элемент массива, т.е.
Dat[2]-2*m>1
6-2*2>1
2>1
Условие выполняется значит значение m на 2 проходе равно 6
при дальнейших проходах цикла for мы больше не получим значений больше 1 т.к. текущее m=6, т.е. из элементов массива мы будем вычитать 12, т.е. ни одного положительного числа мы не получим, т.е. условие if не выполнится ни разу и значение m не изменится
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 begin var n:=ReadInteger('n='); var a:=MatrixRandom(n,n,10,99); var s:=0; var k:=0; for var i:=0 to n-1 do begin for var j:=0 to n-1 do Print(a[i,j]); Writeln; if a[i,i].IsEven then begin s+=a[i,i]; Inc(k) end; end; if k>0 then Writeln('S=',s/k:0:2) else Writeln('На главной диагонали нет четных элементов') end.
При первом проходе программы
m=0
в цикле for сравниваем Если элемент массива под номером 1 (т.е. число 2) минус 2*m>1 то m равна текущему элементу массива.
т.к. 2-2*0=2 и это больше 0 то значение m становится равным 2
1 проход m=2
При втором проходе цикла фор сравниваем уже второй элемент массива, т.е.
Dat[2]-2*m>1
6-2*2>1
2>1
Условие выполняется значит значение m на 2 проходе равно 6
при дальнейших проходах цикла for мы больше не получим значений больше 1 т.к. текущее m=6, т.е. из элементов массива мы будем вычитать 12, т.е. ни одного положительного числа мы не получим, т.е. условие if не выполнится ни разу и значение m не изменится
ответ m=6
begin
var n:=ReadInteger('n=');
var a:=MatrixRandom(n,n,10,99);
var s:=0;
var k:=0;
for var i:=0 to n-1 do begin
for var j:=0 to n-1 do Print(a[i,j]);
Writeln;
if a[i,i].IsEven then begin s+=a[i,i]; Inc(k) end;
end;
if k>0 then Writeln('S=',s/k:0:2)
else Writeln('На главной диагонали нет четных элементов')
end.
Тестовое решение
n= 8
63 13 33 90 25 21 87 91
88 88 48 13 30 59 81 27
73 23 76 77 52 19 33 97
53 87 13 74 17 35 61 70
77 96 51 61 82 33 63 22
39 88 84 54 88 73 74 69
76 26 69 14 45 80 70 54
80 36 47 38 18 22 84 62
S=75.33