Алгоритмы, реализуемые с помощью циклов типа ДЛЯ
Циклы типа для применяются, когда число повторений цикла известно= к началу его выполнения. Язык
| Пример
| Величина шага
|
Школьный АЯ
| нц дляi от1доN тело цикла кц
| Всегда 1
|
Pascal
| For i:= 1 to N do тело цикла;
|
|
For i:= N downto 1 do тело цикла;
| -1
|
Basic
| FOR I = 1 TON STEP H тело цикла NEXTI
| Шаг Н произвольный
(по умолчанию равен 1)
|
Пример 2.1. Вычислить сумму элементов числового массива A = (a1 , a2,..., aN ) .
Тест
Данные
| Результат
|
N=5
| A=(3, 5, -2, 6, 3)
| S=15.0
|
| | |
Демонстрация
Начало формы
Конец формы
Школьный АЯ
алг Сумма (арг цел N, арг вещ
таб A[1:N], рез вещ S)
даноN>0
нач цел i
S:=0
нц для i от 1 до N
S:= S + A[i]
кц
кон
| Исполнение алгоритма
i
| S
|
|
|
| 0 + a1 = 0+3 = 5
|
| a1 + a2 = 3+5 = 8
|
| a1+a2+a3 = 8-2 = 6
|
| a1+a2+a3+a4 = 6+6 = 12
|
| a1+a2+a3+a4+a5 = 12+3=15
|
|
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.
| Блок-схема
|
Результаты работы Pascal-программы Введите N = 5 <Enter> A[1] = 3 <Enter> A[2] = 5 <Enter> A[3] = -2 <Enter> A[4] = 6 <Enter> A[5] = 3 <Enter>
Сумма равна 15.0
|
| |
| | | | |
Пример 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
| A[i] > Amax
| Amax
| k
|
| -
+
-
|
|
|
| Блок-схема
|
Turbo Pascal
Program MaxElem;