
- •Часть 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.Арифметические выражения
Арифметические выражения строятся из имен переменных, констант, знаков операций и круглых скобок так, как это принято в математике. При вычислении их значений раньше выполняются операции * и / , а затем + и -. Операции одинакового старшинства выполняются слева направо, например:
Стоит отметить, что в языке С++ допускаются арифметические операции, совмещенные с присваиванием. Ниже показаны примеры таких операций с приведенными аналогами (см. комментарии) (Листинг 3.9):
Листинг 3.9. Арифметические операции с присваиванием
3.4.Функции
Наряду с переменными и константами в арифметические выражения можно включать функции. При определении значения выражения, прежде всего, вычисляются значения входящих в него функций. В C++ имеются стандартные функции вещественного аргумента (Таблица 3.5):
abs(X) |
абсолютная величина Х, |
sin(X) |
синус X (аргумент в радианах). |
cos(X) |
косинус X (аргумент в радианах), |
tan(X) |
тангенс X (аргумент в радианах), |
pow(X, Y) |
возведение X в степень У, |
ехр(Х) |
e в степени Х, |
log(X) |
логарифм натуральный X, |
Log10(X) |
логарифм десятичный X, |
sqrt(X) |
корень квадратный из X, |
asin(X) |
арксинус X, |
acos(X) |
арккосинус X, |
atan(X) |
арктангенс X. |
Таблица 3.5. Стандартные функции над вещественными числами
Для использования данных функций необходимо подключить стандартный модуль math.h (Листинг 3.10):
Листинг 3.10. Пример использования математических функций
3.5.Преобразование типов
В С++- работает два основных правила приведения одного типа к другому (правила приведения типов):
Операнды разных типов приводятся к "старшему", т.е. наиболее длинному типу, Ниже приведены типы от самого старшего к младшему: long double, double, float, long, int, short, char.
При выполнении операции присваивания результат приводится к типу переменной слева от знака операции. В этом случае может возникнуть ситуация преобразования старшего типа к младшему.
Данные правила называют еще неявным приведением типов, т.к. преобразование одного типа в другой происходит автоматически, компилятором. Язык C++ позволяет задать и явное приведение типа, используя операцию:
(<tуре>)<выражение>;
где type любой допустимый тип языка C++. Результатом будет значение выражения, приведенного к типу type.
Пример. Ниже показаны операции явного и неявного приведения типов (Листинг 3.11):
Листинг 3.11. Пример явного и неявного приведения типов
Переменную любого типа можно попытаться привести к переменной другого типа (целое в вещественное, вещественное в целое и т.д.). В случае несовместимых типов компилятор выдаст ошибку приведения типа.