| [ домой ] | [ следующий ] [ начало главы ] [ предыдущий ] | [ содержание ] |
|
|
|
||
|
|
|
|
|
|
|
|
![]() |
|
|
Школьный АЯ алг Строки с нулями (арг цел N, M, арг цел таб A[1:N, 1:M], рез цел K) дано | N>0, M>0 нач цел i, j, лит Flag K := 0 нц для i от 1 до N | цикл по всем строкам j:= 1; Flag := "Нет" нц пока (j <= M) и (Flag = "Нет") | цикл до нулевого элемента строки если A[i, j] = 0 то Flag:="Да"; K:=K+1 иначе j:=j+1 все кц кц кон |
|
|
|
|
|
|
|
|
|
|
"Да" |
2 |
+ -(кц) |
+ |
1 |
|
|
|
2 3 4 |
+ + -(кц) |
- - |
|
|
|
"Да" |
|
-(кц) |
|
|
Turbo Pascal
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.
QBasic
CLS
INPUT "Количество строк - ", N
INPUT "Количество столбцов - ", M : DIM A(N, M)
FOR i = 1 TO N
FOR j = 1 TO M
PRINT "A(" ; i ; ", " ; j ; ") = " ;
INPUT A(i, j)
NEXT j
NEXT i : CLS
PRINT "Исходная матрица :" : PRINT
FOR i = 1 TO N
FOR j = 1 TO M
PRINT A(i, j) ;
NEXT j : PRINT
NEXT i : PRINT
K = 0 FOR i = 1 TO N 'цикл по всем строкам j = 1 : Flag = 0 WHILE (j <= M) AND ( Flag = 0 ) 'цикл до нулевого элемента строки IF A(i, j) = 0 THEN Flag = 1: K = K + 1 ELSE j = j + 1 WEND NEXT i
PRINT "О т в е т : строк, содержащих нули, " ; K ; "." END
| [ домой ] | [ следующий ] [ начало главы ] [ предыдущий ] | [ содержание ] |