Операторы цикла: с параметром, с предусловием, с постусловием
Для реализации циклических процессов используют операторы циклов. В теории программирования выделяют несколько основных видов циклов:
- цикм-пока;
- цикл-до;
- счетный цикл.
В Borland Pascal реализованы все три укачанных вида циклов. Цикл-пока и цикл-до используют для реализации итерационных циклических процессов. Счетный цикл - для реализации циклических процессов с заданным количеством повторений. Для реализации циклических процессов поискового типа используют циклы-пока или циклы-до со сложными условиями или неструктурные передачи управления.
Цикл-пока. Синтаксическая диаграмма оператора «цикл-пока» приведена на рис. 6. Условие представляет собой логическое выражение. Оператор тела цикла повторяется, пока условие истинно, условие проверяется на входе. Если при входе в цикл условие не выполняется, то оператор тела цикла игнорируется.
Если в тело цикла необходимо поместить несколько операторов, то используют составной оператор.
Рис. 6 Структура цикла-пока
Цикл-до. Операторы тела цикла повторяются до выполнения условия, условие проверяется на выходе, т.е. тело цикла всегда выполняется хотя бы один раз. Синтаксическая диаграмма оператора «цикл-до» приведена на рис. 7. В тело цикла можно поместить несколько операторов, разделив их точкой с запятй «;».
Рис. 7 Структура цикла-до
Счетный цикл. Цикл выполняется, пока переменная (параметр) цикла принимает значения в заданном диапазоне с определенным шагом. Синтаксическая диаграмма оператора приведена на рис. 8.
Рис. 9. Структура счетного цикла
Переменная чикладолжна иметь порядковый тип. Выражение 1 определяет начальное значение параметра цикла, выражение 2 - конечное значение параметра цикла. Соответственно начальное и конечное значения должны принадлежать к тому же типу, что и параметр цикла. Если используется служебное слово to, то при каждом выполнении цикла переменной цикла присваивается следующее значение порядкового типа переменной. Если используется служебное слово downto, то при каждом выполнении цикла переменной цикла присваивается предыдущее значение порядкового типа переменной. Если диапазон значений переменной цикла пуст, то цикл не выполняется.
Примечание. По сравнению с теоретическим представлением счетный цикл, реализованный в Borland Pascal, является менее мощным оператором, так как шаг данной конструкции ограничен только +1 и -1.
Оператор перехода
С точки зрения теории программирования неструктурные оператор и процедуры передачи управления являются «лишними», так как любой алгоритм может быть преобразован в структурный и реализован без них. Однако интуитивно построенные алгоритмы, как это видно на предыдущих примерах, часто получаются неструктурными, и для их реализации может потребоваться использование неструктурных вариантов передач управления. Проанализируем достоинства и недостатки реализации неструктурных алгоритмов.
Для организации неструктурных передач управления используют оператор безусловной передачи управления goto и специальные процедуры.
Оператор безусловной передачи управления. Этот оператор передавет управление в точку, определенную специальной меткой.
Все метки в программе должны быть описаны инструкцией объявления меток label. Метка ставится перед любым выполняемым оператором программы, причем на один оператор можно поставить несколько меток.
label 1b1, 1b2;
GOTO <метка>;
Неструктурную передачу управления также осуществляют следующие процедуры:
Break - реализует выход из цикла любого типа;
Continue - осуществляет переход на следующую итерацию цикла. игнорируя оставшиеся до конца тела цикла операторы;
Halt (<код завершения>) - осуществляет выход из программы, возвращая операционной системе заданный код завершения. Считается, что программа завершилась нормально, если код завершения равен нулю. Возвращение кода завершения, отличного от нуля, обычно означает, что программа завершена по обнаружении каких-либо ошибок. Коды завершения назначаются программистом, а информация о них помещается в программную документацию;
Exit - осуществляет выход из подпрограммы. Если процедура использована в основной программе, то она выполняется аналогично Halt.
Чаще всего проблема разработки структурного варианта алгоритма возникает при работе с поисковыми циклами. В таких циклах просматривают некоторые последовательности элементов, пока не будет обнаружен элемент с заданными характеристиками. Отличительной особенностью поискового цикла является то, что элемент с заданными характеристиками в последовательности может отсутствовать, следовательно, необходимо предусмотреть два варианта выхода из цикла: досрочный, когда нужный элемент найден, и обычный - по завершении просмотра всех вариантов.
Дата добавления: 2015-12-01; просмотров: 1332;