procedure FillArray(var a: ta; n, min, max: integer); var i, k: integer; begin k := max - min + 1; for i := 1 to n do a[i] := Random(k) + min end;
procedure WriteArray(a: ta; n, p: integer); var i: integer; begin for i := 1 to n do Write(a[i]:p); Writeln end;
procedure CopyNegative(var a, b: ta; m: integer; var n: integer); var i: integer; begin n := 0; for i := 1 to m do if a[i] < 0 then begin Inc(n); b[n] := a[i] end end;
var n: integer; x, y: ta;
begin Randomize; FillArray(x, 10, -50, 50); Writeln('Исходный массив'); WriteArray(x, 10, 4); CopyNegative(x, y, 10, n); Writeln('Массив из отрицательных элементов'); WriteArray(y, n, 4); FillArray(x, 8, -200, 100); Writeln('Исходный массив'); WriteArray(x, 12, 5); CopyNegative(x, y, 12, n); Writeln('Массив из отрицательных элементов'); WriteArray(y, n, 5); end.
var a: array[1..m1, 1..n1] of integer; b: array[1..m1] of real; i, j, m, n, max, min, t, imax, jmax, imin, jmin, s, kn: integer;
begin Write('Введите через пробел число строк и столбцов массива: '); Readln(m, n); max := -32768; min := 32767; for i := 1 to m do begin Write('Строка ', i, ': '); for j := 1 to n do begin Read(t); a[i, j] := t; if max < t then begin max := t; imax := i; jmax := j end else if min > t then begin min := t; imin := i; jmin := j end end end; a[imax, jmax] := min; a[imin, jmin] := max; Writeln('Результирующий массив'); for i := 1 to m do begin s := 0; kn := 0; for j := 1 to n do begin Write(a[i, j]:6); if a[i, j] < 0 then begin s := s + a[i, j]; Inc(kn) end end; Writeln; if kn > 0 then b[i] := s / kn else b[i] := 0 end; Writeln('Среднее арифметическое отрицательных элементов построчно:'); for i := 1 to m do Writeln(b[i]:10:4) end.
nn = 20;
type
ta = array[1..nn] of integer;
procedure FillArray(var a: ta; n, min, max: integer);
var
i, k: integer;
begin
k := max - min + 1;
for i := 1 to n do a[i] := Random(k) + min
end;
procedure WriteArray(a: ta; n, p: integer);
var
i: integer;
begin
for i := 1 to n do Write(a[i]:p);
Writeln
end;
procedure CopyNegative(var a, b: ta; m: integer; var n: integer);
var
i: integer;
begin
n := 0;
for i := 1 to m do
if a[i] < 0 then
begin
Inc(n);
b[n] := a[i]
end
end;
var
n: integer;
x, y: ta;
begin
Randomize;
FillArray(x, 10, -50, 50);
Writeln('Исходный массив');
WriteArray(x, 10, 4);
CopyNegative(x, y, 10, n);
Writeln('Массив из отрицательных элементов');
WriteArray(y, n, 4);
FillArray(x, 8, -200, 100);
Writeln('Исходный массив');
WriteArray(x, 12, 5);
CopyNegative(x, y, 12, n);
Writeln('Массив из отрицательных элементов');
WriteArray(y, n, 5);
end.
Тестовое решение:
Исходный массив
-12 17 35 -4 -45 8 33 -8 -47 -4
Массив из отрицательных элементов
-12 -4 -45 -8 -47 -4
Исходный массив
-150 -174 92 -168 69 -60 -165 -78 -47 -4 0 0
Массив из отрицательных элементов
-150 -174 -168 -60 -165 -78 -47 -4
m1 = 20;
n1 = 20;
var
a: array[1..m1, 1..n1] of integer;
b: array[1..m1] of real;
i, j, m, n, max, min, t, imax, jmax, imin, jmin, s, kn: integer;
begin
Write('Введите через пробел число строк и столбцов массива: ');
Readln(m, n);
max := -32768; min := 32767;
for i := 1 to m do
begin
Write('Строка ', i, ': ');
for j := 1 to n do
begin
Read(t);
a[i, j] := t;
if max < t then begin max := t; imax := i; jmax := j end
else if min > t then begin min := t; imin := i; jmin := j end
end
end;
a[imax, jmax] := min; a[imin, jmin] := max;
Writeln('Результирующий массив');
for i := 1 to m do
begin
s := 0; kn := 0;
for j := 1 to n do
begin
Write(a[i, j]:6);
if a[i, j] < 0 then begin s := s + a[i, j]; Inc(kn) end
end;
Writeln;
if kn > 0 then b[i] := s / kn else b[i] := 0
end;
Writeln('Среднее арифметическое отрицательных элементов построчно:');
for i := 1 to m do Writeln(b[i]:10:4)
end.
Тестовое решение:
Введите через пробел число строк и столбцов массива: 4 6
Строка 1: 5 -3 0 7 11 -4
Строка 2: 14 -12 -7 13 11 18
Строка 3: 3 11 8 -14 25 15
Строка 4: 15 0 -17 21 0 -21
Результирующий массив
5 -3 0 7 11 -4
14 -12 -7 13 11 18
3 11 8 -14 -21 15
15 0 -17 21 0 25
Среднее арифметическое отрицательных элементов построчно:
-3.5000
-9.5000
-17.5000
-17.0000