Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_раб С++_ОСНОВЫ ПРОГРАММИРОВАНИЯ_ч_2_изм_чис...doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
803.84 Кб
Скачать

3.Методические указания

3.1. Оператор цикла while (цикл с предусловием)

Цикл while языка C++ является полным аналогом соответствующего цикла языка Pascal и имеет схожую схему:

while (<логическое выражение>) <оператор>;

Оператор будет повторяться, пока истинно логическое выражение. Перед каждым повторением оператора значение логического выра­жения перевычисляется. Если необходимо повторять несколько операторов, их следует объединить в составной оператор.

Пример. Программа подсчета суммы S первых 1000 членов гармо­нического ряда 1 + 1/2 + .. + 1 /N (Листинг 3.23).

Листинг 3.23. Программа подсчета суммы членов гармонического ряда

Обратите внимание, насколько приведенный выше листинг па язы­ке C++ (Листинг 3.23) элегантнее его аналога па языке Pascal.

3.2.Оператор цикла do (цикл с постусловием)

Цикл do языка C++ чем-то напоминает оператор цикла repeal языка Pascal, но имеет принципиальное отличие условия выхода из цикла и отсутствие составного оператора:

Оператор, заключенный между ключевыми словами do и while, повторяется до тех пор, пока не станет ложным логическое выра­жение, стоящее после слова while. Если необходимо повторять несколько операторов, их следует объединить в составной оператор. В программе подсчета суммы гармонического ряда (Листинг 3.23) оператор do равносилен следующему оператору (Листинг 3.24):

Листинг 3.24. Пример цикла, организующего подсчет суммы гармонического

ряда оператором цикла do

3.3.Оператор цикла for (счетный цикл)

Оператор цикла for в языке C++ гораздо гибче и мощнее своего аналога в языке Pascal. Общая форма записи цикла такова:

for (<init_expr>;<cond_expr>;<incr_expr>) <operator>;

где

  • init_expr - выражение инициализации;

  • cond_expr - условие выполнения цикла;

  • incr_expr - выражение изменения счетчика;

  • operator - выполняемый оператор.

Если расписать данный цикл через оператор while, то получим сле­дующее выражение (Листинг 3.25):

Листинг 3.25. Реализация цикла for, используя оператор while

Перед вхождением в цикл выполняется init_expr. Затем проверяется значение cond_expr. Повторение тела цикла происходит до тех пор, пока cond_expr не примет значение ЛОЖЬ (0). Циклически повто­ряемый участок состоит из оператора operator и incr_expr. Сумму гармонического ряда можно переписать в виде (Листинг 3.26):

Листинг 3.26. Вычисление суммы гармонического ряда, используя оператор

цикла for

Как init_expr, так и inc_expr оператора for могут быть любой (в том числе и пустой) последовательностью простых операторов, разделя­емых оператором запятая. Т.е. приведенный выше листинг (Листинг 3.26) можно переписать как (Листинг 3.27):

Листинг 3.27. Вычисление суммы гармонического ряда

Различные операторы циклов могут выражаться друг через друга. Выражение оператора for через while уже приводилось. А вот и дру­гие эквивалентные пары (Таблица 3.6):

Таблица 3.6. Выражение операторов while и do через оператор for

3.4.Вложенные циклы

Как и в языке Pascal, оператор C++, повторяемый в цикле, сам может быть циклом (Листинг 3.28):

Листинг 3.28. Пример вложенного цикла C++

В С ++ нет ограничений на количество и глубину вложения циклов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]