Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




= присваивание

Присвоить значение правого операнда левому. Результат операции присваивания – это значение правого операнда.

+=, -=, *=, /=, %=, |=, &=, ^=, <<=, >>= выполнить операцию и присвоить

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

Порядок вычисления выражений

У каждой операции имеется приоритет. Если в выражении несколько операций, то первой будет выполнена операция с более высоким приоритетом. Если же операции одного и того же приоритета, они выполняются слева направо.

Например, в выражении

2 + 3 * 6

сначала будет выполнено умножение, а затем сложение; соответственно, значение этого выражения — число 20.

В выражении

2 * 3 + 4 * 5

сначала будет выполнено умножение, а затем сложение. В каком порядке будет производиться умножение – сначала 2 * 3, а затем 4 * 5 или наоборот, не определено. Т.е. для операции сложения порядок вычисления ее операндов не задан.

В выражении

x = y + 3

вначале выполняется сложение, а затем присваивание, поскольку приоритет операции присваивания ниже, чем приоритет операции сложения.

Для данного правила существует исключение: если в выражении несколько операций присваивания, то они выполняются справа налево. Например, в выражении

x = y = 2

сначала будет выполнена операция присваивания значения 2 переменной y. Затем результат этой операции – значение 2 – присваивается переменной x.

Ниже приведен список всех операций в порядке понижения приоритета. Операции с одинаковым приоритетом выполняются слева направо (за исключением нескольких операций присваивания).

:: (разрешение области видимости имен)

. (обращение к элементу класса), -> (обращение к элементу класса по указателю), [] (индексирование), вызов функции, ++ (постфиксное увеличение на единицу), -- (постфиксное уменьшение на единицу), typeid (нахождение типа), dynamic_cast static_cast reinterpret_cast const_cast (преобразования типа)

sizeof (определение размера), ++ (префиксное увеличение на единицу), -- (префиксное уменьшение на единицу), ~ (битовое НЕ),! (логическое НЕ), – (изменение знака), + (плюс), & (взятие адреса), * (обращение по адресу), new (создание объекта), delete (удаление объекта), (type) (преобразование типа)

.* ->* (обращение по указателю на элемент класса)

* (умножение), / (деление), % (остаток)

+ (сложение), – (вычитание)

<<, >> (сдвиг)

< <= > >= (сравнения на больше или меньше)

==!= (равно, неравно)

& (поразрядное И)

^ (поразрадное исключающее ИЛИ)

| (поразрядное ИЛИ)

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

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

= (присваивание), *= /= %= += -= <<= >>= &= |= ^= (выполнить операцию и присвоить)

?: (условная операция)

throw

, (последовательность)

Для того чтобы изменить последовательность вычисления выражений, можно воспользоваться круглыми скобками. Часть выражения, заключенная в скобки, вычисляется в первую очередь. Значением (2 + 3) * 6 будет 30.

Скобки могут быть вложенными, соответственно, самые внутренние выполняются первыми: (2 + (3 * (4 + 5)) – 2)

Задание

Из таблицы 3 взять задание по варианту и написать программу для вычисления выражения на языке СИ.

 

Таблица 3

№ варианта Задание   Исходные данные  
    x = 4,5 y = 8,5 i = 3 j = 6
    n = 10,2 x = 4,3 i = 5 m = 2
    m = 8,1 w = 4,2 x = 10 y = 4
      t = 4,7 z = 0,8 p = 6,2 k = – 4 m = 6
    t = 4,1 p = 3,2 w = 8,7 j = 3 i = 7
6
f = | k2 + m3 |
t = ln x2 + sin2 y
, где

  x = 5,7 y = 1,9 k = 8 m = 2
7
x = sin e2m
, где

  m = 5,6 n = 9,4 i = 4 j = 9
8
y = tg2 q – 4p
, где

  q = 1,7 p = 2,3 i = 9 j = 4
9
y = sin2(n + m)
, где

  n = 2,6 m = 3,7 p = 6 k = 2
10
y = sin(p2+t)
, где

  t = 1,1 p = 2,4 k = 4 i = 5
11
t = log2 (x + y)
, где

  x = 3,7 y = 2,1 i = 3 j = 4  
12
c = tg2 (t+p) + sin p2
, где

  t = 1,5 p = 4,8 i = 2 m = 6
13
, где

  z = 2,4 m = 5,8 n = 4 j = 5
14
h = sin (tg x2)
, где

  x = 9,5 y = 3,6 j = 2 i = 5
15
a = cos2 (x+y)
, где
c
a + b2
d =

  x = 6,4 y = 1,7 k = 5 m = 7

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...