const n=5; var a:array[1..n,1..n] of integer; x:array[1..n] of double; i,j,k:byte; begin Randomize; Writeln('*** Исходный массив ***'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=Random(51)-25; Write(a[i,j]:4) end; Writeln end; Writeln('*** Массив x ***'); for j:=1 to n do begin x[j]:=0; k:=0; for i:=1 to n do if a[i,j] mod 2=0 then begin x[j]:=x[j]+a[i,j]; Inc(k) end; if k>0 then x[j]:=x[j]/k; Write(x[j]:0:5,' ') end; Writeln end.
const
n=5;
var
a:array[1..n,1..n] of integer;
x:array[1..n] of double;
i,j,k:byte;
begin
Randomize;
Writeln('*** Исходный массив ***');
for i:=1 to n do begin
for j:=1 to n do begin
a[i,j]:=Random(51)-25;
Write(a[i,j]:4)
end;
Writeln
end;
Writeln('*** Массив x ***');
for j:=1 to n do begin
x[j]:=0; k:=0;
for i:=1 to n do
if a[i,j] mod 2=0 then begin
x[j]:=x[j]+a[i,j]; Inc(k)
end;
if k>0 then x[j]:=x[j]/k;
Write(x[j]:0:5,' ')
end;
Writeln
end.
Тестовое решение:
*** Исходный массив ***
-10 18 -8 -15 5
-21 -18 6 -2 9
-7 22 -4 3 14
21 16 -10 -18 -9
17 3 -14 -18 12
*** Массив x ***
-10.00000 9.50000 -6.00000 -12.66667 13.00000
6*s*s*s*s*s > 800*s*s*s
s*s*s*s*s =
s*s*s =
Заменим s на x;
Цикл прервется когда выполнится условие 6*s*s*s*s*s < 800*s*s*s
x∈(-∞, 20/√3) ∪ (0, 20/√3)
Нас интересуют только отрицательные значения т.к. переменная s =-1 и в цикле она уменьшается.
Граничное значение ≈- 11,54
Посмотрим на переменную s:
1-я итерация цикла s=-1
2-я итерация цикла s=-3
3-я итерация цикла s=-5
4-я итерация цикла s=-7
5-я итерация цикла s=-9
6-я итерация цикла s=-11
Цикл продолжится т.к. граничное значение -11,54 > 11.
7-я итерация цикла s=-13. цикл завершается.
Всего 6 итераций.
посмотрим на n:
n=3 и каждую итерацию
увеличивается на 2 => нужно вычислить 7-й член геометрической прогрессии(7 т.к. цикл выполнился 6 раз + n = 3 - 1-й член прогрессии):
xₙ = x₁ * qⁿ ⁻ ¹; q = 2(каждую итерацию увеличение на 2)
x₆ = 3 * 2⁷ ⁻ ¹ = 3 * 2⁶ = 3 * 64 = 192.
n - s = 192 - (-13) = 192 + 13 = 205.