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