Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента - Free Pascal
Формулировка задачи:
Не могли бы вы помочь с этим делом? Завтра сдавать, а ничего не идет
Дана целочисленная прямоугольная матрица.
1) Определить количество столбцов, не содержащих ни одного нулевого элемента.
2) Характеристикой строки целочисленной матрицы назовем сумму ее положитель¬ных четных элементов. Определить характеристики строк матрицы.
Оформить решения задач с помощью процедур и/или функций
(При решении задач не использовать глобальные переменные)
Решение задачи: «Определить количество столбцов матрицы, не содержащих ни одного нулевого элемента»
textual
Листинг программы
uses crt;
const nmax=15;
type str=array[1..nmax] of integer;
mtr=array[1..nmax] of str;
procedure matrix(var a:mtr;var m,n:byte);
var i,j:byte;
begin
repeat
write('Количество строк до ',nmax,' m=');
readln(m);
until m in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to m do
begin
for j:=1 to n do
begin
a[i,j]:=-5+random(11);
write(a[i,j]:4);
end;
writeln;
end;
end;
function kol(a:mtr;m,n:byte):byte;
var i,j,k,c:byte;
begin
c:=0;
for j:=1 to n do
begin
k:=0;
i:=1;
while(i<=m)and(k=0) do
if a[i,j]=0 then k:=1
else inc(i);
if k=0 then inc(c);
end;
kol:=c;
end;
function har(a:str;n:byte):integer;
var j:byte;
s:integer;
begin
s:=0;
for j:=1 to n do
if (a[j]>0)and(a[j] mod 2=0) then s:=s+a[j];
har:=s;
end;
var a:mtr;
m,n,i:byte;
begin
clrscr;
randomize;
matrix(a,m,n);
writeln('Количество столбцов без 0=',kol(a,m,n));
writeln('Характеристики строк');
for i:=1 to m do
writeln('Строка ',i,'=',har(a[i],n));
readln
end.