- •А. В. Кибардин
- •Часть 1 Основы структурного и модульного программирования
- •Оглавление
- •Введение
- •1. Структурное программирование
- •Состав языка
- •Константы
- •Комментарии
- •Типы данных
- •Основные типы данных
- •Структура программы
- •Переменные и выражения Переменные
- •Операции
- •Примеры операций
- •Выражения
- •Функции ввода-вывода Основные функции ввода-вывода в стиле с
- •Спецификации формата
- •Модификаторы формата
- •Операторы Оператор «выражение»
- •Условный операторif
- •Оператор switch
- •Цикл с предусловием
- •Цикл с постусловием
- •Цикл с параметромfor
- •Операторы передачи управления Оператор безусловного перехода
- •Оператор break
- •Оператор continue
- •Оператор return
- •Указатели и ссылки
- •Инициализация указателей
- •Операции с указателями
- •Массивы Одномерные массивы
- •Динамические массивы
- •Многомерные массивы
- •Задание Написать программу, вычисляющую среднее арифметическое для каждого столбца и каждой строки двумерного числового массива a[4, 5]. Строки
- •Типы данных, определенные пользователем
- •Переименование типов
- •Перечисления
- •Структуры
- •2. Модульное программирование
- •Функции Объявление и определение функций
- •Глобальные переменные
- •Возвращаемое значение
- •Параметры функции
- •Передача массивов в качестве параметров
- •Передача имен функций в качестве параметров
- •Параметры со значениями по умолчанию
- •Перегрузка функций
- •Правила описания перегруженных функций
- •Шаблоны функций
- •Функции стандартной библиотеки
- •Функции ввода/вывода
- •Открытие потока
- •Ввод/вывод
- •Закрытие потока
- •Обработка ошибок
- •Функции работы со строками и символами
- •Математические функции
- •Директивы препроцессора
- •Директива #include
- •Директива #define
- •Директивы условной компиляции
- •Директива #undef
- •Предопределенные макросы
- •Области действия и пространства имен
- •Внешние объявления
- •Поименованные области
- •Библиографический список
- •Часть 1 основы структурного и модульного программирования
- •620034, Екатеринбург, ул. Колмогорова, 66
Оператор switch
Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений. Формат оператора:
switch (выражение ) {
case константное_выражение_1 : [список_операторов_1]
case константное_выражение_2 : [список_операторов_2
...
case константное_выражение_N : [список_операторов_N]
[default : операторы]
}
Выполнение оператора начинается с вычисления выражения (оно должно быть целочисленным), а затем управление передается первому оператору списка; после этого последовательно выполняются все остальные ветви.
Пример. Программа, печатающая название нажатой пользователем цифры:
# include <iostream.h>
int main ( ) {
char op;
cout << "Нажмите любую цифру"; cin >>op;
switch (op) {
case '0' : cout << "Это цифра 0"; break;
case '1' : cout << "Это цифра 1"; break;
// Здесь надо поместить остальные ветви оператора switch
case '9' : cout << "Это цифра 9"; break;
default : cout << "Это не цифра ";
}
return 0;
}
Пояснения
Первая строка программы − это директива препроцессора. Она подключает заголовочный файл iostream.h, содержащий описания объектов-потоков ввода cin и вывода cout.
Оператор break прерывает дальнейшее выполнение ветвей переключателя.
Цикл с предусловием
Формат оператора:
while (выражение) оператор;
Выражение определяет условие повторения цикла, представленного простым или составным оператором. Если оно истинно, выполняется оператор тела цикла. Если при первой проверке выражение равно false, цикл не выполнится ни разу.
Задание
Написать программу-калькулятор, выполняющую четыре арифметических действия.
Цикл с постусловием
Формат оператора:
do оператор while (выражение) ;
Сначала выполнятеся простой или составной оператор, составляющий тело цикла, а затем вычисляется выражение. Если оно истинно, тело цикла выполняется снова. Цикл завершается, когда выражение станет равно false.
Цикл с параметромfor
Формат оператора:
for (инициализация; выражение; модификации ) оператор;
Инициализация используется для объявления и присвоения начальных значений величинам, используемым в цикле. В этой части можно записать несколько операторов, разделенных запятой, например так:
for (int i = 0, j = 2; ...
int k, m;
for (k = 1, m = 0; ...
Областью действия переменных, объявленных в части инициализации цикла, является цикл.
Выражение определяет условие выполнения цикла: если его результат, приведенный к типу bool, равен true, цикл выполняется. Цикл с параметром реализован как цикл с предусловием.
Модификации выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла. В части модификаций можно записать несколько операторов, разделенных запятой.
Тело цикла представляется простым или составным оператором.
Пример. Оператор, вычисляющий сумму чисел от 1 до 100:
int s=0;
for (int i = 1; i <=100; i ++) s += i;
!!! Любая часть оператора for может быть опущена, но точки с запятой должны присутствовать в записи.
Задание
Написать программу, вычисляющую таблицу значений функции y=sin(x), a<=х<=b, где границы интервала a, b и шаг изменения х задает пользователь с клавиатуры. Программу написать тремя способами, используя разные операторы цикла