Если количество четных элементов массива а(n,m) больше количества нечетных, то уменьшить все положительные элементы вдвое, в противном случае найти сумму отрицательных элементов каждого столбца
var a: array[1..nn, 1..mm] of integer; i, j, m, n, n1,n2,sj: integer;
begin { Формирование массива и вывод его элементов. Попутный подсчет количества четных и нечетных элементов } n1:=0; n2:=0; Write('Введите через пробел число строк и столбцов массива: '); Readln(n, m); Randomize; Writeln('Исходный массив'); for i := 1 to n do begin for j := 1 to m do begin a[i, j] := Random(101) - 50; Write(a[i, j]:4); if (a[i,j] mod 2=0) then n2:=n2+1 else n1:=n1+1 end; Writeln end; { Сравнение и ветвление } if n2>n1 then { Уменьшить вдвое все положительные элементы } begin Writeln('Результирующий массив'); for i:=1 to n do begin for j:=1 to m do begin if a[i,j]>0 then a[i,j]:=a[i,j] div 2; Write(a[i,j]:4) end; Writeln end end else begin { Найти суммы отрицательных элементов каждого столбца } Writeln('Суммы отрицательных элементов по столбцам'); for j:=1 to m do begin sj:=0; for i:=1 to n do if a[i,j]<0 then sj:=sj+a[i,j]; Write(sj,' ') end end end.
procedure push(var ar:ty); var i,c:integer; begin c:=ar[n]; for i:=n downto 2 do ar[i]:=ar[i-1]; ar[1]:=c; end;
begin randomize; writeln('Enter K:'); readln(k); writeln('First array:'); for i:=1 to n do begin; ar[i]:=random(10); write(ar[i]:4); end; for i:=1 to k do push(ar); writeln; writeln('Final array:'); for i:=1 to n do write(ar[i]:4); end. 2)var a,i,b,r,n:integer; s,se:string;
procedure preob(var a,b,n:integer; var se:string); begin repeat b:=a mod n; a:=a div n; str(b,se); s+=se; until (a<=n-1); end;
begin readln(a); readln(n); preob(a,b,n,se); str(a,se); s+=se; for i:=1 to length(s) div 2 do begin; se:=s[i]; s[i]:=s[length(s)-i+1]; s[length(s)-i+1]:=se[1]; end; val(s,r,a); write(r); end.
procedure push(var ar:ty); var i,c:integer; begin c:=ar[n]; for i:=n downto 2 do ar[i]:=ar[i-1]; ar[1]:=c; end;
begin randomize; writeln('Enter K:'); readln(k); writeln('First array:'); for i:=1 to n do begin; ar[i]:=random(10); write(ar[i]:4); end; for i:=1 to k do push(ar); writeln; writeln('Final array:'); for i:=1 to n do write(ar[i]:4); end. 2)var a,i,b,r,n:integer; s,se:string;
procedure preob(var a,b,n:integer; var se:string); begin repeat b:=a mod n; a:=a div n; str(b,se); s+=se; until (a<=n-1); end;
begin readln(a); readln(n); preob(a,b,n,se); str(a,se); s+=se; for i:=1 to length(s) div 2 do begin; se:=s[i]; s[i]:=s[length(s)-i+1]; s[length(s)-i+1]:=se[1]; end; val(s,r,a); write(r); end.
nn = 20;
mm = 20;
var
a: array[1..nn, 1..mm] of integer;
i, j, m, n, n1,n2,sj: integer;
begin
{ Формирование массива и вывод его элементов.
Попутный подсчет количества четных и нечетных элементов }
n1:=0; n2:=0;
Write('Введите через пробел число строк и столбцов массива: ');
Readln(n, m);
Randomize;
Writeln('Исходный массив');
for i := 1 to n do
begin
for j := 1 to m do
begin
a[i, j] := Random(101) - 50;
Write(a[i, j]:4);
if (a[i,j] mod 2=0) then n2:=n2+1 else n1:=n1+1
end;
Writeln
end;
{ Сравнение и ветвление }
if n2>n1 then
{ Уменьшить вдвое все положительные элементы }
begin
Writeln('Результирующий массив');
for i:=1 to n do
begin
for j:=1 to m do
begin
if a[i,j]>0 then a[i,j]:=a[i,j] div 2;
Write(a[i,j]:4)
end;
Writeln
end
end
else
begin
{ Найти суммы отрицательных элементов каждого столбца }
Writeln('Суммы отрицательных элементов по столбцам');
for j:=1 to m do
begin
sj:=0;
for i:=1 to n do
if a[i,j]<0 then sj:=sj+a[i,j];
Write(sj,' ')
end
end
end.
Тестовое решение:
Введите через пробел число строк и столбцов массива: 8 5
Исходный массив
13 -23 25 2 -36
-19 47 -7 -24 -34
-21 12 -29 46 -46
18 -3 12 -26 -8
-36 -39 -27 -48 -44
-25 -4 -23 -11 -15
49 24 -5 28 32
-37 -32 -34 39 45
Суммы отрицательных элементов по столбцам
-138 -101 -125 -109 -183