2. в двухмерном массиве a(n,m) заменить его элементы вещественными числами, вычисляемыми по формуле a(i, j) = a(i, j) * arccos(i / (i + для каждого столбца найти и выдать на печать количество положительных и отрицательных элементов в нем.
Язык не указан, решение приводится на языке Pascal. Поскольку в стандарте языка не определена функция арккосинуса, используем для её вычисления следующую формулу:
const m=10; n=6; var a:array[1..m,1..n] of real; i,j,nn,np:integer; t:real; begin Randomize; Writeln('Исходный массив'); for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=100*Random-50; Write(a[i,j]:4:0) end; Writeln end; Writeln('Преобразованный массив'); for i:=1 to m do begin for j:=1 to n do begin t:=i/(i+j); a[i,j]:=a[i,j]*arctan(sqrt(1-sqr(t))/t); Write(a[i,j]:8:3) end; Writeln end; Writeln('Количество положительных и отрицательных по столбцам'); for j:=1 to n do begin nn:=0; np:=0; for i:=1 to m do if a[i,j]>0 then Inc(np) else if a[i,j]<0 then Inc(nn); Writeln(np,nn:5) end end.
Поскольку в стандарте языка не определена функция арккосинуса, используем для её вычисления следующую формулу:
const
m=10;
n=6;
var
a:array[1..m,1..n] of real;
i,j,nn,np:integer;
t:real;
begin
Randomize;
Writeln('Исходный массив');
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=100*Random-50;
Write(a[i,j]:4:0)
end;
Writeln
end;
Writeln('Преобразованный массив');
for i:=1 to m do
begin
for j:=1 to n do
begin
t:=i/(i+j);
a[i,j]:=a[i,j]*arctan(sqrt(1-sqr(t))/t);
Write(a[i,j]:8:3)
end;
Writeln
end;
Writeln('Количество положительных и отрицательных по столбцам');
for j:=1 to n do
begin
nn:=0; np:=0;
for i:=1 to m do
if a[i,j]>0 then Inc(np)
else if a[i,j]<0 then Inc(nn);
Writeln(np,nn:5)
end
end.
Тестовое решение:
Исходный массив
-11 -10 -15 -13 -4 -23
5 -9 -26 42 -10 -50
39 -44 -11 -23 -49 29
10 28 -19 -3 11 -33
-43 38 9 -17 -39 -10
28 -14 37 31 28 -45
-36 -9 43 1 5 -27
9 13 11 27 -26 -47
-12 -47 18 -2 1 -42
-6 42 30 -32 -20 8
Преобразованный массив
-12.034 -12.248 -19.972 -17.532 -5.364 -32.661
4.253 -9.774 -29.745 51.166 -13.367 -65.437
28.372 -40.514 -11.382 -26.380 -58.461 36.054
6.581 23.311 -18.115 -3.547 11.668 -37.943
-25.184 29.245 7.803 -16.734 -41.213 -10.573
14.960 -9.929 31.504 28.946 27.517 -46.913
-18.219 -5.980 33.942 1.053 4.692 -27.179
4.153 8.483 8.413 22.468 -23.865 -45.133
-5.524 -28.630 12.763 -1.270 0.634 -38.674
-2.612 24.538 20.476 -25.133 -16.656 7.570
Количество положительных и отрицательных по столбцам
5 5
4 6
6 4
4 6
4 6
2 8