- •Кафедра Естественно-научных дисциплин учебно-методическое пособие по программированию
- •Глава 1. Алгоритмы линейной и разветвляющейся структуры
- •Результаты работы Pascal-программы
- •Система тестов
- •Система тестов
- •Система тестов
- •Результаты работы Pascal-программы:
- •Задачи для самостоятельного решения
- •Глава 2. Алгоритмы, реализуемые с помощью циклов типа для
- •Система тестов
- •Исполнение алгоритма
- •Задачи для самостоятельного решения
- •Глава 3. Алгоритмы, реализуемые с помощью вложенных циклов типа для
- •Пример 3.3. В заданной матрице a(n, m) поменять местами строки с номерами p и
- •Задачи для самостоятельного решения
- •Глава 4. Алгоритмы, реализуемые с помощью циклов типа пока
- •Цикл типа пока с прерыванием
- •Цикл типа пока без прерывания
- •Пример 4.1. Определить, является ли заданная последовательность чисел a1, a2, ..., aN монотонно убывающей. Система тестов
- •Система тестов
- •Результаты работы Pascal-программы
- •Система тестов
- •Задачи для самостоятельного решения
- •Глава 5. Алгоритмы, реализуемые с помощью вложенных циклов типа пока
- •Система тестов
- •Система тестов
- •Система тестов
- •Система тестов
- •Блок-схема (фрагмент)
- •Задачи для самостоятельного решения
- •Глава 6. Алгоритмы, реализуемые с помощью комбинации циклов типа для и пока
- •Система тестов
- •Система тестов
- •Исполнение алгоритма
- •Задачи для самостоятельного решения
- •Глава 7. Алгоритмы обработки символьной информации
- •Типы данных, используемые для обработки символьной информации
- •Функции и команды обработки строк
- •Система тестов
- •Исполнение алгоритма
- •Исполнение алгоритма
- •Система тестов
- •Задачи для самостоятельного решения
Глава 2. Алгоритмы, реализуемые с помощью циклов типа для
Циклы типа для применяются, когда число повторений цикла известно к началу его
выполнения.
Язык |
Пример |
Величина шага |
Алгоритмический язык |
нц для i от 1 до N тело цикла кц |
Всегда 1 |
Pascal |
For i := 1 to N do тело цикла; |
1 |
For i := N downto 1 do тело цикла; |
-1 |
|
Basic |
FOR I = 1 TO N STEP H тело цикла NEXT I |
Шаг Н произвольный (по умолчанию равен 1) |
Пример 2.1. Вычислить сумму элементов числового массива A = (a1 , a2 , ... , aN ).
Тест
Данные |
Результат |
|
N=5 |
A=(3, 5, -2, 6, 3) |
S=15.0 |
Алгоритмический язык Исполнение алгоритма
i |
S |
|
0 |
1 |
0 + a1 = 0+3 = 3 |
2 |
a1 + a2 = 3+5 = 8 |
3 |
a1+a2+a3 = 8-2 = 6 |
4 |
a1+a2+a3+a4 = 6+6 = 12 |
5 |
a1+a2+a3+a4+a5 = 12+3=15 |
дано N>0
нач цел i
S:=0
нц для i от 1 до N
S := S + A[i]
кц
кон
Turbo Pascal
Program Summa;
Uses Crt;
Type Mas = Array [1..20] of Real; Блок-схема
Var A : Mas;
i, N : Integer;
S : Real;
BEGIN
ClrScr; {очистка экрана }
Write('Введите N = ');
ReadLn(N); {ввод значения N}
For i := 1 to N dо {цикл по элементам массива}
begin
Write('A [ ', i , ' ] = ');
ReadLn(A[i]) {ввод элементов массива}
end;
S := 0; {присваивание начального значения}
For i := 1 to N do S := S+A[i]; {суммирование}
WriteLn;
WriteLn('Сумма равна ', S : 5 : 1);
ReadLn;
END.
Пример 2.2. Найти наибольший элемент числового массива A = (a1, a2 , ..., aN ) и его
номер.
Тест
Данные |
Результат |
||
N=4 |
A=(3, -1, 10, 1) |
Amax=10 |
K=3 |
Алгоритмический язык
алг МаксЭлемент (арг цел N, арг вещ таб A[1:N], рез вещ Amax, рез цел k)
нач цел i
Amax := A[1]; k := 1
нц для i от 2 до N
если A[i] > Amax
то Amax:=A[i]; k := i
все
кц
кон
Исполнение алгоритма
i 2 3 4 |
A[i] > Amax - + - |
Amax 3 10 |
K 1 3 |
Turbo Pascal Блок-схема
Program MaxElem;
Uses Crt;
Type Mas = Array [1..20] of Real;
Var A : Mas;
i, N : Integer;
k : Integer;
Amax : Real;
BEGIN
СlrScr;
Write('Введите N = ');
ReadLn(N);
For i := 1 to N do {Ввод значений элементов массива А}
begin
Write('A [ ', i, ' ] = '); ReadLn(A[i]);
end;
Amax := A[1]; k:=1; {Поиск максимального элемента}
For i := 2 to N do
If A[i] > Amax then
begin
Amax := A[i]; k := i;
end;
WriteLn; WriteLn('Наибольший элемент' , k , '-й');
WriteLn('Его значение ', Amax : 5 : 1); ReadLn;
END.
Пример 2.3. В баскетбольную команду могут быть приняты ученики, рост которых
превышает 170 см. Составьте список кандидатов в команду из учеников класса.