Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






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




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

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

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

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

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

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

Общий вид оператора:

for (выражение 1; выражение 2; выражение 3) код цикла;

Цикл for эквивалентен последовательности инструкций:

выражение 1;

while (выражение 2)

{

код цикла...

выражение 3;

}

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

Операция «запятая» чаще всего используется в операторе for. Она позволяет включать в его спецификацию несколько инициализирующих выражений. Первое выражение необязательно должно инициализировать переменную. Необходимо только помнить, что первое выражение вычисляется только один раз перед тем, как остальные части начнут выполняться.

for (printf (" Вводите числа по порядку! \n"); num!= 6;)

scanf ("%d", &num);

printf (" Последнее число - это то, что нужно. \n"); В этом фрагменте первое сообщение выводится на печать один раз, а затем осуществляется прием вводимых чисел, пока не поступит число 6.

Параметры, входящие в выражения, находящиеся в спецификации цикла, можно изменять при выполнении операций в коде цикла, например:

for (n = 1; n < Nk; n += delta)...; параметры Nk, delta можно менять в процессе выполнения цикла.

Использование условных выражений позволяет во многих случаях значительно упростить программу.

32 Оператор безусловного перехода goto

В языке Си предусмотрен оператор goto, хотя в большинстве случаев можно обойтись без него. Общий вид оператора goto метка; Он предназначен для передачи управления на оператор, помеченный меткой. Метка представляет собой идентификатор, оформленный по всем правилам идентификации переменных с символом «двоеточие» после него, например, пустой помеченный оператор: m1:; Область действия метки - функция, где эта метка определена. Программа с goto может быть написана без него за счет повторения

некоторых проверок и введения дополнительных переменных. Наиболее характерный случай использования оператора goto - выполнение прерывания (выхода) во вложенной структуре при возникновении грубых неисправимых ошибок во входных данных. И в этом случае необходимо выйти из двух (или более) циклов, где нельзя использовать непосредственно оператор break, т.к. он прерывает только самый внутренний цикл:

for (...)

for (...) {...

if (ошибка) goto Е rror;

}

...

Еrror: - операторы для устранения ошибки;

Если программа обработки ошибок сложная, а ошибки могут возникать в нескольких местах, то такая организация оказывается удобной.

Оператор continue

Этот оператор может использоваться во всех типах циклов, но не в операторах switch. Наличие оператора continue вызывает пропуск "оставшейся" части итерации и переход к началу следующей, т.е. досрочное за-

вершение текущего шага и переход к следующему шагу. В циклах while и do это означает непосредственный переход к проверочной части. В цикле for управление передается на шаг коррекции, т.е.

модификации выражения 3. Фрагмент программы обработки только положительных элементов

массива a, отрицательные значения пропускаются:

for (i = 0; i<n; i++) {

if(a[i]<0) continue;

обработка положительных элементов;

}

Оператор break

Оператор break производит экстренный выход из самого внутреннего цикла или оператора switch, к которому он принадлежит, и передает управление первому оператору, следующему за текущим оператором.

Оператор return

Оператор return; производит досрочный выход из текущей функции. Он также возвращает значение результата функции: return выражение; В функциях, не возвращающих результат, он неявно присутствует

после последнего оператора. Значение выражения при необходимости преобразуется к типу возвращаемого функцией значения.

33 Побитовые логические операции, операции над битами

В Си предусмотрен набор операций для работы с отдельными битами. Эти операции нельзя применять к переменным вещественного типа.

Операции над битами и их обозначения:

~ - дополнение (унарная операция); инвертирование (одноместная операция);

& - побитовое И - конъюнкция;

| - побитовое включающее ИЛИ - дизъюнкция;

^ - побитовое исключающее ИЛИ - сложение по модулю 2;

>> - сдвиг вправо;

<< - сдвиг влево.

Общий вид операции инвертирования:

~ <выражение>

Остальные операции над битами имеют вид

< выражение 1> < знак операции > < выражение 2>






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных