Program ContainZero;
Uses Crt;
Var A : Array[1..10, 1..10] of Integer;
N, M, i, j : Integer;
K : Integer; {K - количество строк, содержащих нули}
{--------------------------------------------}
Procedure InputOutput; {описание процедуры ввода-вывода данных}
Begin
ClrScr;
Write('Количество строк - '); ReadLn(N);
Write('Количество столбцов - '); ReadLn(M);
For i := 1 to N do
For j := 1 to M do
begin Write('A[' , i , ' , ' , j , ']= ? ');
ReadLn(A[i, j])
end;
WriteLn; WriteLn('Исходная матрица :');
For i := 1 to N do
begin
For j := 1 to M do Write(A[i, j] : 5);
WriteLn
end; WriteLn
End; { of InputOutput }
{--------------------------------------------}
Function Zero(i:Integer):Boolean; {описание функции, принимающей }
Var Flag : Boolean; {значение Истина, если в строке есть }
Begin {нули, и Ложь, если в строке нет нулей}
j:=1; Flag:=FALSE;
While (j<=M) and not Flag do
If A[i, j]=0 then Flag:=TRUE else j:=j+1;
Zero:=Flag {значение функции присваивается имени функции}
End;
{--------------------------------------------}
BEGIN
InputOutput; {вызов процедуры ввода-вывода}
K:=0;
For i := 1 to N do
If Zero(i) then K:=K+1; {Zero(i) - указатель функции Zero}
WriteLn('Количество строк, содержащих нули, равно ', K); ReadLn
END.