ТОП 10:

Составление циклических алгоритмов. Операторы цикла с предусловием и с постусловием.



Циклическим является алгоритм, если определенная последовательность шагов выполняется некоторое целое число раз. Рис. 1 иллюстрирует циклические алгоритмы.

Рисунок 1. Циклические алгоритмы: а – цикл с предусловием, б – с постусловием, в – с параметром

У каждого из операторов цикла имеются особенности в их использовании (табл. 1): условные циклы выполняются пока условие истинно, а цикл с параметром работает, пока управляющая переменная цикла (так называемый параметр) не достигнет своего конечного значения. Таблица 1 – Операторы циклов.

Оператор цикла с предусловием while (<выражение>) <оператор>;

Оператор цикла с постусловием do <оператор> while <выражение>;

В языке C++ этот оператор отличается от классической реализации цикла с постусловием тем, что при истинности выражения происходит продолжение работы цикла, а не выход из цикла.

31 Оператор цикла с предусловием и коррекцией for.

Общий вид оператора: for (выражение 1; выражение 2; выражение 3) код цикла;

где выражение 1 – инициализация счетчика (параметр цикла); выражение 2 – условие продолжения счета; выражение 3 – коррекция счетчика. На рис. 7.2, а представлена схема работы цикла for, а на рис. 7.2, б – символ блок-схемы, использующийся для его обозначения.

Инициализация используется для присвоения счетчику (параметру цикла) начального значения.

Выражение 2 определяет условие выполнения цикла. Как и в предыдущих случаях, если его результат не нулевой («истина»), – то цикл выполняется, иначе – происходит выход из цикла. Коррекция выполняется после каждой итерации цикла и служит для изменения параметра цикла. Выражения 1, 2 и 3 могут отсутствовать (пустые выражения), но символы «;» опускать нельзя.

32 Оператор return исп-ся для выхода из функции. Отнесение его к категории операторов перехода обусловлено тем, что он заставляет программу перейти в точку вызова функции. Оператор return может иметь ассоциированное с ним значение, тогда при выполнении данного оператора это значение возвращается в качестве значения функции. В функциях типа void исп-ся оператор return без значения.

Стандарт С89 допускает наличие оператора return без значения, даже если тип функции отличен от void. В этом случае функция возвращает неопределенное значение. Но что касается языков С99 и C++, если тип функции отличен от void, то ее оператор return обязательно должен иметь значение. Конечно, и в программе на С89 отсутствие возвращаемого значения в функции, тип которой отличен от void, является признаком плохого стиля!

Оператор goto.Кроме goto, в языке С есть другие операторы управления (например break, continue), поэтому необходимости в применении goto практически нет. В результате чрезмерного использования операторов goto программа плохо читается, она становится "похожей на спагетти". Чаще всего такими программами недовольна администрация фирм, производящих программный продукт. То есть оператор goto весьма непопулярен, более того, считается, что в программировании не существует ситуаций, в которых нельзя обойтись без оператора goto. Но в некоторых случаях его применение все же уместно. Иногда, при умелом исп-нии, goto может оказаться весьма полезным, напр, если нужно покинуть глубоко вложенные циклы. Для оператора goto всегда необходима метка. Метка — это идентификатор с последующим двоеточием. Метка должна находится в той же функции, что и goto, переход в другую функцию невозможен.

Оператор break применяется в двух случаях. Во-первых, в операторе switch с его помощью прерывается выполнение последовательности case (см. раздел "Оператор выбора — switch" ранее в этой главе). В этом случае оператор break не передает управление за пределы блока. Во-вторых, оператор break используется для немедленного прекращения выполнения цикла без проверки его условия, в этом случае оператор break передает управление оператору, следующему после оператора цикла. Когда внутри цикла встречается оператор break, выполнение цикла безусловно (т.е. без проверки каких-либо условий.) прекращается и управление передается оператору, следующему за ним.

Оператор continue.Можно сказать, что оператор continue немного похож на break. Оператор break вызывает прерывание цикла, a continue — прерывание текущей итерации цикла и осуществляет переход к следующей итерации. При этом все операторы до конца тела цикла пропускаются. В цикле for оператор continue вызывает выполнение операторов приращения и проверки условия цикла. В циклах while и do-while оператор continue передает управление операторам проверки условий цикла.

33 Побитовые логическ операции, операции над битами.В противоположность большинству языков, С поддерживает все существующ битовые операторы. Поскольку С создавался, чтоб заменить ассемблер, то была необходимость поддержки всех (или по крайн мере больш) операции, кот может выполнить ассемблер. Битовые операции — это тестирование, установка или сдвиг битов в байте или слове, которые соответствуют стандартным типам языка С char и int. Битовые операторы не могут использоваться с float, double, long double, void и другими сложными типами. & И | ИЛИ ^ Исключающее ИЛИ ~ Дополнение >> Сдвиг вправо << Сдвиг влево







Последнее изменение этой страницы: 2016-08-14; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.235.30.155 (0.007 с.)