Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Оцените дизайн сайта

Супер
Симпатично
Пойдет
Ничего хорошего
Просто клиника


Результаты
Другие опросы

Всего голосов: 890
Комментарии: 2

Error: Incorrect password!
Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Книги-online



Практикум — Глава 5. Алгоритмы, реализуемые с помощью вложенных циклов типа ПОКА
[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]

Пример 5.2. Дана целочисленная матрица A(N, N). Определить, имеются ли среди её элементов, лежащих ниже главной диагонали, отрицательные числа.   Система тестов  
Номер  теста Проверяемый  случай Данные Результат
N Массив А Otvet
1 Имеются 4  1 -1  2  1  2  3  1  0  1 -1  2 -1 -2  1  0  1  ''Есть отрицательные числа''
2 Не имеются 3 1 -1  2 1  0  1 2  1  1 ''Нет отрицательных чисел''
  Демонстрация
Школьный АЯ 
алг Ниже диагонали (арг цел N, арг цел таб
                   A[1:N, 1:N], рез лит Otvet) 
нач цел i, j, лит Flag 
  Flag:="Нет"; i:=2 
  нц пока (i< =N) и (Flag="Нет") | цикл по строкам
    j:=1 
    нц пока (j<i) и (Flag="Нет")
              | цикл по элементам строки 
      если A[i, j]<0 | условие прерывания циклов
         то Flag:="Да" 
         иначе  j:=j+1 | продвижение по строке 
      все
    кц
    i:=i+1 | переход на новую строку 
  кц 
 если Flag="Да"
  то Otvet:="Есть отрицательные ниже диагонали" 
  иначе Otvet:="Нет отрицательных ниже диагонали"
 все
кон 
Блок-схема (фрагмент) 
Исполнение алгоритма   Обозначения проверяемых условий: (i <= N) и (Flag = "Нет")  => (1) (j < i) и (Flag = "Нет")   => (2)
N теста i Flag (1) j (2) A[i]=A[j] Otvet
 1 2  "Нет" + 1 2 + -(кц) -  
3 "Да" + 1 2 3 + + -(кц) - +  
4    -(кц)       "Есть отрицательные"
2 2  "Нет" + 1 2 +  -(кц) -  
3   + 1 2 3 + + -(кц) - -  
4   -(кц)       "Нет отрицательных"
 
Turbo Pascal
Program UnderDiagonal; 
  Uses Crt; 
  Type Mas = Array [1..10, 1..10] of Integer; 
  Var A       : Mas; 
      N, i, j : Integer; 
      Flag    : Boolean; 
{-----------------------------------} 
Procedure InputOutput(Var A : Mas);  {описание процедуры } 
 Begin                               {ввода-вывода данных} 
  ClrScr; 
  Write('Количество строк и столбцов - '); ReadLn(N); 
  For i := 1 to N do 
    For j := 1 to N do 
      begin Write('A[' , i , ', ' , j , ']= ? '); 
            ReadLn(A[i, j]) 
      end; WriteLn;
  WriteLn('Матрица :'); 
  For i := 1 to N do 
   begin 
     For j := 1 to N do Write(A[i, j] : 5); 
     WriteLn 
   end; WriteLn 
End; { of InputOutput } 
{------------------------------------} 
Procedure Solution(Var A : Mas); {описание процедуры поиска решения} 
 Begin 
  i := 2 ; Flag := FALSE;
  While (i<=N) and not Flag do 
    begin 
      j:=1; 
      While (j<i) and not Flag do 
        If (A[i, j]<0) 
          then Flag:=TRUE 
          else j:=j+1; 
      i:=i+1 
    end; 
End; { of Solution } 
{--------------------------------------------} 
Procedure OutResult; 
Begin 
  WriteLn('О т в е т :'); 
  Write('Среди элементов, лежащих ниже главной диагонали, '); 
  If Flag then WriteLn('есть отрицательные.') 
          else WriteLn('нет отрицательных.'); 
  ReadLn 
End; { of OutResult } 
{--------------------------------------------} 
BEGIN 
  InputOutput(A); {вызов процедуры ввода-вывода данных } 
  Solution(A); {вызов процедуры поиска решения задачи} 
  OutResult {вызов процедуры вывода результата } 
END.
 
QBasic
CLS : INPUT "Количество строк и столбцов матрицы = ", N
DIM A(N, N)
FOR i = 1 TO N
  FOR j = 1 TO N
    PRINT "A(" ; i ; ", " ; j ; ") = " ;
    INPUT A(i, j)
  NEXT j
NEXT i
CLS : PRINT "Матрица А"
FOR i = 1 TO N
  FOR j = 1 TO N
    PRINT A(i, j);
  NEXT j : PRINT
NEXT i
i = 2 : Flag = 0
WHILE (i < = N) AND (Flag = 0)
  j = 1
  WHILE (j < i ) AND (Flag = 0)
    IF A(i, j) < 0 THEN Flag = 1 ELSE j = j + 1
  WEND
  i = i + 1
WEND
PRINT : PRINT "О т в е т :"
PRINT "Среди элементов матрицы, лежащих ниже главной диагонали, ";
IF Flag = 1 THEN
     PRINT "есть отрицательные."
  ELSE PRINT "нет отрицательных."
END IF
END
 
[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]


Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать