ЦИКЛИЧЕСКИЙ
АЛГОРИТМ
Определение:
Циклом называется такая форма организации действий, при которой одна и та же последовательность действий совершается несколько раз (или ни разу ) до тех пор, пока выполняется некоторое условие.
«Сначала проверь, потом делай».
КОМАНДА « Пока».
Алг. язык
Блок-схема
Pascal
Пока условие
WHILE условие DO
BEGIN
Команды цикла
END;
Пока
НЦ
Условие
нет
да
Команды цикла
Серия команд
КЦ
Алгоритм работы.
Исполнитель сначала проверяет, условие, если условие выполнено, то выполняются команды цикла. Команды цикла должны заканчиваться признаком конца цикла. Встречая команду «конец цикла»
Машина возвращается на проверку условия. Если условие не выполнено,
то машина переходит на выполнение команды, записанной после «конец» цикла.
Если условие не выполнимо , то команды цикла не будут выполнятся ни разу.
Если условие всегда выполнимо , то произойдёт зацикливание.
CTRL+BREAK прерывание программы на ЭВМ
«Сначала сделай, потом проверь».
КОМАНДА « Повторять».
Блок-схема
Pascal
Алг. язык
PEREAT
Повторять
Команды цикла
Команда 1;
Команда 2;
Команда 3;
………………… .
Команда N;
UNTIL условие выхода из цикла;
Команды цикла
Условия
До условие
нет
ДО
да
Алгоритм работы.
Исполнитель выполняет команды цикла.
В конце цикла проверяется условие. Если условие выполнено, то исполнитель переходит к следующей команде.
Если условие не выполнено, то исполнитель возвращается на выполнение команд цикла
ПРИМЕЧАНИЕ .
1.Команды цикла в команде «ДО» выполняется , по крайне мере,
Один раз, так как оценка условия делается после команд цикла
В тоже время в цикле «пока» тело цикле может пропускаться ,
если условие ложно уже в начале .
2.В команде «пока» пишется условие вхождения «ДО» условие выхода из цикла.
«Делай ровно сколько , сколько задано»
КОМАНДА « Для».
Блок-схема
Алг. язык
Pascal
For I:=N to M do
Begin
Команда 1;
Команда 2;
…………………
Команда N;
END;
Для I:=N до M
нет
I=n,….,m
НЦ
да
Серия команд
Команды цикла
КЦ
Алгоритм работы.
Переменная I является счетчиком и называемая индексом , принимает значение N. Затем исполнитель проверяет условие I
Можно уменьшать переменную индекс, если заменить ключевое слово ТО на DOWNTO.
Запишите значение переменной s, полученное в результате работы следующей программы.
Задание 1.
uses crt;
Var s,k: integer;
Begin
Clrscr;
s := 45;
for k := 3 to 7 do
s := s + 6;
writeln(s);
End.
Показать пояснение
Пояснение.
Цикл «for k:= 3 to 7 do» выполняется пять раз. Каждый раз переменная s увеличивается на 6. Поскольку изначально s = 0, после выполнения программы получим: s = 45+ 5 · 6 = 75
Задание 2. Написать программу которая выведет сумму четырех чисел равных 7 (циклические переменные изменяются от 4 до 7 )
uses crt;
Var s,k: integer;
Begin
Clrscr;
s := 0;
for k := 4 to 7 do
s := s + 7;
writeln(s);
End.
Показать пояснение
Пояснение.
Цикл «for k := 4 to 8 do» выполняется пять раз. Каждый раз переменная s увеличивается на 7. Поскольку изначально s = 0, после выполнения программы получим: s = 7 · 4 = 28.
Задание 3. Запишите значение переменной s, полученное в результате работы следующей программы.
uses crt;
Var s,k: integer;
Begin
Clrscr;
s :=120;
for k := 4 to 11 do
s := s - 8;
writeln(s);
End.
Показать пояснение
Пояснение.
Цикл «for k := 4 to 7 do» выполняется четыре раза. Каждый раз переменная s увеличивается на 8. Поскольку изначально s = 120, после выполнения программы получим: s =120- 8 · 8 = 56.
Задание 4. Написать программу которая выведет сумму восьми семёрок (циклические переменные изменяются от 3 до 10 )
uses crt;
Var s,k: integer;
Begin
Clrscr;
s := 0;
for k := 3 to 10 do
s := s + 9;
writeln(s);
End.
Показать пояснение
Пояснение.
Цикл «for k := 3 to 10 do» выполняется шесть раз. Каждый раз переменная s увеличивается на 9. Поскольку изначально s = 0, после выполнения программы получим: s = 9 · 8 = 72.
Задание 5. Запишите значение переменной s, полученное в результате работы следующей программы
uses crt;
Var s,k: integer;
Begin
Clrscr;
s := 100;
for k := 3 to 8 do
s := s - 7;
writeln(s);
End.
Показать пояснение
Пояснение.
Цикл «for k := 3 to 8 do» выполняется шесть раз. Каждый раз переменная s уменьшается на 7. Поскольку изначально s = 100, после выполнения программы получим: s =100-7 · 6 = 58.
Задание 6. Написать программу которая выведет сумму семи чисел арифметической прогрессии первый член которой равен нулю, а разность 6 (циклические переменные изменяются от 3 до 9 )
uses crt;
Var s,k: integer;
Begin
Clrscr;
s := 50;
for k := 3 to 9 do
s := s + 6;
writeln(s);
End.
Показать пояснение
Пояснение.
Цикл «for k := 3 to 9 do» выполняется семь раз. Каждый раз переменная s увеличивается на 6. Поскольку изначально s = 50, после выполнения программы получим: s = 50+6 · 7 = 92.