Алгоритм циклической структуры – это алгоритм, в котором предусмотрено неоднократное выполнение одной и той же последовательности действий. На практике часто встречаются задачи, в которых одно или несколько действий бывает необходимо повторить несколько раз.
Многократное повторение последовательности действий называется циклом, а многократно повторяющиеся действия – телом цикла.
Изучение циклов демонстрирует учащимся главное преимущество компьютера перед человеком – выполнение большого числа действий за короткое время. Ведь даже весьма короткий циклический алгоритм, составить который не так уж долго, при исполнении может потребовать выполнения нескольких сотен действий, с которыми компьютер справится намного быстрее, чем человек.
Учащиеся должны уметь организовать цикл и верно определить тело цикла. Более того, при конструировании алгоритмов важно использовать такую конструкцию цикла, которая окажется оптимальной для решения поставленной задачи.
Существует три формы циклов: цикл с параметром, цикл с предусловием, цикл с постусловием. Каждая форма имеет стандартное описание на языке схем, а также соответствующий оператор алгоритмического языка.
Рисунок 1.
а), б) – циклическая структура “Для каждого”
в) – циклическая структура “Пока”
г) – циклическая структура “До”
I – счетчик числа повторов, C – приращение счетчика, A – начальное значение счетчика, B – конечное значение счетчика, P – тело цикла.
1. Цикл “Для каждого” можно записать в следующем виде:
Для каждого I от A до B с шагом С:
P
Конец цикла по I
I – счетчик числа повторов, C – приращение счетчика, A – начальное значение счетчика, B – конечное значение счетчика, P – тело цикла.
Турбо-Бейсик |
Турбо-Паскаль |
FOR I=A TO B [ STEP C ] | FOR I:=A {TO | DOWENTO} B DO |
P | P; |
NEXT I |
2. Цикл “Пока” можно записать так:
Пока Q повторять:
P
Конец цикла
Q – условие. ЭВМ будет выполнять P до тех пор, пока условие Q истинно.
Турбо-Бейсик |
Турбо-Паскаль |
WHILE <Q> | WHILE <Q> DO |
P | P; |
WEND |
3. Цикл “До” записывается следующим образом:
Повторять:
P
До выполнения Q
Конец цикла
Турбо-Бейсик |
Турбо-Паскаль |
DO | REPEAT |
P | P; |
LOOP UNTIL Q | INTIL <Q>; |
Тело цикла P выполняется до тех пор, пока условие Q ложно.
Одним из самых распространенных в практике вычислений алгоритмом циклической структуры является алгоритм вычислений некоторой функции y=f(x) для значений x, которые меняются от начального значения x0 до конечного xk с шагом h.
Исходными данными алгоритма являются значения: x0, xk, h. Необходимо вычисления по формуле y=f(x) повторять (xk-x0)/h+1 раз, т. е. при построении алгоритма организовать цикл. Параметром цикла выберем переменную x.
Схема алгоритма решения этой задачи на рис. 2. В схеме блок 3 присваивает начальное значение параметру цикла x, блок 6 осуществляет изменение на h параметра x при каждом выполнении цикла, блок 7 управляет циклом, для чего проверяется условие повторения цикла x<=xk. При выполнении этого условия (да) управление передается на начало цикла, а при невыполнении – осуществляется выход из цикла, т.е. переход к следующему по порядку блоку.
Рисунок 2.
На собственном опыте я убедилась, что учащиеся быстрее усваивают материал, выполняя практические работы, которые ценны своей наглядностью, за персональным компьютером. Поэтому рекомендую изучение циклических структур проводить на задачах с применением графических команд.
Работа начинается с составления и описания простых алгоритмов: "Растущая елочка", "Лес", а затем постепенно задачи усложняются, и учащиеся моделируют движение пузырьков в воде, мигающий светофор, движение падающего и прыгающего мячиков и т.д. Работая по такой схеме, учащиеся несомненно обретают опыт в общении с вычислительной техникой, в разработке оптимальных алгоритмов с использованием циклических структур и их описании, ощущают необходимость составления блок-схем, которые наглядно представляют и структуру алгоритма, и процесс его исполнения.
Задача:
С помощью операторов алгоритмического языка Турбо-Бейсик нарисовать на экране монитора картинку «Лес».
Рисунок 3.
а - модель елки:
высота – 25 пикселей; длина ветки – 5 пикселей;
количество елок в лесу –20; расстояние между елками – 5 пикселей.
Внимательно рассмотрев елку, определяем многократно повторяющийся (5 раз) ее фрагмент (см. Рис.3б).
Определим последовательность действий для вычерчивания елок на экране:
Рисунок 4.
При разработке алгоритма применим вложенность циклов:
- внешний – по количеству елок;
- внутренний – вычерчивание одной елочки.
SCREEN 7: CLS
FOR I=1 TO 20 I – счетчик кол-ва елок;
FOR J=1 TO 5 J – кол-во пар веточек у елки.
DRAW”C2 U5 NG5 NF5”
NEXT J
DRAW”D25 BR15”
NEXT I
END
Для повышения активности и внимательности учащимся предлагается устанавливать свои размеры елочек и общее количество елок в лесу.
Блок-схема алгоритма:
Рисунок 5.