TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

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

Странности

FAQ

Ссылки

Форум

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

Рассылка

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

Об авторе

 

 

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

Пример 4.3. Определить, имеется ли среди элементов главной диагонали заданной целочисленной матрицы A(N, N) хотя бы один положительный нечётный элемент.  
Система тестов
 
Номер теста Проверяемый случай Данные Результат
N Матрица А Текст
1 Имеется 3 "Есть такие"
2 Не имеется 2 "Нет таких"
 
Демонстрация
Школьный АЯ
алг Диагональ (арг цел N, арг цел таб А[1:N, 1:N], рез лит Teкст)
нач цел i, лит Flag
  i:=1; Flag:="Нет"
  нц пока (i<=N) и (Flag="Нет")   | условие продолжения цикла
    если (A[i, i]>0) и (mod(A[i, i], 2)=1) | условие завершения цикла
      то Flag := "Да"
      иначе i:=i+1
    все
  кц 
  если Flag = "Да"
    то Текст := "Есть такие"
    иначе Текст := "Нет таких"
  все
кон
Исполнение алгоритма 

Обозначения проверяемых условий: 
(i <= N) и (Flag = "Нет")  => (1) 
(A[i, i] > 0) и (mod(A[i, i], 2) = 1)  => (2) 
N теста
i
Flag
(1)
(2)
Текст
1
1
2
"Нет"
"Да"
+
+
-(кц)
-
+
"Есть такие"
2
1
2
3
"Нет"
+
+
-(кц)
-
-
"Нет таких"
 

  Блок-схема (фрагмент) 
Turbo Pascal
Program Diagonal;
  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(’Количество строк и столбцов – ’); Read(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); {описание процедуры поиска решения}
  Var Flag : Boolean;
 Begin
   Flag:=FALSE; i:=1;
   While (i<=N) and not Flag do
     If (A[i, i]>0) and (A[i, i] mod 2 = 1)
        then Flag:=TRUE
        else i:=i+1;
   WriteLn(’О т в е т :’);
   Write(’Среди элементов главной диагонали ’);
   If Flag then WriteLn (’есть нечетные положительные.’)
           else WriteLn(’нет нечетных положительных.’);
   ReadLn;
  End;     { of Solution }
{------------------------------------}
BEGIN
  InputOutput(A); {вызов процедуры ввода-вывода данных}
  Solution(A);    {вызов процедуры поиска решения задачи}
END.
 

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

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

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

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

Hosted by uCoz