По двум заданным матрицам- А(10,6) и В(10,6) сформировать матрицу С(10,6) по следующему правилу: в верхнюю половину записать соответствующие строки из той матрицы, где больше минимальный элемент, а в нижнюю – соответствующие строки из другой матрицы.
program gtd;
label 1;
type
Dvumer = array [1 .. 4, 1 .. 2] of integer; { отбъявление типа МАТРИЦы 10*6 }
var
A, B, C: Dvumer; { A,B,C переменные МАТРИЦ 10*6 }
i, j, n: integer;
function mind(A: Dvumer): integer;
{ ***функция определения МАКС элемента в матрице }
var
i, j, min: integer;
begin
min := A[1, 1];
for i := 1 to 4 do
for j := 1 to 2 do
if A[i, j] < min then
min := A[i, j];
mind := min;
end; { ***КОНЕЦ функции определения МАКС элемента в матрице }
function otric(A: Dvumer; j: integer): integer;
{ функция в МАТРИЦЕ "А" определяет сколько отрицательных элементов имеем СТОЛБЕЦ "j" }
var
m: integer;
begin
m := 0;
for i := 1 to 4 do
if A[i, j] < 0 then
inc(m);
otric := m;
end; { ***КОНЕЦ функции определения ОТРИЦАТЕЛЬНЫХ элементов }
begin { ***************НАЧАЛО ПРОГРАММЫ************** }
for i := 1 to 4 do
for j := 1 to 2 do
begin
write('A[', i, ',', j, ']=');
readln(A[i, j]);
end; { считывание сс экрана элементов матрицы А }
for i := 1 to 4 do
for j := 1 to 2 do
begin
write('B[', i, ',', j, ']=');
readln(B[i, j]);
end; { считывание сс экрана элементов матрицы В }
writeln;
writeln;
write('A:');
for i := 1 to 4 do
begin
writeln;
for j := 1 to 2 do
write(A[i, j]:4); { выводим на экран получившеюся матрицу A }
END;
writeln;
write('B:');
for i := 1 to 4 do
begin
writeln;
for j := 1 to 2 do
write(B[i, j]:4); { выводим на экран получившеюся матрицу B }
END;
writeln;
writeln;
if mind(A) > mind(B) then
writeln('min(A) ">" min(B)');
{ информируем на экране если max(A) ">" max(B) }
if mind(A) < mind(B) then
writeln('min(A) "<" min(B)');
{ информируем на экране если max(A) "<" max(B) }
if mind(A) = mind(B) then
writeln('min(A) "=" min(B)');
{ информируем на экране если max(A) "=" max(B) }
writeln;
{ *******************A<>B***************** }
if mind(A) <> mind(B) then
BEGIN
for i := 1 to 2 do { проходим по VVERX polovina }
for j := 1 to 2 do
if mind(A) > mind(B) then
C[i, j] := A[i, j]
else
C[i, j] := B[i, j]; { заполняем VVERX polovina }
for i := 2 to 4 do { проходим по NIZ polovina }
for j := 1 to 2 do
if mind(A) < mind(B) then
C[i, j] := A[i, j]
else
C[i, j] := B[i, j]; { заполняем VVERX polovina }
write('C:');
for i := 1 to 4 do
begin
writeln;
for j := 1 to 2 do
write(C[i, j]:4); { выводим на экран получившеюся матрицу С }
end;
END;
{ *****************A=B******* }
writeln;
writeln;
if mind(A) = mind(B) then
BEGIN { если МИН равны }
for j := 1 to 2 do { то проходим ВСЕ 6 столвцов }
if otric(A, j) > otric(B, j)
then { И СМОТРИМ тот столбец, где встретилось так, что ОТРИЦАТЕЛЬНЫХ больше в А чем в В }
begin
writeln('Stolbec= ', j);
goto 1;
end; { тогда выводим номер этого столбца на экран и завершаем работу проги }
END;
1:
readln;
readln;
end.