Стандартные математические функции. Операции преобразования типов

Операции преобразования типов

Использование в выражениях операндов разных типов

Оператор-выражение

Операция присваивания

Операция присваивания выполняет действия по занесению результатов выражения, стоящего справа от знака присваивания = в область памяти, определяемую выражением, стоящим слева от знака присваивания. Чаще всего слева от знака присваивания стоит простая переменная. При выполнении присваивания происходит преобразование типа результата правого выражения к типу левого операнда.

Результат операции присваивания - значение присвоенной величины.

Поскольку присваивание является операцией, а не оператором, то в одном выражении допускается несколько присваиваний. В этом случае они выполняются справа налево

Например:

ab = (c = d+5) * 6

Присваивание имеет самый низкий приоритет из всех операций.

Выражение, оканчивающееся точкой с запятой, является оператором, т.е. наименьшей элементарной частью программы.

БНФ:

оператор = выражение ";"

Пример:

ab = (c = d + 5) * 6; /* это оператор */

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

При участии в арифметических операциях операндов разных типов, перед выполнением операции осуществляется преобразование типов так, чтобы не было потери точности. Затем осуществляется сама операция.

Типы данных в порядке возрастания точности:

char, short, int, long, float, double.

Пример:

int a, c;

float d, e;

e = d*(c+e); /* c будет преобразовано в float */

a = 'A' + 20; /* 'A' будет преобразовано в int */

В некоторых случаях правила преобразования типов не позволяют получить верный результат, например:

int a, b;

float c;

a = 7; b = 14;

c = a/b; /* результат 0 */

Для получения правильного результата можно поступить так

c = a; c = c/b;

А можно применить операцию преобразования типа:

БНФ:

преобразование_типа = "("имя_типа ")" выражение

имя_типа - название любого типа, в том числе и заданного программистом.

Для нашего примера применение операции преобразования типа будет выглядеть так:

c = (float)a / (float)b;

Операция преобразования типа имеет приоритет более высокий, чем арифметическая операция.

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

При использовании этих функций в программу необходимо включить файл <math.h>, т.е. необходимо использовать директиву #include <math.h>. При этом будут определены следующие функции:

sin(x) - синус (аргумент в радианах);

cos(x) - косинус (аргумент в радианах);

tan(x) - тангенс (аргумент в радианах);

asin(x) - арксинус (результат в радианах);

acos(x) - арккосинус (результат в радианах);

atan(x) - арктангенс (результат в радианах);

sinh(x) - гиперболический синус;

cosh(x) - гиперболический косинус;

tanh(x) - гиперболический тангенс;

log10(x) - десятичный логарифм;

pow10(x) - возведение числа 10 в степень x;

log(x) - натуральный логарифм;

exp(x) - экспонента;

sqrt(x) - квадратный корень;

pow(x,y) - возведение x в степень y;

fabs(x) - абсолютная величина для double;

abs(x) - абсолютная величина для int.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: