Работа с числовыми типами в C++: практическое руководство
Обычно при работе с числами используются примитивные типы данных: int, short, long, float, double и др. Их возможные значения и диапазоны рассматривались при обсуждении типов данных C++.
Определение чисел в C++
Вы уже определяли числа в предыдущих примерах. Ещё один объединённый пример для определения различных типов чисел:
Live Demo#include <iostream>
using namespace std;
int main() {
// определение чисел:
short s;
int i;
long l;
float f;
double d;
// присваивание:
s = 10;
i = 1000;
l = 1000000;
f = 230.47;
d = 30949.374;
// вывод:
cout << "short s :" << s << endl;
cout << "int i :" << i << endl;
cout << "long l :" << l << endl;
cout << "float f :" << f << endl;
cout << "double d :" << d << endl;
return 0;
}
Результат компиляции и выполнения:
short s :10 int i :1000 long l :1000000 float f :230.47 double d :30949.4
Математические операции в C++
Помимо пользовательских функций, C++ включает полезные встроенные функции из стандартных библиотек C и C++. Для их использования нужно подключить заголовочный файл <cmath>.
C++ имеет богатый набор математических операций. Таблица некоторых полезных встроенных математических функций:
| № | Функция и назначение |
|---|---|
| 1 | double cos(double); Принимает угол (double) и возвращает косинус. |
| 2 | double sin(double); Принимает угол (double) и возвращает синус. |
| 3 | double tan(double); Принимает угол (double) и возвращает тангенс. |
| 4 | double log(double); Принимает число и возвращает натуральный логарифм. |
| 5 | double pow(double, double); Первый аргумент — число, которое нужно возвести в степень, второй — степень. |
| 6 | double hypot(double, double); Если передать длины двух катетов прямоугольного треугольника, вернёт длину гипотенузы. |
| 7 | double sqrt(double); Принимает число и возвращает квадратный корень. |
| 8 | int abs(int); Возвращает абсолютное значение целого числа. |
| 9 | double fabs(double); Возвращает абсолютное значение любого десятичного числа. |
| 10 | double floor(double); Находит целое число, меньшее или равное аргументу. |
Простой пример математических операций:
Live Demo#include <iostream>
#include <cmath>
using namespace std;
int main() {
short s = 10;
int i = -1000;
long l = 100000;
float f = 230.47;
double d = 200.374;
// математические операции:
cout << "sin(d) :" << sin(d) << endl;
cout << "abs(i) :" << abs(i) << endl;
cout << "floor(d) :" << floor(d) << endl;
cout << "sqrt(f) :" << sqrt(f) << endl;
cout << "pow( d, 2) :" << pow(d, 2) << endl;
return 0;
}
Результат:
sin(d) :-0.634939 abs(i) :1000 floor(d) :200 sqrt(f) :15.1812 pow( d, 2 ) :40149.7
Случайные числа в C++
Часто нужно генерировать случайные числа. Нужно знать две функции: rand() — возвращает псевдослучайное число; чтобы исправить это, сначала вызывают srand().
Пример генерации случайных чисел с использованием time() для инициализации генератора:
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main() {
int i, j;
// установка seed
srand( (unsigned)time( NULL ) );
/* генерация 10 случайных чисел */
for( i = 0; i < 10; i++ ) {
// генерация фактического случайного числа
j = rand();
cout << " Random Number : " << j << endl;
}
return 0;
}
Результат (пример):
Random Number : 1748144778 Random Number : 630873888 Random Number : 2134540646 Random Number : 219404170 Random Number : 902129458 Random Number : 920445370 Random Number : 1319072661 Random Number : 257938873 Random Number : 1256201101 Random Number : 580322989
Язык C
- Освоение операторов C++: полное руководство с практическими примерами
- Комментарии в C++: лучшие практики для читаемого и поддерживаемого кода
- Шаблоны классов в C++: практическое руководство
- Переменные и типы данных в C++: подробное руководство по int, double, char, string, bool
- Язык программирования C++: обзор и ключевые особенности
- Константы и литералы в C++: типы, синтаксис и лучшие практики
- Полное руководство по операторам C++: типы, использование и лучшие практики
- Работа с числовыми типами в C++: практическое руководство
- Ссылки в C++: ключевые концепции и отличия от указателей
- Шаблоны в C++: руководство по обобщённому программированию