itmo.ru aco.ifmo.ru c-visionlab.ru
вернуться в оглавление предыдущая глава предыдущий параграф следующий параграф следующая глава


1.3. Арифметические операторы

1.3.1 Примеры арифметических операций (пример 3)

Полный список арифметических операций приводится в приложении 1.

Арифметические операторы делятся на бинарные (в выражении участвуют два операнда), например x=a+b, и унарные (в выражении участвует один операнд), например x=-a.

Пример работы основных арифметических операторов демонстрирует пример 3:

/////////////////////////////////////////////////////////////////////////////
// Программирование на языке высокого уровня. Основы языка С++
// Пример 3. Примеры арифметических операций
// 
// http://aco.ifmo.ru/el_books/programming
// Университет ИТМО
/////////////////////////////////////////////////////////////////////////////
// подключение библиотеки ввода-вывода
#include <iostream>
// подключение стандартного пространства имен для использования библиотек
using namespace std;
 
/////////////////////////////////////////////////////////////////////////////
// функция main начинает исполнение программы 
void main()
{
    // объявление переменных 
    int x=5, y=3;

    // вывод на экран результата бинарных арифметических операций
    cout<<"x+y="<<x+y<<endl; // 5+3=8
    cout<<"x-y="<<x-y<<endl; // 5-3=2
    cout<<"x*y="<<x*y<<endl; // 5*3=15
    cout<<"x/y="<<x/y<<endl; // 5/3=1 - целочисленное деление, остаток отбрасывается
    cout<<"x%y="<<x%y<<endl; // 2 - остаток от целочисленного деления
 
    // оператора возведения в степень не существует, приходится использовать оператор *    
    cout<<"y^3="<<y*y*y<<endl; // 27

    // выполнение унарных арифметических операций
    x+=2; // x=7 - то же, что и x=x+2
    cout<<"x+=2: "<<x<<endl;
    x-=3; // x=4 - то же, что и x=x-3
    cout<<"x-=3: "<<x<<endl;
    x*=2; // x=8 - то же, что и x=x*2
    cout<<"x*=2: "<<x<<endl;
    x/=3; // x=2 - то же, что и x=x/3
    cout<<"x/=3: "<<x<<endl;
    x%=2; // x=0 - то же, что и x=x%2
    cout<<"x%=2: "<<x<<endl;

    // постфиксные и префиксные ++ и --
    x=y=0;  // одновременное присваивание нескольким переменным
    ++x;   // x=1, то же, что и x=x+1, 
    cout<<"++x: "<<x<<endl;
    x++;   // x=2, то же, что и x=x+1, 
    cout<<"x++: "<<x<<endl;
    --y;   // y=-1, то же, что и y=y-1, 
    cout<<"--y: "<<y<<endl;
    y--;   // y=-2, то же, что и y=y-1
    cout<<"y--: "<<y<<endl;
    y=++x; // то же, что (x=x+1; y=x;), x=3, y=3
    cout<<"y=++x: x="<<x<<" y="<<y<<endl;
    y=x++; // то же, что (y=x; x=x+1;), x=4, y=3
    cout<<"y=x++: x="<<x<<" y="<<y<<endl;
} 
/////////////////////////////////////////////////////////////////////////////

1.3.2 Группировка подвыражений с помощью скобок

Круглые скобки в выражениях C++ используются таким же образом, как в алгебраических выражениях. Например, чтобы умножить b + с на а, мы пишем а*(b+с).

Правила старшинства операций C++ применяет операции к операндам арифметических выражений в последовательности, определяемой правилами старшинства (или приоритета) операций, которые практически совпадают с теми, что имеют место в алгебре.

Полная таблица старшинства операций приведена в приложении 1.