Однако «тонкости» математических операций на этом не исчерпываются. С++
позволяет использовать по две модификации каждой из приведенных выше операций:
префиксную (++Number) и постфиксную
(Number++). Префиксные операторы сперва изменяют значение переменной, а потом
уже используют ее. Постфиксные — наоборот.
Рассмотрим примеры. Предположим, имеются следующие переменные:
int I=3, k=10;
Теперь посмотрим, как изменяются значения переменных в следующих выражениях
(предполагается, что они выполняются не последовательно, а по отдельности):
k=++I; // I=I+1; k=I
// I=4; k=4
k=I++; // k=I; I=I+1
// I=5; k=4
Для еще большего упрощения кода используются комбинированные операторы:
присваивание с умножением (*=), присваивание с делением (/=), присваивание с
делением по модулю (%=), присваивание со сложением (+=) и присваивание с
вычитанием (-=).
k+=I;// k=k+I;
k-=I;// k=k-I;
k*=I;// k=k*I;
k/=I;// k=k/I;
k%=I;// k=k%I;
Рассмотрим применение операций на примере. Напишем программу, которая
производит простейшие арифметические операции над двумя целыми числами.
Вот текст программы:
/* программа,
выполняющая простейшие арифметические
операции*/
#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{
/*Приглашение
ввести 2 целых числа*/
cout<<"Enter 2 integer numbers\n";
/* Объявление
переменных, в которых будут хранится целые
числа*/
int first,second;
/*Приглашение ввести
первое число*/
cout<<"First: ";
/*ввод первого числа*/
cin>>first;
/*приглашение ввести
второе число*/
cout<<"Second: ";
/*ввод второго числа*/
cin>>second;
/*вывод значения суммы двух чисел*/
cout<<first<<"+"<<second<<"="<<first+second<<"\n";
/*вывод значения разности двух чисел*/
cout<<first<<"-"<<second<<"="<<first-second<<"\n";
/*вывод значения произведения двух
чисел*/
cout<<first<<"*"<<second<<"="<<first*second<<"\n";
/*вывод значения частного двух чисел*/
cout<<first<<"/"<<second<<"="<<first/second;
/*вывод остатка от деления двух
чисел*/
cout<<"and ostatok"<<first%second<<"\n";
/*Применение постфиксного
инкремента-сначала программа выведет значение
переменной first, а затем увеличит его на единицу*/
cout<<"first="<<first++;
/*вывод нового значения переменной
first*/
cout<<"\tand now first="<<first<<"\n";
/*использование
префиксного декремента-сначала значение
переменной first уменьшится на единицу, а затем
программа выведет его на экран*/
cout<<"again first="<<--first<<"\n";
int third=first;
/*Использование
оператора +=*/
third+=second;
cout<<first<<"+"<<second<<"="<<third;
}
Откомпилируем программу и запустим ее на выполнение. Проверьте, правильно ли
выполняет компьютер арифметические действия?