- •Кафедра Естественно-научных дисциплин учебно-методическое пособие по программированию
- •Глава 1. Алгоритмы линейной и разветвляющейся структуры
- •Результаты работы Pascal-программы
- •Система тестов
- •Система тестов
- •Система тестов
- •Результаты работы Pascal-программы:
- •Задачи для самостоятельного решения
- •Глава 2. Алгоритмы, реализуемые с помощью циклов типа для
- •Система тестов
- •Исполнение алгоритма
- •Задачи для самостоятельного решения
- •Глава 3. Алгоритмы, реализуемые с помощью вложенных циклов типа для
- •Пример 3.3. В заданной матрице a(n, m) поменять местами строки с номерами p и
- •Задачи для самостоятельного решения
- •Глава 4. Алгоритмы, реализуемые с помощью циклов типа пока
- •Цикл типа пока с прерыванием
- •Цикл типа пока без прерывания
- •Пример 4.1. Определить, является ли заданная последовательность чисел a1, a2, ..., aN монотонно убывающей. Система тестов
- •Система тестов
- •Результаты работы Pascal-программы
- •Система тестов
- •Задачи для самостоятельного решения
- •Глава 5. Алгоритмы, реализуемые с помощью вложенных циклов типа пока
- •Система тестов
- •Система тестов
- •Система тестов
- •Система тестов
- •Блок-схема (фрагмент)
- •Задачи для самостоятельного решения
- •Глава 6. Алгоритмы, реализуемые с помощью комбинации циклов типа для и пока
- •Система тестов
- •Система тестов
- •Исполнение алгоритма
- •Задачи для самостоятельного решения
- •Глава 7. Алгоритмы обработки символьной информации
- •Типы данных, используемые для обработки символьной информации
- •Функции и команды обработки строк
- •Система тестов
- •Исполнение алгоритма
- •Исполнение алгоритма
- •Система тестов
- •Задачи для самостоятельного решения
Система тестов
Номер теста |
Проверяемый Случай |
Данные |
Результат |
|
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. Выяснить, есть ли в баскетбольных командах "Спартак" и "Зенит"
игроки одинакового роста.