Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программирование 1 к ПОВТ.doc
Скачиваний:
32
Добавлен:
20.03.2015
Размер:
1.14 Mб
Скачать

1.2.Выражения

Из констант, переменных, разделителей и знаков операций можно конструировать выражения. Каждое выражение представляет собой правило вычисления нового значения. Если выражение формирует целое или вещественное число, то оно называется арифметическим. Пара арифметических выражений, объединенная операцией сравнения, называется отношением. Если отношение имеет ненулевое значение, то оно – истинно, иначе – ложно.

Приоритеты операций в выражениях

Любое выражение, заканчивающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении этого выражения. Частным случаем выражения является пустой оператор ; .

Примеры:

i++;

a+=2;

x=a+b;

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

Например:

{

n++; это составной оператор

summa+=n;

}

{int n=0;

n++; это блок

summa+=n;

}

2. Оператор присваивания

Переменная - это такой "ящик" с именем, в котором может храниться некое значение. Имя у переменной постоянно и неизменно, значение же может меняться.

Переменную можно изменять при помощи операции присваивания:

< переменная > = < выражение > ;

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

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

Что происходит со старыми значениями переменной, когда ей присваивается новое? Оно просто стирается. Например, запись операторов x =2; x = x+1; увеличивает значение переменной х на единицу. Выражение x = x + 1; - не уравнение. Если рассматривать эту строку как математическое уравнение, оно не имеет решений. На самом деле тут написано:

1) "взять значение переменной ИКС"

2) "прибавить к нему 1"

3) "положить новое значение в переменную ИКС"

В результате, в ячейке памяти с именем х, будет размещаться число 3, а предыдущее значение переменной равное 2 будет утеряно.

В С существует укороченный синтаксис. Например сумму двух чисел можно записать: x=x+y; , но для того чтобы ваша программа была меньше и легче воспринималось, следует использовать запись x+=y; . Эти две записи производят одно и тоже действие. Аналогичный синтаксис для других простых математических операций:

x=x+y; x+=y;

x=x-y; x-=y;

x=x*y; x*=y;

x=x/y; x/=y;

3. Алгебраические выражения

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

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

Таблица 4

Математические операции

Функция

Назначение

abs(x)

Возвращает модуль целого числа

acos(x)

Возвращает арккосинус числа х

asin(x)

Возвращает арксинус числа х

atan(x)

Возвращает арктангенс числа х

atan2(x,y)

Возвращает арктангенс частного х/y

cos(x)

Возвращает косинус числа х

cosh(x)

Возвращает косенкас числа х

exp(x)

Вычисляет экспоненту, т.е. «e» в степени х

fabs(x)

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

hypot(x,y)

Вычисляет гипотенузу прямоугольного треугольника с катетами x и y

ldexp(x,exp)

Вычисляет Х*2exp, где exp –целое число

log(x)

Вычисляет натуральный логарифм х

log10(x)

Вычисляет десятичный логарифм х

modf(x,&y)

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

sin(x)

Возвращает синус числа х

sinh(x)

Возвращает секанс числа х

sqrt(x)

Вычисляет квадратный корень из неотрицательного числа

tan(x)

Возвращает тангенс числа х

tanh(x)

Возвращает частное sinh(x)/cosh(x).

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

arcctg(x) = / 2 – arctg(x);

Порядок выполнения операций определяется их приоритетом: операции умножения и деления ( *, / ) выполняются перед операциями сложения и вычитания ( +, - ). Операции одинакового приоритета выполняются в порядке их написания слева направо. Выражение, заключенное в скобки, вычисляется в первую очередь. Таким образом, скобки позволяют изменять порядок выполнения операций. К примеру, (2 + 3) * 3=15, но 2 + 3*3=11.

Знак минус может употребляется для изображения величины, противоположенной данной: -х, -(f+d*s) и т.п.

Не рекомендуется в одном арифметическом выражении использовать данные различных типов. Это приводит к дополнительным затратам машинного времени на преобразование типов и возможны потери в точности.