Пример 5.2. Дана целочисленная матрица A(N, N). Определить, имеются ли среди её
Элементов, лежащих ниже главной диагонали, отрицательные числа.
Система тестов
Номер
теста
| Проверяемый
Случай
| Данные
| Результат
| N
| Массив А
| Otvet
|
| Имеются
|
| 1 -1 2 1
2 3 1 0
1 -1 2 -1
-2 1 0 1
| ''Есть отрицательные
числа''
|
| Не имеются
|
| 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:= "Нет отрицательных ниже диагонали"
Все
Кон
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.
Пример 5.3. Выяснить, есть ли в баскетбольных командах "Спартак" и "Зенит"
Не нашли, что искали? Воспользуйтесь поиском:
|