ix = -3 + 4 * 5 - 6; printf (“%d \n”, ix); | ((-3) + (4*5))-6 == 11 |
ix= -3 + 4 % 5 - 6; printf (“%d \n”, ix); | (3 + (4%5))-6 == 1 |
ix = -3 * 4 % -6 / 5; printf (“%d \n”, ix); | ((-3)*4)%(-6)/5 == 0 |
ix = (7 + 6) % 5 / 2; printf (“%d \n”, ix); | ((13)) % 5 / 2 == 1 |
Операции умножения, деления и взятия остатка имеют одинаковый приоритет и левостороннюю ассоциативность, т.е. выполняются слева направо. Операции сложения и вычитания имеют более низкий приоритет и также левостороннюю ассоциативность.
-----------------------------------------------------------------------------------------
Встроенные математические функции и константы
!!! В программе можно использовать стандартные математические функции и константы. Для этого необходимо включить директивы препроцессора:
#define _USE_MATH_DEFINES //для констант
#include < math. h > //для функций из библиотеки С
В этом случае будет доступна константа M_PI дляиспользования значения числа π.
Если включить директиву препроцессора:
#include <c math > //для функций из библиотеки С++
то константа M_PI будет недоступна и потребуется ей предварительное определение с помощью директив препроцессора:
#ifndef M_PI
#define M_PI 3.14159265358979323846
# endif
Математические функции (!!! Обратить внимание на типы аргументов функций )
прототип функции | назначение функции |
double abs(double x) | абсолютное значение аргумента |
double sin(double x) | синус угла (угол (аргумент) задается в радианах) |
double cos(double x) | косинус угла (угол задается в радианах) |
double tan(double x) | тангенс угла (угол задается в радианах) |
double log(double x) | логарифм натуральный |
double log10(double x) | логарифм десятичный |
double exp(double x) | экспонента (ex) |
double pow(double x, double y) | возведение x в степень y (xy) |
int rand() | генерирование случайного целого числа в интервале от 0 до RAND_MAX (32767) |
void srand(unsigned n) srand(100); //отсчет от 100!!! srand (time(0)); // отсчет от машинного времени в сек.!!! | генерирование случайных чисел, начиная с заданного n |
double ceil(double x) ceil(2.8) à3.000000 ceil(-2.8) à-2.000000 | округление вверх, с избытком (возвращается в форме double наименьшее целое, превышающее значение x) |
int floor(extended x) floor(2.8) à2.000000 floor(-2.8) à-3.000000 | округление вниз, с недостатком (возвращается в форме double наибольшее целое, не превышающее значения x) |
double fmod(double x,double y) | аналог операции % для вещественных чисел (остаток от деления нацело x на y) |
double modf(double x, double* y) | получение дробной части r аргумента x и присваивание y целой части этого аргумента; r + *y равно x (c учетом знаков) |
Константы предельных значений диапазонов типов
< с limits> или <limits.h> CHAR_MIN CHAR_MAX UCHAR_MAX SHRT_MIN SHRT_MAX USHRT_MAX INT_MIN INT_MAX UINT_MAX < с float> или <float.h> FLT_MIN FLT_MAX DBL_MIN DBL_MAX LDBL_MIN LDBL_MAX | -128 127 255 -32768 32767 65535 -2 147 483 648 2 147 483 647 4 294 967 295 1.17549e-038 3.40282e+038 2.22507e-308 1.79769e+308 2.22507e-308 1.79769e+308 |
Константы для вещественных типов
<с float > или < float. h > | |
FLT_RADIX | Основание экспоненциального представления (2, 16) |
FLT_DIG | Количество верных десятичных цифр для типа float |
FLT_EPSILON | Минимальное х такое, что 1.0+х ≠1.0? где х принадлежит типу float |
FLT_MAX_EXP | Максимальное n такое, что (FLT _ RADIX n -1) представимо в виде числа float |
FLT_MAX_10_EXP | Максимальное n такое, что 10 n представимо как float |
FLT_MIN_EXP | Минимальное n такое, что 10 n представимо в виде нормализованного числа типа float |
FLT_MIN_10_EXP | Минимальное отрицательное целое n такое, что 10 n - в области определения чисел типа float |
DBL_DIG | Количество верных десятичных цифр для типа double |
DBL_EPSILON | Минимальное х такое, что 1.0+х ≠1.0, где х принадлежит типу double |
DBL_MAX_EXP | Максимальное n такое, что (FLT _ RADIX n -1) представимо в виде числа double |
DBL_MAX_10_EXP | Максимальное n такое, что 10 n представимо как double |
DBL_MIN_EXP | Минимальное n такое, что 10 n представимо в виде нормализованного числа типа double |
DBL_MIN_10_EXP | Минимальное отрицательное целое n такое, что 10 n - в области определения чисел типа double |
-----------------------------------------------------------------------------------------
Операция присваивания