Const m = 5; n = 10; a = 20; b = 80; // Массив имеет размер mxn, интервал задан границами [a;b] var i, j, max, outint, T, nT, nI: integer; Mas: array[1..m, 1..n] of integer;
begin Randomize; for i := 1 to m do for j := 1 to n do Mas[i, j] := Random(100); writeln('Исходный массив'); for i := 1 to m do begin for j := 1 to n do write(Mas[i, j], ' '); writeln; end; Mas[i, j] := Random(100); for i := 1 to m do begin max := -1; // все элементы полагаются неотрицательными nI:=0; for j := 1 to n do begin T := Mas[i, j]; if T > max then begin max := T; nT := j end; if nI = 0 then if (T <= a) or (T >= b) then nI := j end; if nI > 0 then begin T := Mas[i, nT]; Mas[i, nT] := Mas[i, nI]; Mas[i, nI] := T end end; writeln('Результирующий массив'); for i := 1 to m do begin for j := 1 to n do write(Mas[i, j], ' '); writeln; end end.
m = 5; n = 10; a = 20; b = 80;
// Массив имеет размер mxn, интервал задан границами [a;b]
var
i, j, max, outint, T, nT, nI: integer;
Mas: array[1..m, 1..n] of integer;
begin
Randomize;
for i := 1 to m do
for j := 1 to n do
Mas[i, j] := Random(100);
writeln('Исходный массив');
for i := 1 to m do
begin
for j := 1 to n do
write(Mas[i, j], ' ');
writeln;
end;
Mas[i, j] := Random(100);
for i := 1 to m do
begin
max := -1; // все элементы полагаются неотрицательными
nI:=0;
for j := 1 to n do
begin
T := Mas[i, j];
if T > max then begin
max := T; nT := j
end;
if nI = 0 then
if (T <= a) or (T >= b) then nI := j
end;
if nI > 0 then begin
T := Mas[i, nT]; Mas[i, nT] := Mas[i, nI]; Mas[i, nI] := T
end
end;
writeln('Результирующий массив');
for i := 1 to m do
begin
for j := 1 to n do
write(Mas[i, j], ' ');
writeln;
end
end.
Пример выполнения программы в PascalABC.NET
Исходный массив
34 56 89 27 71 0 64 89 80 36
15 59 95 54 37 15 81 64 48 39
89 42 71 55 97 80 48 65 98 55
85 27 45 39 37 74 98 7 7 31
28 56 14 3 45 39 98 19 93 4
Результирующий массив
34 56 89 27 71 0 64 89 80 36
95 59 15 54 37 15 81 64 48 39
98 42 71 55 97 80 48 65 89 55
98 27 45 39 37 74 85 7 7 31
28 56 98 3 45 39 14 19 93 55
begin
var a:=ArrRandom(100,-10,10);
a.Println;
Writeln(a.Where(x->x>0).Count,' положительных, ',
a.Where(x->x<0).Count,' отрицательных')
end.
Тестовое решение:
4 -6 0 8 2 -2 -1 -8 -6 8 -3 7 4 -7 -5 9 0 -3 -7 1 0 -4 6 3 8 -10 4 9 3 5 8 5 5 8 10 4 -8 3 8 8 -9 2 7 -8 -7 -5 2 -9 0 9 -7 7 -2 -6 7 -2 -1 7 -10 2 4 1 -1 0 10 3 -8 6 -6 2 6 7 -1 -4 -1 8 0 3 0 2 -2 2 -1 5 1 -9 -4 1 -9 1 -6 -5 3 -4 -7 1 -7 -3 -7 1
51 положительных, 42 отрицательных