Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Си.doc
Скачиваний:
3
Добавлен:
15.11.2019
Размер:
2.72 Mб
Скачать

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

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

#include <math.h>

Аргументы математических функций могут иметь типы double, float или int, причем все функции, кроме abs(), round(), ceil(), floor() и irand() возвращают значения типа double, а эти – типа int. Углы в тригонометрических функциях задаются в радианах:

sin(x) sin x

cos(x) cos x

tan(x) tg x

asin(x) arcsin x

acos(x) arccos x

atan(x) arctg x

atan2(x,y) arctg x/y

sinh(x) sh x

cosh(x) ch x

tanh(x) th x

exp(x) ex

log(x) ln x

log10(x) lg x

pow(x,y) xy ошибка, если x=0 и y<=0 или

если x<0 и y не целое

sqrt(x)

ceil(x) наименьшее целое, большее или равное х:

ceil(5.0) = 5

ceil(5.4) = 6

ceil(5.8) = 6

floor(x) наибольшее целое, меньшее или равное x – выделение целой части числа:

floor(5.0) = 5

floor(5.4) = 5

floor(5.8) = 5

round(x) округление аргумента:

round(5.0) = 5

round(5.4) = 5

round(5.8) = 6

fabs(x) |x| x - вещественное

abs(x) |x| x – целое

ldexp(x,n) x•2n

fmod(x,y) остаток от деления x на y в виде вещественного числа:

fmod(7.8, 5) = 2.8

fmod(7.8, 5.0) = 2.8

fmod(7.8, 5.2) = 2.6

fmod(7.8, 5.5) = 2.3

fmod(7.0, 5.0) = 2.0

fmod(7, 5) = 2.0

fmod(7.5, 5.8) = 1.7

Выражения

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

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

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

Выражения целого типа

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

К арифметическим операциям относятся:

+ сложение 3 + 2 = 5

- вычитания 5 – 2 = 3

* умножение 3 * 2 = 6

/ деление нацело 5 / 3 = 1

% остаток от деления 5 % 3 = 2

5 % 2 = 1

5 % 1 = 0

5 % 5 = 0

2 % 3 = 2

++ инкремент x++ = x + 1

++x = x + 1

-- декремент x-- = x – 1

--x = x – 1

В отличие от Паскаля, в выражения целого типа языка Си могут входить и операнды символьного типа (char), при этом операции выполняются над кодами символьных констант, а результат может быть выражен или целым числом, или символом:

A’ + 3 = ‘D’

A’ + 3 = 68

a’ – 32 = ‘A’

a’ – 32 = 65

0’ + 1 = 49

0’ + 1 = ‘1’

В языке Си используются три логические операции:

! НЕ отрицание, инверсия,

|| ИЛИ логическое сложение, дизъюнкция,

&& И логическое умножение, конъюнкция

и шесть операций сравнения:

== равно,

!= не равно,

> больше,

>= больше или равно,

< меньше,

<= меньше или равно.

Внимание! Операция равно в Си обозначается не одним, как в Паскале, а двумя знаками равенства: ==

Результатами логических операций и операций сравнения могут быть две константы:

1 – истина,

0 – ложь.

Причем считается, что если операнд в выражении не равен нулю (не ложь), то он имеет значение истина:

5&&3 = 1 истина И истина есть истина

5&&0 = 0 истина И ложь есть ложь

5||3 = 1

5||0 = 1

0||0 = 0

!1 = 0 НЕ истина есть ложь

!5 = 0

5==5 = 1 5 равно 5 есть истина

5==3 = 0

5!=5 = 0 5 не равно 5 есть ложь

5!=3 = 1

5>3 = 1

5<=3 = 0

Побитовые операции выполняются над двоичными кодами операндов, над каждым разрядом кода отдельно. К ним относятся:

& И 5&3 = 1 101 = 5

&

011 = 3

___

001 = 1

| ИЛИ 5|3 = 7 101 = 5

|

011 = 3

___

111 = 7

^ исключающее ИЛИ 5^3 = 6 101 = 5

^

011 = 3

___

110 = 6

Приоритет выполнения операций:

! НЕ

- изменение знака

++ инкремент

-- декремент

Эти операции имеют наивысший приоритет и выполняются в выражениях справа налево.

За ними следуют операции:

*, /, % операции типа умножения

+, - операции типа сложения

>, >=, <, <= операции сравнения

==, != операции равенства

& побитовое И

^ исключающее ИЛИ

| побитовое ИЛИ

&& логическое И

|| логическое ИЛИ

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