Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика_и_Пр_Бизнес_лекции.doc
Скачиваний:
84
Добавлен:
10.05.2015
Размер:
1.21 Mб
Скачать

2.2. Операции

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

Арность операции определяется количеством операндов операции. В соответствии с количеством операндов операции языка С++ разделяются на:

  • унарные (имеют 1 операнд);

  • бинарные (имеют 2 операнда);

  • тернарные (имеют 3 операнда).

Приоритет операции определяет порядок выполнения операций в выражении. Унарные операции имеют больший приоритет, чем бинарные и тернарная операция. Приритет операций в порядке убывания приритетов приведен в табл. 4.

Таблица 4

Операции С++

Категория приоритета

Знак операции

Наименование операции

1

::

( )

[ ]

.

->

Указание области видимости

Вызов функции

Индексация

Выбор поля структуры по ее имени

Выбор поля структуры по указателю на структуру

2

.*

-> *

Обращение к компоненту класса по имени объекта и указателю на компонент

Обращение к компоненту класса по указателю на объект и указателю на компонент

3

+

-

~

!

++

- -

&

*

new

delete

sizeof

(тип)

тип ( )

Унарный плюс

Унарный минус

Побитовое отрицание

Логическое отрицание (НЕ)

Инкремент

Декремент

Вычисление адреса

Косвенная адресация

Выделение динамической памяти

Освобождение выделенной памяти

Вычисление размера объекта

Каноническая операция приведения типа

Функциональная операция приведения типа

4

*

/

%

Умножение

Деление

Остаток от целочисленного деления

5

+

-

Сложение

Вычитание

6

<<

>>

Сдвиг влево

Сдвиг вправо

7

<

>

<=

>=

Меньше

Больше

Меньше или равно

Больше или равно

8

= =

!=

Равно

Не равно

9

&

Поразрядная конъюнкция (И)

10

^

Поразрядное исключающее ИЛИ

11

|

Поразрядная дизъюнкция (ИЛИ)

12

&&

Конъюнкция (И)

13

| |

Дизъюнкция (ИЛИ)

14

?:

Условная операция

15

= += -= *= /= %= &= |= ^= <<= >>=

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

16

,

Операция запятая

2.2.1. Арифметические операции

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

Деление (/) Если хотя бы один из операндов операции вещественный, то и результат операции вещественный, иначе – тип результата целочисленный (дробная часть результата отбрасывается). Например, результатом вычисления выражения 5/2 будет 2, а результатом вычисления выражения 5.0/2 будет 2.5.

Остаток от целочисленного деления (%) Операнды этой операции могут быть только целого типа. Результат выражения 5%2 равен 1.

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

#include <iostream.h>

#include <conio.h>

void main()

{

int a, s; //вводимое число и сумма цифр старшей и младшей цифр

cout<< “a? “

cin>>a;

s=a/100+a%10;

cout<< “s=”<<s;

getch();

}

Инкремент и декремент (++, --) Эти унарные операции увеличивают (++) или уменьшают (--) операнд на 1.

Тип операнда может быть: целым, вещественным и указателем. Операнд может быть только переменной. Например, допустимо выражение х++, но выражение 3++ или (a+b)++ в программе С++ недопустимо.

При вычислении выражения с инкрементом или декрементом кроме приоритета операций учитывается форма операций инкремента и декремента. Операции могут быть записаны в одной из двух форм: постфиксной форме, когда знак операции записывается после операнда (х++), или в префиксной форме, когда знак операнда записывается перед операндом (++х). Если инкремент (декремент) записан в префиксной форме, то вначале операнд изменяется, а затем уже измененным участвует в выражении. Если инкремент (декремент) записан в постфиксной форме, то вначале операнд участвует в выражении, а затем уже изменяется.

Пример программы, демонстрирующей различие между префиксной и постфиксной формами операции инкремента:

#include <iostream.h>

#include <conio.h>

void main()

{

int a=2;

int b=2;

int x;

x=++a+4;

cout<<a<<' '<<x<< <<endl;

x=4+b++;

cout<<b<<' '<<x;

getch();

}

Результат работы программы:

3 7

3 6