var x: array[1..m, 1..n] of integer; i, j, a, b, k: integer;
begin write('Введите числа a,b: '); readln(a, b); Randomize; writeln(#13#10, 'Исходный массив'); for i := 1 to m do begin for j := 1 to n do begin x[i, j] := Random(100) - 50; write(x[i, j]:5) end; writeln end; writeln('Количество элементов матрицы, кратных ', a); for j := 1 to n do begin k := 0; for i := 1 to m do if x[i, j] mod a = 0 then k := k + 1; write(k:5) end; writeln; writeln('Количество элементов матрицы, кратных ', b); for j := 1 to n do begin k := 0; for i := 1 to m do if x[i, j] mod b = 0 then k := k + 1; write(k:5) end; writeln end.
procedure ShiftRight(ip: integer); // сдвигает к началу массива все элементы. расположенные за ip var i: integer; begin for i := ip to n - 1 do a[i] := a[i + 1]; a[n] := -32768 end;
var i, j, mx, px: integer;
begin Randomize; writeln('Исходный массив'); mx := -100; px := 0; for i := 1 to n do begin a[i] := Random(30) - 15; write(a[i]:4); if mx < a[i] then begin mx := a[i]; px := i end end; writeln; writeln('Результирующий массив'); if px = n then for i := 1 to n - 1 do writeln(a[i]:4) else begin for i := 1 to px - 1 do write(a[i]:4); ShiftRight(px); i := px; while (i <= n) and (a[i] <> -32768) do if a[i] < mx then begin write(a[i]:4); i := i + 1 end else ShiftRight(i) end; writeln end.
m = 5;
n = 8;
var
x: array[1..m, 1..n] of integer;
i, j, a, b, k: integer;
begin
write('Введите числа a,b: ');
readln(a, b);
Randomize;
writeln(#13#10, 'Исходный массив');
for i := 1 to m do
begin
for j := 1 to n do
begin
x[i, j] := Random(100) - 50;
write(x[i, j]:5)
end;
writeln
end;
writeln('Количество элементов матрицы, кратных ', a);
for j := 1 to n do
begin
k := 0;
for i := 1 to m do
if x[i, j] mod a = 0 then k := k + 1;
write(k:5)
end;
writeln;
writeln('Количество элементов матрицы, кратных ', b);
for j := 1 to n do
begin
k := 0;
for i := 1 to m do
if x[i, j] mod b = 0 then k := k + 1;
write(k:5)
end;
writeln
end.
Тестовое решение:
Введите числа a,b: 4 7
Исходный массив
-16 3 26 4 46 -6 -31 21
-35 -34 46 42 15 -26 -9 4
-19 -47 8 -48 13 14 42 -46
41 -10 13 45 -20 15 13 -44
18 -11 23 -30 44 -36 -8 -42
Количество элементов матрицы, кратных 4
1 0 1 2 2 1 1 2
Количество элементов матрицы, кратных 7
1 0 0 1 0 1 1 2
n = 50;
var
a: array[1..n] of integer;
procedure ShiftRight(ip: integer);
// сдвигает к началу массива все элементы. расположенные за ip
var
i: integer;
begin
for i := ip to n - 1 do a[i] := a[i + 1];
a[n] := -32768
end;
var
i, j, mx, px: integer;
begin
Randomize;
writeln('Исходный массив');
mx := -100;
px := 0;
for i := 1 to n do
begin
a[i] := Random(30) - 15;
write(a[i]:4);
if mx < a[i] then begin
mx := a[i];
px := i
end
end;
writeln;
writeln('Результирующий массив');
if px = n then
for i := 1 to n - 1 do writeln(a[i]:4)
else
begin
for i := 1 to px - 1 do write(a[i]:4);
ShiftRight(px);
i := px;
while (i <= n) and (a[i] <> -32768) do
if a[i] < mx then
begin
write(a[i]:4);
i := i + 1
end
else ShiftRight(i)
end;
writeln
end.
Тестовый пример:
Исходный массив
1 2 -13 0 -2 14 -15 4 -6 -3 14 4 -10 -7 -5 11 -1 -10 9 -10 -12 14 4 -9 -5 -14 9 -9 9 5 3 -10 -15 -3 4 -14 -10 7 1 -11 -8 -15 5 -6 9 -3 9 -14 -3 1
Результирующий массив
1 2 -13 0 -2 -15 4 -6 -3 4 -10 -7 -5 11 -1 -10 9 -10 -12 4 -9 -5 -14 9 -9 9 5 3 -10 -15 -3 4 -14 -10 7 1 -11 -8 -15 5 -6 9 -3 9 -14 -3 1