- •3.8. Упражнения 49
- •Введение
- •1. Базовые элементы
- •1.1. Комментарии
- •1.2. Функция «main»
- •1.3. Идентификаторы и пространства имен
- •1.4. Типы
- •1.5. Переменные
- •1.7. Константы
- •1.6. Преобразование типов
- •1.8. Потоковый ввод – вывод
- •1.9. Операции
- •1.9.1. Арифметические операции
- •1.9.2. Поразрядные операции
- •1.9.3. Условный оператор
- •1.9.4. Операции отношения
- •1.9.5. Логические операции
- •1.10. Стандартные математические функции
- •1.11. Упражнения
- •2. Базовые конструкции
- •2.1 Ветвление
- •2.1.1. Конструкция «if – else»
- •2.1.2. Конструкция «switch»
- •2.2. Циклы
- •2.2.1. Цикл «for»
- •2.2.2. Цикл «while»
- •2.2.3. Цикл «do – while»
- •2.2.4. Операторы циклов
- •2.2.5. Вложенность
- •2.3. Упражнения
- •2.3.1. Ветвления
- •2.3.2. Циклы
- •2.3.3. Вложенность
- •3. Указатели. Массивы. Структуры
- •3.1. Указатели
- •3.2. Массивы
- •3.2.1. Статические массивы
- •3.2.2. Динамические массивы
- •3.4. Ссылки
- •3.5. Структуры
- •3.6. Объединение
- •3.7. Переопределение типов
- •3.8. Упражнения
- •3.8.1. Статические и динамические массивы
- •3.8.2. Многомерные массивы
- •3.8.3. Строки
- •4. Функции
- •4.1. Простые функции
- •4.2. Рекурсия
- •4.3. Указатели и ссылки
- •4.3.1. Передаваемые параметры
- •4.3.2. Возвращаемые значения
- •4.3.3. Ссылки и структуры в функциях
- •4.3.4. Указатели и массивы в функциях
- •4.3.5. Указатели и ссылки на функцию
- •4.4. Шаблоны функций
- •4.5. Упражнения
- •4.5.1. Простые функции
- •4.5.2. Параметры – ссылки и параметры — указатели
- •5. Стандартные классы
- •5.1. Класс «pair»
- •5.2. Класс «complex»
- •5.3. Класс «string»
- •5.4. Контейнеры. Алгоритмы. Итераторы
- •5.5. Класс «vector»
- •5.6. Упражнения
- •5.6.1. Класс «string»
- •5.6.2. Класс «vector»
- •6. Файловый ввод – вывод
- •6.1. Операции
- •6.2. Методы
- •6.3. Флаги
- •6.4. Двоичный режим
- •6.5. Упражнения
- •Ллитература
1.10. Стандартные математические функции
Зачастую требуется выполнение таких операций, как возведение в степень или вычисление тригонометрической функции. Эти и некоторые другие функции реализованы в стандартной библиотеке и доступны при подключении файла «cmath», являющегося С++ версией заголовочного файла «math.h» стандартной библиотеки языка С.
Таблица 1.9. Некоторые стандартные математические функции.
Функция |
Выполняемое действие |
Функция |
Выполняемое действие |
abs(x) |
Модуль x |
floor(x) |
Округление в меньшую сторону |
asin(x) |
Арксинус угла x |
ceil(x) |
Округление в большую сторону |
acos(x) |
Арккосинус угла x |
log(x) |
Натуральный логарифм x |
atan(x) |
Арктангенс угла x |
log10(x) |
Десятичный логарифм x |
sin(x) |
Синус угла x в радианах |
pow(x, y) |
Возведение x в степень y |
cos(x) |
Косинус угла x в радианах |
exp(x) |
Экспонента в степени x |
tan(x) |
Тангенс угла x в радианах |
sqrt(x) |
Корень квадратный x |
Нижеследующий код решает задачу:
,
где
x – наибольшее из решений уравнения
.
Листинг 1.14. Использование стандартных математических функций.
#include <iostream>
#include <cmath>
using namespace std;
int main (void)
{
double a, b, c;
cout << "ax^2 + bx + c = 0" << endl;
cout << "Enter a: ";
cin >> a;
cout << "Enter b: ";
cin >> b;
cout << "Enter c: ";
cin >> c;
//нахождение корней через дискриминант;
double D = b * b - 4 * a * c;
double x1 = (-b + sqrt(D)) / 2;
double x2 = (-b - sqrt(D)) / 2;
double x = (x1 > x2) ? (x1) : (x2);
cout << "x = " << x << endl;
double chisl = pow(x, 3.0/5) + abs( cos( 2*x - 9));
double znam = ceil( log10( 1.0/pow( sin(x), 5)));
cout << chisl / znam << endl;
return 0;
}
1.11. Упражнения
Вычислить значения выражений.
2. Базовые конструкции
Все вычисления и операции той или иной программы, должны выполняться в определенном порядке, зачастую в зависимости от множества условий. Этот порядок и сами условия задаются инструкциями управления – управляющими конструкциями.
Любое выражение языка С++ становится инструкцией, если оно завершается точкой с запятой, при этом если перед символом «;» нет выражения, то такая инструкция называется пустой и в ряде случаев используется для предотвращения синтаксических ошибок. Объединение нескольких инструкций в одну, называемую составной или блоком, выполняется при помощи фигурных скобок «{}». Блок представляется, с точки зрения синтаксиса, одной инструкцией.
Все управляющие конструкции языка С++ делятся на три типа: ветвление, цикл и безусловный переход. Последний тип – тип одной конструкции. Она состоит из метки – идентификатора, оканчивающегося символом двоеточия, и оператора перехода к этой метке «goto», что реализует переход выполнения программы к новому участку кода , что называется «без видимых на то причин». Безусловный переход используется, в основном, при низкоуровневом программировании на языках типа assembler и не рекомендуется к применению не только при объектно – ориентированном программировании на С++, но даже и при модульном программировании на языке С.
