Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование_С++_ч_2.doc
Скачиваний:
13
Добавлен:
22.11.2018
Размер:
209.92 Кб
Скачать

Математические функции

С++ унаследовал из С стандартные математические функции, описание которых находится в заголовочном файле <math.h> (<cmath>). Они позволяют получить абсолютное значение (abs, fabs), округленное число (ceil, floor), квадратный корень (sqrt), степень (pow), значения тригонометрических функций (sin, cos, tan, asin, acos, atan и др.), экспоненту (exp), логарифм (log, log10), дробную и целую части числа (modf), остаток от деления (fmod) и ряд других.

Ошибки индицируются установкой errno из <errno.h> в значение EDOM для ошибок из области определения и ERANGE для ошибок выхода за пределы определения.

Функции

int abs (int num);

long labs(long int num);

double fabs(double x);

возвращают модуль целого и дробного числа соответственно.

Функции

double acos(double x);

double asin(double x);

double atan(double x);

double atan2(double x);

возвращают значение арккосинуса, арксинуса, арктангенса и арккотангенса соответственно. Значение возвращается в радианах.

double cos(double x);

double sin(double x);

double tan(double x);

double tan2(double x);

возвращают косинус, синус, тангенс, котангенс аргумента, заданного в радианах.

div_t div (int numerator, int denomerator);

делит целое numerator на целое denomerator, возвращая результат в структуре, содержащей частное от деления и остаток:

struct div_t {

int quot;

int rem;

}

double exp(double x);

возвращает результат возведения е в степень х.

double floor (double x);

округляет вещественное число х до ближайшего меньшего целого и возвращает его как вещественное число.

double log (double x);

double log10 (double x);

возвращают значение натурального и десятичного логарифмов соответственно.

double modf (double x, double *intptr);

разбивает х на целую и дробную части, причем дробную часть числа возвращает, а целую часть числа помещает по адресу, определяемому указателем intptr.

double pow (double x, double y);

вычисляет степень х основания у.

int rand(void);

генерирует случайное число в диапазоне от 0 до RAND_MAX (константа описана в <stdlib.h>.

double sqrt(double x);

возвращает квадратный корень из х.

Задание

Написать программу, моделирующую игру в кости.

Директивы препроцессора

Препроцессором называется первая фаза компиляции. Инструкции препроцессора называются директивами. Они должны начинаться с символа #.

Директива #include

Директива #include <имя файла> вставляет содержимое указанного файла в ту точку исходного файла, где она записана. Включаемый файл также может содержать директивы #include. Вместо угловых скобок можно использовать двойные кавычки, тогда можно указывать полный путь к файлу.

Директива #include является простейшим средством согласованности объявлений в различных файлах, она включает в них информацию об интерфейсе из заголовочных файлов.

Заголовочные файлы имеют расширение .h и могут содержать:

- определения типов, констант, встроенных функций, шаблонов, перечислений;

- объявления функций, данных, имен, шаблонов;

- пространства имен (см. далее);

- директивы препроцессора;

- комментарии.

В заголовочном файле не должно быть определений функций и данных. Эти правила отражают не требования языка, а разумный подход использования директивы.

При указании заголовочных файлов стандартной библиотеки расширение .h можно опускать. Для каждого файла библиотеки С с именем <name.h> имеется соответствующий файл библиотеки С++ с именем <сname>, в котором те же средства описываются в пространстве имен std (см. далее).