Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
задачник по программированию.doc
Скачиваний:
25
Добавлен:
03.11.2018
Размер:
1.94 Mб
Скачать

Система тестов

Номер

теста

Проверяемый

Случай

Данные

Результат

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:="Нет отрицательных ниже диагонали"

все

кон

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. Выяснить, есть ли в баскетбольных командах "Спартак" и "Зенит"

игроки одинакового роста.