Читайте также:
|
|
В С++ используется пять математических операторов: сложения (+), вычитания (-), умножения (*), целочисленного деления (/) и деления по модулю (%).
В операциях сложения и вычитания разобраться несложно: они возвращают сумму и разность двух операндов. Хотя следует отметить, что вычитание беззнаковых целых может привести к удивительным результатам, если полученная разность окажется отрицательным числом. Так при запуске программы
║ #include <iostream.h>
║
║ int main()
║ {
║ unsigned int difference;
║ unsigned int bigNumber = 100;
║ unsigned int smallNumber = 50;
║ difference = bigNumber - smallNumber;
║ cout << "Differenc is" << difference<<endl;
║ difference = smallNumber-bigNumber;
║ cout << "NowDifferenc is" << difference<<endl;
║
║ return 0;
║ }
║
получим
Differenc is50
NowDifferenc is65486
Целочисленное деление несколько отличается от обычного. При делении числа 21 на число 4 (21/4) в результате получится 5 и остаток 1. Чтобы получить остаток, нужно число 21 разделить по модулю 4 (21%4), в результате получим остаток 1.
Для получения дробного результат нужно использовать вещественные числа.
║ #include <iostream.h>
║
║ int main()
║ {
║
║ cout << " 21 / 4 =" << 21/4<<endl;
║ cout << " 21. / 4 =" << 21./4<<endl;
║ cout << " 21 / 4. =" << 21/4.<<endl;
║ cout << " 21. / 4. =" << 21./4.<<endl;
║
║ return 0;
║ }
Результат:
21 / 4 =5
21. / 4 =5.25
21 / 4. =5.25
21. / 4. =5.25
Нет ничего необычного в том, чтобы к переменной прибавить некоторое значение, а затем присвоить результат той же переменной. Если у вас есть переменная myAge и вы хотите увеличить ее значение на два, можно записать следующее:
int myAge = 5;
int temp;
temp = myAge + 2; // складываем 5 + 2 и результат помещаем в temp
myAge = temp; // значение возраста снова помещаем в myAge
Однако в С++ можно поместить одну и ту же переменную по обе стороны оператора присваивания, и тогда предыдущий блок сведется лишь к одному выражению
myAge = myAge + 2;
В алгебре это выражение рассматривалось бы как бессмысленное, но в языке С++ оно читается следующим образом: добавить два к значению переменной myAge и присвоить результат переменной myAge.
Существует еще более простой вариант предыдущей записи, хотя его труднее читать:
myAge += 2;
Помимо оператора присваивания с суммой существуют также оператор присваивания с вычитанием (-=), делением (/=), умножением (*=) и делением по модулю (%=).
Очень часто в программах к переменным добавляется (или вычитается) единица. В языке С++ увеличение значения на единицу называется инкрементом, а уменьшение на 1 - декрементом. Для этих действий предусмотрены специальные операторы.
Оператор инкремента (++) увеличивает значение на 1. а оператор декремента (--) уменьшает его на 1. Так, если вы хотите увеличить значение переменной c на единицу, можно использовать следующие выражения:
с = с + 1;
с += 1ж
с++;
Как оператор инкремента, так и оператор декремента работает в двух вариантах: префиксном и постфиксном. Префиксный вариант записывается перед именем переменной (++myAge), а постфиксный – после него ((myAge++).
В простом выражении вариант использования не имеет большого значения, но в сложном при выполнении приращения одной переменной с последующим присваиванием результата другой переменной это весьма существенно. Префиксный оператор вычисляется до присваивания, а постфиксный – после.
Пример о\использования префиксных и постфиксных операторов
║ #include <iostream.h>
║
║ int main()
║ {
║ int myAge = 39;
║ int yourAge = 39;
║ cout <<" I am "<<myAge << endl;
║ cout <<" You are "<< yourAge << endl;
║ myAge++;
║ ++yourAge;
║
║ cout << " One year passes "<<endl;
║ cout << " I am" << myAge <<endl;
║ cout << " You are" << yourAge<<endl;
║
║ cout << " Another year passes "<<endl;
║ cout << " I am" << myAge++ <<endl;
║ cout << " You are" << ++yourAge<<endl;
║
║ cout << " Let's print it again "<<endl;
║ cout << " I am" << myAge <<endl;
║ cout << " You are" << yourAge<<endl;
║
║ return 0;
║ }
Результат
I am 39
You are 39
One year passes
I am40
You are40
Another year passes
I am40
You are41
Let's print it again
I am41
You are41
Дата добавления: 2015-02-16; просмотров: 103 | Поможем написать вашу работу | Нарушение авторских прав |