Операторы циклов – язык программирования Си

May 8, 2014 by admin Комментировать »

Когда в Си-программе нет ни одного цикла, то говорят, что она однократного действия. Почему? Потому что без циклов нельзя организовать обратную связь и многократное выполнение процедур. Как только операторы, имеющиеся в «однократной» микроконтроллерной программе, выполнят свои действия, то работа заканчивается и MK перестаёт реагировать на внешние воздействия.

Если быть абсолютно точным, то затормозить MK можно двумя способами. Во-первых, ввести его программно в спящий режим с пониженным энергопотреблением. Во-вторых, заставить MK в цикле выполнять какую-либо пустую команду. Именно второй способ использует компилятор AVR-GCC, автоматически зацикливая «однократные» программы. Следовательно, и тут без циклов не обойтись.

Основная задача операторов циклов заключается в выполнение одной или нескольких команд до тех пор, пока соблюдается определённое условие. Такие операторы имеются во всех алгоритмических языках высокого уровня и их синтаксис удивительным образом совпадает друг с другом.

Оператор «while» (в переводе с англ. «до тех пор, пока»).

На Рис. 6.23, а показана схема алгоритма, а на Рис. 6.23, б, в — две формы записи оператора «while». Он применяется, как основной, практически во всех программах, где необходимо организовать цикл. А делать это приходится часто, поскольку специфика программ с MK заключается в том, что большой процент времени отводится на циклический опрос линий портов (датчиков, кнопок, сигналов) и внутренних программных регистров.

Рис. 6.23. Оператор «while»: а) схема алгоритма; б) простая форма; в) составная форма.

Оператор «while» по синтаксису очень похож на оператор «if», включая условие проверки, которое строится по точно таким же правилам. Различие заключается в количестве циклов, а именно, оператор «if» выполняется один раз, а оператор «while» — многократно, до тех пор, пока условие проверки будет истинным. Например, в записи «while (1)» цифра «1» согласно канонам языка Си является «истиной» («0» — ложь), поэтому цикл будет выполняться бесконечное число раз.

Оператор «do-while» (в переводе с англ. «делать до тех пор, пока»).

Схема алгоритма оператора «do-while» показана на Рис. 6.24, а. Этот оператор дополняет и расширяет возможности организации циклов и имеет две формы записи: простую и составную (Рис. 6.24, б, в).

Рис. 6.24. Оператор «do-while»: а) схема алгоритма; б) простая форма; в) составная форма.

Начинается процедура с выполнения оператора «1» или операторов «l»…«N» в составной форме. По завершению анализируется условие проверки. Если результат «истина», то происходит возврат к началу строки «do» (поднятие «вверх на лифте») и повторение цикла. Если результат «ложь», то цикл «do-while» завершается и управление передаётся к нижеследующей строке программы.

Главное отличие оператора «do-while» от оператора «while» заключается в том, что тело цикла «do-while» в любом случае выполняется хотя бы один раз. В операторе «while» такой поворот событий не обязателен, например, если проверяемое условие ложно, то выход из цикла происходит сразу же без выполнения какиибо действий. Хорошо это или плохо, зависит от конкретной программы. Но все-же многие программисты опасаются применять оператор «do-while», считая, что лучше внимательно рассмотреть место, куда собираешься прыгать, до прыжка, а не после…

Оператор «for» (в переводе с англ. «для, в течение»).

Как известно, при организации любых программных циклов выполняются три стандартные операции:

•                 инициализация счётчика (занесение в переменную начального значения);

•                 сравнение числа, хранящегося в счётчике, с граничной величиной;

•                 увеличение/уменьшение счётчика при каждом проходе цикла.

В операторе «for» все три перечисленных действия собраны воедино, поэтому он визуально получается довольно компактным (Рис. 6.25, а).

Существуютдве формы записи оператора «for» (Рис. 6.25, б, в), причём допускаются многократно вложенные циклы «for-for-for…».

Рис. 6.25. Оператор «for»: а) схема алгоритма; б) простая форма; в) составная форма.

В круглых скобках после слова «for» содержатся три выражения, разделённые символом «точка с запятой». Первое из них «Начало» выполняется единожды в самом начале цикла. Обычно это оператор присваивания исходного значения счётчика циклов. Второе выражение «Условие» — это и есть главное условие проверки, имеющее синтаксис, аналогичный операторам «if» и «while». При выполнении условия цикл сразу завершается и управление передаётся вниз за пределы фигурных скобок. Третье выражение «Действие», как правило, содержит оператор увеличения/уменьшения счётчика и выполняется в конце каждой итерации.

Источник: Рюмик, С. М., 1000 и одна микроконтроллерная схема. Вып. 2 / С. М. Рюмик. — М.:ЛР Додэка-ХХ1, 2011. — 400 с.: ил. + CD. — (Серия «Программируемые системы»).

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты