Составить одномерный массив из максимальных элементов столбцов матрицы. - Pascal
Формулировка задачи:
Помогите,пожалуйста,решить
Вводятся две целые матрицы размером 20х20 и 30х30. Для той у матрицы, которой количество нулевых элементов больше. составить одномерный массив из максимальных элемеитов нечетных столбцов матрицы и отсортировать его в порядке возрастания элементов. Вывести на печать саму найденную матрицу, сумму элементов и отсортированный одномерный массив.
Решение задачи: «Составить одномерный массив из максимальных элементов столбцов матрицы.»
textual
Листинг программы
const an=20; bn=30;
var
a: array [1..an,1..an] of Integer;
b: array [1..bn,1..bn] of Integer;
c: array [1..bn div 2] of Integer;
ak, bk, cn, m, t, i, j: Integer;
begin
Randomize;
for i:=1 to an do for j:=1 to an do a[i,j]:=Random(10);
for i:=1 to bn do for j:=1 to bn do b[i,j]:=Random(10);
for i:=1 to an do for j:=1 to an do if a[i,j]=0 then Inc(ak);
for i:=1 to bn do for j:=1 to bn do if b[i,j]=0 then Inc(bk);
j:=1; {cn:=0;}
if ka>kb then begin
while j<=an do begin
m:=a[1,j]; for i:=2 to an do if m<a[i,j] then m:=a[i,j];
Inc(j,2); Inc(cn); c[cn]:=m;
end;
WriteLn('A =');
for i:=1 to an do begin
for j:=1 to an do Write(a[i,j]:2); WriteLn;
end;
end else begin
while j<=bn do begin
m:=b[1,j]; for i:=2 to bn do if m<b[i,j] then m:=b[i,j];
Inc(j,2); Inc(cn); c[cn]:=m;
end;
WriteLn('B =');
for i:=1 to bn do begin
for j:=1 to bn do Write(b[i,j]:2); WriteLn;
end;
end;
for i:=cn downto 2 do for j:=2 to cn do
if c[j-1]>c[j] then begin
t:=c[j-1];.c[j-1]:=c[j]; c[j]:=t;
end;
WriteLn('C ='); for j:=1 to cn do Write(c[j]:2); WriteLn;
end.
Объяснение кода листинга программы
- Объявление и инициализация переменных:
an- константа, равная 20bn- константа, равная 30a- двумерный массив размером an x an, заполненный случайными целыми числами от 0 до 9b- двумерный массив размером bn x bn, заполненный случайными целыми числами от 0 до 9c- одномерный массив размером bn div 2, для хранения максимальных элементов столбцовak,bk,cn,m,t,i,j- целочисленные переменные
- Генерация случайных чисел для массивов
aиbс использованием вложенных цикловfor - Поиск количества нулевых элементов в массивах
aиbс использованием вложенных цикловforи увеличение переменныхakиbkпри обнаружении нулевых значений - Проверка условия
если ka>kbи заполнение массиваcмаксимальными элементами столбцовaилиbв зависимости от результата проверки с использованием цикловwhileиfor - Вывод массива
aилиbв зависимости от результата проверки условия (if-else) - Сортировка массива
cв порядке возрастания с использованием метода пузырьковой сортировки - Вывод отсортированного массива
cМожно заметить, что в коде возможно опечатка в названии переменнойka, а также пропущен знак=в строкеt:=c[j-1];.c[j-1]:=c[j]; c[j]:=t;.