Основные математические
операции
Независимо от назначения
большинство ваших программ на С++ будут складывать, вычитать, умножать или
делить. Ниже перечислены основные математические операции:
Операция |
Назначение |
Пример |
+ |
Сложение |
total = cost + tax |
- |
Вычитание |
change = payment - total |
* |
Умножение |
tax = cost * tax_rate |
/ |
Деление |
average = total / count |
#include <iostream.h>
void main(void) {
cout << "5 + 7 = " << 5 + 7 << endl; cout << "12
- 7 = " << 12 - 7 << endl; cout << "1.2345 * 2 = "
<< 1.2345 * 2 << endl; cout << "15 / 3 = " << 15 / 3
<< endl;
}
Обратите внимание, что
каждое выражение сначала появляется в кавычках, которые обеспечивают вывод
символов (например, 5 + 7 =)на экран. Затем программа выводит результат операции
и символ новой строки.
Следующая программа
MATHVARS.CPP выполняет арифметические операции, используя переменные:
#include <iostream.h>
void main(void) {
float cost = 15.50; float sales_tax = 0.06; float amount_paid =
20.00; float tax, change, total;
tax = cost * sales_tax; total =
cost + tax; change = amount_paid - total;
cout << "Стоимость
покупки: $" << cost << "\tНалог: $" << tax <<
"\tОбщий счет: $" << total << endl;
cout << "Сдача
покупателю: $" << change << endl;
}
Увеличение значения
переменной на 1
Обычной операцией, которую
вы будете выполнять при программировании, является прибавление 1 к значению
целой переменной. Например, ваша программа использует переменную с именем count,
чтобы сохранить данные о количестве напечатанных файлов. Каждый раз, когда
программа печатает файл, 1 будет добавляться к текущему значению count:
count = count + 1;
Следующая программа
INTCOUNT.CPP использует оператор присваивания для увеличения переменной count
(которая первоначально содержит значение 1000) на единицу (присваивая переменной
результат 1001):
#include <iostream.h>
void main(void) {
int count = 1000;
cout << "начальное значение count равно"
<< count << endl; count = count + 1; cout << "конечное
значение count равно" << count << endl;
}
Увеличение значения
переменной представляет собой обычную операцию в программах, поэтому в С++ есть
операция увеличения - двойной знак плюс (++). Операция увеличения
обеспечивает быстрый способ прибавления единицы к значению пременной. Следующая
программа INC_OP.CPP использует операцию увеличения для наращивания значения
переменной count на 1:
#include <iostream.h>
void main(void) {
int count = 1000;
cout << "начальное значение count равно"
<< count << endl; count++; cout << "конечное значение
count равно" << count << endl;
}
Представление о
префиксной (до) и постфиксной (после) операциях увеличения.
При использовании операций
увеличения ваши программы могут размещать оператор увеличения до или после
переменной, как показано ниже:
++variable;
variable++;
Так как первый оператор
появляется до переменной, он называется префиксным оператором увеличения
. Аналогично этому, второй оператор появляется после переменной и называется
постфиксным оператором увеличения . Например, рассмотрим следующий
оператор присваивания:
current_count = count++;
Этот оператор присваивания
указывает С++ присвоить текущее значение count переменной current_count и
увеличивает текущее значение count. В данном случае постфиксный оператор
увеличение эквивалентен следующим операторам:
current_count = cont;
count = count + 1;
Рассотрим префиксный
оператор увеличения:
current_count = ++count;
В этом случае оператор
присваивания указывает С++ сначала увеличить значение count, а затем присвоить
результат переменной current_count. Использование префиксного оператора
эквивалентно следующим оператором:
count = cont + 1;
current_count = count;
Следующая программа
PRE_POST.CPP показывает использование префиксной и постфиксной операций
увеличения:
#include <iostream.h>
void main(void) {
int small_count = 0; int big_count = 1000;
cout <<
"small_count равно " << small_count << endl; cout <<
"small_count++ производит " << small_count++ << endl; cout
<< "конечное значение small_count равно " << small_count <<
endl;
cout << "big_count равно " << big_count << endl;
cout << "++big_count производит " << ++big_count << endl;
cout << "конечное значение big_count равно " << big_count
<< endl;
}
С переменной small_count
программа использует постфиксную операцию увеличения. В результате программа
выводит текущее значение переменной (0), а затем увеличивает его на 1. С
переменной big_count программа использует префиксную операцию увеличения. В
результате программа сначала увеличивает значение переменной (1000 + 1), а затем
выводит результат (1001).
С++ обеспечивает также
операции уменьшения
В С++ двойной знак минус
(--) соответствует оператору уменьшения , который уменьшает значение
переменной на 1. Как и в случае с операцией увеличения, С++ поддерживает
префиксный и постфиксный операторы уменьшения. Следующая программа DECCOUNT.CPP
иллюстрирует использование оператора ументшения С++:
#include <iostream.h>
void main(void) {
int small_count = 0; int big_count = 1000;
cout <<
"small_count равно " << small_count << endl; cout <<
"small_count-- производит " << small_count-- << endl; cout
<< "конечное значение small_count равно " << small_count <<
endl;
cout << "big_count равно " << big_count << endl;
cout << "--big_count производит " << --big_count << endl;
cout << "конечное значение big_count равно " << big_count
<< endl;
}
Другие операторы С++
Операция |
Функция |
% |
Взятие по модулю или остаток; возвращает остаток целочисленного деления |
~ |
Дополнение; инвентирует биты значений |
& |
Побитовое значение И |
|| |
Побитовое включающее ИЛИ |
^ |
Побитовое исключающее ИЛИ |
<< |
Сдвиг влево; сдвигает биты значения влево на указанное количество разрядов |
>> |
Сдвиг влево; сдвигает биты значения влево на указанное количество разрядов |
Старшинство операций
C++ выполняет операции в
определенном порядке, основанном на старшинстве операций. В таблице преведены
операции С++ по старшинству. Операции, находящиеся в верхней части, имеют более
высокий приоритет. Операции внутри каждой части имеют одинаковый приоритет. Вы
не знакомы со многими операциями, представленными в таблице. К концу учебника вы
сможете использовать (и понять) каждую из них.
Операция |
Имя |
Пример |
:: |
Разрешение области видимости |
class_name::class_member_name |
:: |
Глобальное разрешение |
::variable name |
. |
Выбор элемента |
object.member_name |
-> |
Выбор элемента |
pointer->member_name |
[] |
Индексация |
pointer[element] |
() |
Вызов функции |
expression(parameters) |
() |
Построение значения |
type(parameters) |
sizeof |
Размер объекта |
sizeof expression |
sizeof |
Размер типа |
sizeof(type) |
++ |
Приращение после |
variable++ |
++ |
Приращение до |
++variable |
-- |
Уменьшение после |
variable-- |
-- |
Уменьшение до |
--variable |
& |
Адрес объекта |
&variable |
* |
Разыменование |
*pointer |
new |
Создание (размещение) |
new type |
delete |
Уничтожение (освобождение) |
delete pointer |
delete[] |
Уничтожение массива |
delete[masive] |
~ |
Дополнение |
~expression |
! |
Логическое НЕ |
!expression |
+ |
Унарный плюс |
+1 |
- |
Унарный минус |
-1 |
() |
Приведение |
(type)expression |
.* |
Выбор елемента |
object.*pointer |
-> |
Выбор элемента |
object->pointer |
* |
Умножение |
expression * expression |
/ |
Деление |
expression / expression |
% |
Взятие по модулю |
expression % expression |
+ |
Сложение (плюс) |
expression + expression |
- |
Вычитание (минус) |
expression - expression |
Управление порядком, в
котором С++ выполняет операции
Иногда порядок, в которм С++
выполняет арифметические операции, не соответствует порядку, в котором вам
необходимо их выполнить. Например, предположим, что вашей программе необходимо
сложить две стоимости и затем умножить результат на налоговую ставку:
cost = price_a + price _b *
1.06;
В этом случае С++ сначала
выполнит умножение, а затем прибавит значение price_a.
Если ваши программы должны
выполнять арифметические операции в определенном порядке, вы можете заключить
выражение в круглые скобки. С++ оценивает выражение и сначала выполняет
операции, заключенные в скобки:
result = (2 + 3) * (3 + 4);
|