- •Кафедра Естественно-научных дисциплин учебно-методическое пособие по программированию
- •Глава 1. Алгоритмы линейной и разветвляющейся структуры
- •Результаты работы Pascal-программы
- •Система тестов
- •Система тестов
- •Система тестов
- •Результаты работы Pascal-программы:
- •Задачи для самостоятельного решения
- •Глава 2. Алгоритмы, реализуемые с помощью циклов типа для
- •Система тестов
- •Исполнение алгоритма
- •Задачи для самостоятельного решения
- •Глава 3. Алгоритмы, реализуемые с помощью вложенных циклов типа для
- •Пример 3.3. В заданной матрице a(n, m) поменять местами строки с номерами p и
- •Задачи для самостоятельного решения
- •Глава 4. Алгоритмы, реализуемые с помощью циклов типа пока
- •Цикл типа пока с прерыванием
- •Цикл типа пока без прерывания
- •Пример 4.1. Определить, является ли заданная последовательность чисел a1, a2, ..., aN монотонно убывающей. Система тестов
- •Система тестов
- •Результаты работы Pascal-программы
- •Система тестов
- •Задачи для самостоятельного решения
- •Глава 5. Алгоритмы, реализуемые с помощью вложенных циклов типа пока
- •Система тестов
- •Система тестов
- •Система тестов
- •Система тестов
- •Блок-схема (фрагмент)
- •Задачи для самостоятельного решения
- •Глава 6. Алгоритмы, реализуемые с помощью комбинации циклов типа для и пока
- •Система тестов
- •Система тестов
- •Исполнение алгоритма
- •Задачи для самостоятельного решения
- •Глава 7. Алгоритмы обработки символьной информации
- •Типы данных, используемые для обработки символьной информации
- •Функции и команды обработки строк
- •Система тестов
- •Исполнение алгоритма
- •Исполнение алгоритма
- •Система тестов
- •Задачи для самостоятельного решения
Система тестов
Номер Теста |
Проверяемый случай |
Данные |
Результат |
|||
K |
N |
M |
Матрица А |
Otvet |
||
1 |
Встречается |
5 |
3 |
3 |
''Встречается'' |
|
2 |
Не встречается |
1 |
2 |
2 |
''Не встречается'' |
Алгоритмический язык
алг Да или Нет(арг цел N,M,K, арг цел таб A[1:N, 1:M], рез лит Otvet)
дано | N, M >0
нач цел i, j, JMax, лит Flag
Flag:="Нет"; j:=1
нц пока (j<=M) и (Flag="Нет") | цикл по столбцам с прерыванием
JMax:=A[1,j]
нц для i от 2 до N | цикл нахождения JMax
если A[i,j]>JMax
то JMax:=A[i, j]
все
кц
если K=JMax | условие прерывания цикла
то Flag:="Да"
иначе j:=j+1
все
кц
если Flag="Да"
то Otvet := "Встречается"
иначе Otvet := "Не встречается"
все
кон
Исполнение алгоритма Блок-схема (фрагмент)
Обозначение проверяемого условия:
(j<=M) и (Flag = "Нет" ) => (1)
Turbo Pascal
Program Checking;
Uses Crt;
Var A : Array[1..10, 1..10] of Integer;
N, M, i, j : Integer;
K : Integer; {заданное число}
JMax : Integer; {максимальный элемент столбца}
Flag : Boolean;
{---------------------------------------------------}
Procedure InputOutput; {описание процедуры ввода-вывода}
Begin ClrScr;
Write('Введите целое K = '); ReadLn(K); WriteLn;
WriteLn('Введите целочисленную матрицу А');
Write('Количество строк - '); ReadLn(N);
Write('Количество столбцов - '); ReadLn(M);
For i := 1 to N do
For j := 1 to M do
begin Write('A[' , i , ', ' , j , '] = ');
ReadLn(A[i, j]);
end; ClrScr;
WriteLn('Исходная матрица :'); WriteLn;
For i := 1 to N do
begin
For j := 1 to M do Write(A[i, j] : 4);
WriteLn;
end; WriteLn;
End; { of InputOutput }
{--------------------------------------------}
Procedure YesOrNot(Var Flag:Boolean); {описание процедуры решения задачи}
Begin
Flag:=FALSE; j:=1;
While (j<=M) and not Flag do {цикл по столбцам с прерыванием}
begin JMax:=A[1, j];
For i := 2 to N do {цикл нахождения JMax}
If A[i, j]>JMax then JMax:=A[i, j];
If K=JMax then Flag:=TRUE else j:=j+1; {условие прерывания}
end;
End;
{--------------------------------------------}
BEGIN
InputOutput; {вызов процедуры ввода-вывода исходных данных}
YesOrNot(Flag); {вызов процедуры решения задачи}
Write('О т в е т : число ', K );
If Flag then Write(' встречается')
else Write(' не встречается');
WriteLn(' среди максимальных элементов столбцов матрицы');
ReadLn;
END.
Пример 6.3. Проверить, является ли заданная целочисленная матрица A(N, N)
"магическим квадратом" (это значит, что суммы чисел во всех её строках, всех
столбцах и двух диагоналях одинаковы).