В какой из половин матрицы (верхней или нижней) больше нулевых элементов - Pascal ABC
Формулировка задачи:
Для матрицы А(4 строк, 5 столбцов) определить, в какой из ее половин (верхней или нижней) больше нулевых элементов (вывести одно из сообщений: "больше в верхней", "больше в нижней" или "одинаково". Для подсчета количества нулевых элементов в произвольной части матрицы использовать процедуру.
Решение задачи: «В какой из половин матрицы (верхней или нижней) больше нулевых элементов»
textual
Листинг программы
const m=4; n=5; type mtr=array[1..m,1..n] of integer; procedure zero(a:mtr;i1,i2:integer;var k:integer); var i,j:integer; begin k:=0; for i:=i1 to i2 do for j:=1 to n do if a[i,j]=0 then inc(k); end; var a:mtr; i,j,k1,k2:integer; begin randomize; writeln('Матрица'); for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=-2+random(5); write(a[i,j]:4); end; writeln; end; zero(a,1,m div 2,k1); zero(a,m div 2+1,m,k2); writeln('Количество нолей в верхней половине=',k1); writeln('Количество нолей в нижней половине=',k2); if k1>k2 then write('больше в верхней') else if k1<k2 then write('больше в нижней') else write('Поровну') end.
Объяснение кода листинга программы
- const m=4;
- const n=5;
- type mtr=array[1..m,1..n] of integer;
- procedure zero(a:mtr;i1,i2:integer;var k:integer);
- var i,j:integer;
- begin k:=0; for i:=i1 to i2 do for j:=1 to n do if a[i,j]=0 then inc(k); end;
- var a:mtr;
- i,j,k1,k2:integer;
- begin randomize; writeln('Матрица'); for i:=1 to m do begin for j:=1 to n do begin a[i,j]:=-2+random(5); write(a[i,j]:4); end; writeln; end; zero(a,1,m div 2,k1); zero(a,m div 2+1,m,k2); writeln('Количество нолей в верхней половине=',k1); writeln('Количество нолей в нижней половине=',k2); end.
- if k1>k2 then write('больше в верхней')
- else if k1<k2 then write('больше в нижней')
- else write('Поровну')
- end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д