- •1. Краткие теоретические сведения
- •1.1. Понятие циклического вычислительного процесса
- •1.2. Типовая блок-схема организация цвп
- •1.3. Классификация цвп
- •Повторений и специальной переменной - счетчиком циклов
- •1.4. Общие сведения об операторах цикла
- •1. Оператор while:
- •2. Оператор do…while:
- •3. Оператор for:
- •1.5. Оператор цикла типа "прогрессия" for
- •1.6. Основные правила и порядок выполнения оператора цикла for:
- •Оператор цикла со спецификацией, заданной скалярным выражением
- •1.7. Оператор цикла while
- •1.5.4.1. Оператор цикла while
- •1.5.4.3. Оператор цикла while
- •1.5.5.4. Оператор цикла while
- •1. Цикл с предусловием:
- •1.5.5.5. Основные правила использования и порядок выполнения оператора цикла while:
- •1.5.5.6. Пример № 1
- •1.8. Оператор цикла do...While
- •1.5.5.1. Оператор цикла do while
- •1.5.5.2. Оператор цикла с постусловием do
- •1.5.5.3. Оператор цикла do while
- •1.5.5.4. Оператор цикла do-while
- •2. Цикл с постусловием:
- •1.9. Табулирование функций
- •1.10. Вычисление конечных сумм и произведений
- •1.11. Правила организации циклических алгоритмов
- •1.12. Операторы перехода и их использование в циклах
- •1.12.1. Оператор прерывания циклов break
- •1.Break – оператор прерывания цикла.
- •1.12.2. Оператор перехода к следующей итерации цикла continue
- •Оператор продолжения continue для циклов do, while, for
- •1.12.3. Оператор перехода goto
- •1.12.4. Оператор возврата из функции return
- •Замечание:
- •2. Задание
- •2.1. Изучить теоретические сведения
- •2.4. Задания для выполнения на занятиях
- •2.4.1. Задание 1. Табуляция неразветвляющейся функции
- •2.4.1.1. Условие задания
- •Варианты заданий
- •2.4.2. Задание 2. Табулирование разветвляющейся функции
- •2.4.2.1. Условие задания
- •2.4.3. Задание 3. Табулирование разветвляющейся функции
- •2.4.3.1. Условие задания
- •2.5. Задания для дома
- •2.5.1. Задание 1. Табулирование неразветвляющейся функции в равноотстоящих точках
- •2.5.1.1. Условие задания
- •2.5.2. Задание 2. Табулирование разветвляющейся функции в равноотстоящих точках
- •2.5.2.1. Условие задания
- •2.5.2.2.Пример программы табулирования функции
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Понятие циклического вычислительного процесса 2
Оператор продолжения continue для циклов do, while, for
Назначение. Переход к следующей итерации тела цикла, без прерывания выполнения цикла. Противоположен break.
Синтаксис.
continue;
Выполнение. В любой точке цикла continue прервет текущую итерацию и перейдет к проверке условия завершения цикла.
Если выполнение очередного шага цикла требуется завершить до того, как будет достигнут конец тела цикла, то можно использовать оператор continue. Оператор continue, как и оператор break, используется только внутри операторов цикла, но в отличие от него выполнение программы продолжается не с оператора, следующего за прерванным оператором, а с начала прерванного оператора.
Формат оператора:
continue;
Пример.
Найти сумму дробей вида , если x ∈ [–1;+1]. При вычислении этой
суммы
при х = 0 есть особая точка, в которой знаменатель дроби равен 0 и, следовательно, значение слагаемого не определено.
Можно организовать два цикла сложения с управлением по x ∈ [ –1;–0.9] и x ∈ [0.1;+1], а можно в одном цикле предусмотреть особую точку, и не вычислять очередное слагаемое.
void main (void)
{
float Sum = 0, x;
for (x = –1; x < =1.05; x += 0.1)
{
if (fabs (x) < 0.0001)
continue; // если в знаменателе 0
Sum += 1 / x;
}
printf ("Сумма = %8.2f\n", Sum);
}
Особенности. Особенностей нет.
1.12.3. Оператор перехода goto
3. goto <метка> – передает управление оператору, который содержит метку.
В теле той же функции должна присутствовать конструкция: <метка>:оператор;
Метка – это обычный идентификатор, областью видимости которого является функция. Оператор goto передает управления оператору, стоящему после метки. Использование оператора goto оправдано, если необходимо выполнить переход из нескольких вложенных циклов или переключателей вниз по тексту программы или перейти в одно место функции после выполнения различных действий.
Применение goto нарушает принципы структурного и модульного программирования, по которым все блоки, из которых состоит программа, должны иметь только один вход и только один выход.
Нельзя передавать управление внутрь операторов if, switch и циклов. Нельзя переходить внутрь блоков, содержащих инициализацию, на операторы, которые стоят после инициализации.
Использование оператора безусловного перехода goto в практике программирования на языке С/C++ настоятельно не рекомендуется, так как он затрудняет понимание программ и возможность их модификаций.
Формат оператора:
goto имя-метки;
Оператор goto передает управление на оператор, помеченный меткой имя-метки (имя-метки – это идентификатор).
1.12.4. Оператор возврата из функции return
4. return – оператор возврата из функции. Он всегда завершает выполнение функции и передает управление в точку ее вызова. Вид оператора:
return [выражение];
Оператор return завершает выполнение функции, в которой он задан, и возвращает управление в вызывающую функцию, в точку, непосредственно следующую за вызовом.
Формат оператора:
return [(выражение)];
Замечание:
Замечание: Для любого из циклов тело цикла может, в свою очередь, представлять собой оператор цикла (того или иного вида) либо содержать такой оператор. Подобные структуры называются вложенными циклами. !!!!!
В рассмотренных примерах циклические алгоритмы являются простыми.
Сложным (вложенным) циклом называется такой, у которого содержанием циклически выполняемого фрагмента является также циклический алгоритм. Типы циклических алгоритмов внешнего и внутреннего циклов при этом могут быть любыми. Внутренний цикл, от подготовки до завершения, должен находиться внутри внешнего, точнее, быть его телом.