TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

[ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]

Пример 6.1. В заданной целочисленной матрице A(N, M) найти количество строк, содержащих нули.
 
Тест
 
Данные Результат
N M Матрица А К
3 3  2
 
Демонстрация

Школьный АЯ

алг Строки с нулями (арг цел 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
       все
    кц
  кц
кон 
Исполнение алгоритма  Обозначение проверяемого условия:
(j<=M) и (Flag = "Нет" )  => (1)
i Flag j (1) A[i,j]=0 K
1 "Нет"
"Да"
1
2
+
+
-(кц)
-
+
0
1
2 "Нет" 1
2
3
4
+
+
+
-(кц)
-
-
-
 
3 "Нет"
"Да"
1 +
-(кц)
+ 2

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.
 

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz