Команда организации цикла
Циклическое выполнение группы команд — очень эффективное средство для сокращения программного кода. Иногда требуется выполнить одну и ту же группу команд несколько раз. Вместо того, чтобы много раз записывать одни и те же команды, можно заставить любой участок программы выполняться многократно. Для этого и служат команды организации цикла.
Допустим, мы хотим создать простейшую программу, предотвращающую ложное срабатывание кнопки. Допустим, нажатая кнопка при считывании дает единицу, отпущенная — ноль. Для повышения надежности мы будем считывать состояние кнопки не один, а несколько раз. Все полученные таким образом числа мы сложим между собой.
Затем мы легко можем определить, каких результатов было больше: нулевых либо единичных. Допустим, что мы будем производить подряд 20 операций чтения-сложения. Теперь, если полученная сумма окажется больше десяти, то кнопку можно считать нажатой. В противном случае она считается отпущенной. Такой алгоритм называется цифровой интегрирующий фильтр.
Операции считывания состояния кнопки и сложения полученных результатов удобно оформить в виде цикла. На рис. 2.3показан ход выполнения подобной программы. Как и на предыдущем рисунке, квадратиками обозначены обычные операторы. Кружком с буквой Ц обозначен оператор цикла.Часть программы, называемая телом цикла, выполняется нужное количество раз. Каждое такое выполнение называется проходом цикла.
Важным элементом оператора цикла служит так называемый параметр цикла.Параметр цикла — это число, которое сначала равно количеству проходов. При каждом новом проходе параметр цикла уменьшается. Обычно параметр цикла записывается в один из рабочих регистров процессора. В нашем случае параметр цикла равен 20. На рисунке показаны несколько команд, которые выполняются до начала цикла. Среди этих команд обязательно должна быть команда, записывающая в соответствующий регистр значение параметра цикла. Затем выполняется тело цикла. В нашем случае тело цикла — это команды считывания состояния клавиши и сложения полученных результатов. После выполнения тела цикла наступает очередь оператора цикла.
Этот оператор выполняет следующие действия:
♦ уменьшает параметр цикла на единицу;
♦ проверяет, не равен ли параметр после уменьшения нулю;
♦ если не равен, то оператор осуществляет переход к началу цикла;
♦ если же параметр равен нулю, переход не производится и выполнение программы продолжается в обычном режиме.
В результате такой оператор вызывает многократное выполнение тела цикла до тех пор, пока содержимое параметра цикла не достигнет нуля. При достижении нуля цикл заканчивается, и программа продолжает выполняться в обычном режиме.
Дата добавления: 2017-10-09; просмотров: 510;