Вернись!

Урок №5

Выполнение простых операций


Основные математические операции

Независимо от назначения большинство ваших программ на С++ будут складывать, вычитать, умножать или делить. Ниже перечислены основные математические операции:

Операция Назначение Пример
+ Сложение 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);

Сайт управляется системой uCoz