- •Часть 2
- •Раздел 3. Основы программирования
- •1.Цель работы
- •2.Контрольные вопросы
- •3.Методические указания
- •3.2.Структура программы
- •3.3.Имена и зарезервированные слова
- •3.4.Специальные символы
- •3.5.Константы и переменные
- •3.6.Оператор присваивания
- •Листинг 3.4. Пример множественного присваивания
- •3.7.Комментарии
- •4.Задание
- •Лабораторная работа №2 Арифметические операции и функции
- •1.Цель работы
- •2.Контрольные вопросы
- •3.Методические указания
- •3.1.Типы целых чисел
- •3.2.Типы вещественных чисел
- •3.3.Арифметические выражения
- •3.4.Функции
- •3.5.Преобразование типов
- •4.Задание
- •Лабораторная работа №3 Ввод и вывод данных
- •1.Цель работы
- •2.Контрольные вопросы
- •3.Методические указания
- •3.1. Ввод и вывод
- •3.2.Дополнительные возможности ввода/вывода
- •3.3.Форматированный ввод/вывод
- •4.Задание
- •Лабораторная работа №4 Логические операции
- •1.Цель работы
- •2.Контрольные вопросы
- •3.Методические указания
- •3.1. Условный оператор
- •3.2.Условная операция
- •3.3.Оператор выбора
- •3.4.Составной оператор
- •3.5.Сложные условия
- •3.6.Тип bool(логический)
- •3.7.Особенности работы условного оператора
- •4.Задание
- •Лабораторная работа №5 Циклические операции
- •1.Цель работы
- •2.Контрольные вопросы
- •3.Методические указания
- •3.1. Оператор цикла while (цикл с предусловием)
- •3.2.Оператор цикла do (цикл с постусловием)
- •3.3.Оператор цикла for (счетный цикл)
- •3.4.Вложенные циклы
- •3.5.Операторы прерывания цикла
- •4.Задание
- •Лабораторная работа №6 Указатели и массивы
- •1.Цель работы
- •2.Контрольные вопросы
- •3.Методические указания
- •3.1. Указатели
- •3.2.Константные указатели и указатели-константы
- •3.3.Операции над указателями
- •3.4.Массивы
- •3.5.Одномерные массивы
- •3.6.Указатели на массивы
- •3.7.Инициализация массивов
- •3.8.Операция sizeof
- •3.9.Определение новых типов
- •3.10.Многомерные массивы
- •4.Задание
- •Лабораторная работа №7 Функции и процедуры
- •1.Цель работы
- •2.Контрольные вопросы
- •3.Методические указания
- •3.1.Описание функций
- •3.2.Процедуры
- •3.3.Параметр-ссылка
- •3.4.Область видимости переменных
- •4.Задание
- •Лабораторная работа №8 Перегрузка функций
- •1.Цель работы
- •2.Контрольные вопросы
- •3.Методические указания
- •3.1.Полиморфизм
- •3.2.Перегрузка функций
- •3.3.Особенности перегрузки функций
- •3.4.Использование параметров по умолчанию
- •4.Задание
- •Лабораторная работа №9 Перечисления
- •1.Цель работы
- •2.Контрольные вопросы
- •3.Методические указания
- •4.Задание
- •Лабораторная работа №10 Строки символов
- •1.Цель работы
- •2.Контрольные вопросы
- •3.Методические указания
- •3.1.Данные типа char
- •3.2.Строковый тип string
- •4.Задание
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++
В С ++ нет ограничений на количество и глубину вложения циклов.
