Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР3-С++-13 марта-2012.doc
Скачиваний:
14
Добавлен:
15.09.2019
Размер:
1.26 Mб
Скачать

1.2.3. Арифметические операции

Для удобства выполнения лабораторных работ 3 – 5, в которых используются в основном арифметические операции, из табл. 3.1 и табл. 3.2 сделана выборка арифметических операций, результаты которой приведены в табл. 3.4.

Таблица 3.4

Арифметические операции языка С++

Знак

операции

Название

Описание

Приоритет

( старшинство, ранг)

Порядок

+

унарный плюс

изменение знака числа

1

П

-

унарный минус

изменение знака числа

1

П

*

умножение

умножение чисел

2

Л

/

деление

деление чисел

2

Л

%

остаток от деления

остаток от деления одного числа на другое

2

Л

+

сложение

сложение чисел

3

Л

-

вычитание

вычитание чисел

3

Л

++

инкремент

увеличение на единицу

4

П

--

декремент

уменьшение на единицу

4

П

Арифметические операции определены как над данными целочисленных типов, так и вещественных (табл. 3.5).

Таблица 3.5.

Арифметические операции

Арифметические операции над данными целочисленных типов

Арифметические операции над данными вещественных типов

+ (сумма)

- (разность)

* (произведение)

/ (целочисленное деление)

% (взятие остатка)

++ (инкремент)

-- (декремент)

+(сумма)

- (разность)

*(произведение)

/ (деление)

% (взятие остатка)

++ (инкремент)

-- (декремент)

Операции ++ и -- применяются только к переменным и, соответственно, увеличивают или уменьшают значение переменной на 1.

Независимо от назначения большинство ваших будущих программ на C++ будут складывать, вычитать, умножать или делить. Вы узнаете, что ваши программы могут выполнять арифметические операции с константами (например, 3*5) или с переменными (например, payment — total). 

В языке С довольно просто реализуются элементарные математические операции: сложения, вычитания, умножения и деления. Допустим, что в программе заданы две переменные

int a, b; с

с начальными значениями

a=4;

b=8;

тогда операции сложения, вычитания, умножения и деления будут выглядеть следующим образом:

int c;

c= a+b; //сложение двух переменных

с= a-b; //вычитание

c= a*b; // умножение

c= a/b; // деление

Представленные операции можно выполнять не только с переменными, но и с конкретными числами, например

c = 10+5;

c = 8*4;

float d;

d = 7/2;

Результатом первых двух арифметических операций будут числа 15 и 32 соответственно, но при выполнении операции деления в переменную d будет записано число 3, а не 3,5. Это связано с тем, что число 7 в языке С++ будет интерпретироваться как целочисленная величина, которая не может содержать дробной части. Поэтому полученная дробная часть 0,5 будет отброшена. Для реализации корректного деления одного числа на другое следует использовать такую запись:

d = 7.0/2;

или

d =(float)7/2;

В первом случае вещественное число делится на два и результат (вещественный) присваивается вещественной переменной d. Во втором варианте выполняется приведение типов: целое число 7 приводится к вещественному типу float, а затем делится на 2. Второй вариант удобен, когда выполняется деление одной целочисленной переменной на другую:

int a,b;

a = 7;

b = 2;

d = a/b;

В результате значение d будет равно 3, но если записать

d = (float ) a/b;

то получим значение 3,5. Здесь следует также отметить, что если переменная d является целочисленной, то результат деления всегда будет записан с отброшенной дробной частью.

Иллюстрация выполнения нескольких простых арифметических операций приведена в примере 3.1. В программе используется оператор cout для вывода реультата. Подробное использование оператора cout  рассмотрено в лабораторной работе № 5.

Пример 3.1.

#include <iostream.h>

void main(void)

cout << "5 + 7 = " << 5 + 7 << endl;  cout << "12 - 7 = " << 12 - 7 << endl;  cout << "1.2345 * 2 = " << 1.23.45 * 2 << endl;  cout << "15 / 3 = " << 15 / 3 << endl;  getch();

return 0;

}

Посмотрите внимательно на операторы программы. Обратите внимание, что каждое выражение сначала появляется в кавычках, которые обеспечивают вывод символов (например, 5 + 7 =) на экран. Затем программа выводит результат операции и символ новой строки. Когда вы откомпилируете и запустите эту программу, на вашем экране появится следующий вывод:

5 + 7 = 12

12 - 7 = 5

1.2345 * 2 = 2.469

15 / 3 = 5

В данном случае программа выполняла арифметические операции, используя только постоянные значения.

В примере 3.2 программа выполняет арифметические операции, используя переменные.

Пример 3.2.

#include <iostream.h>

void main(void)

{     float cost =15.50; // Стоимость покупки     float sales_tax = 0.06; // Налог на продажу 6%     float amount_paid = 20.00; // Деньги покупателя     float tax, change, total; // Налог на продажу, сдача покупателю и общий счет     tax = cost * sales_tax;     total = cost + tax;     change = amount_paid - total;     cout << "Стоимость покупки: $" << cost << " Haлor: $" << tax << " Общий счет: $" << total << endl;     cout << "Сдача покупателю: $" << change << endl;  getch();

return 0;

}

В данном случае программа использует только переменные с плавающей точкой. Как видите, программа присваивает значения переменным при объявлении. Далее программа выполняет арифметические операции над переменными для определения налога на продажу, общего счета и сдачи покупателю. Когда вы откомпилируете и запустите эту программу, на вашем экране появится следующий вывод:

Стоимость покупки: $15.5 Налог: $0.93 Общий счет: $16.43

Сдача покупателю: $3.57

В заключение рассмотрения работы с арифметическими операциями отметим, что приоритет операций умножения и деления выше приоритета операций сложения и вычитания. Это означает, что сначала выполняются операции умножения и деления и только затем операции сложения и вычитания. Подробнее о приоритете операций смотрите в разделе 1.3 данной лабораторной работы. Пример 3.3 демонстрирует приоритет арифметических операций.

Пример 3.3.

double n=2, SCALE = 1.2;

double arg = 25.0 + 60.0*n/SCALE;

В приведенном примере сначала будет выполнена операция умножения, затем деления и, наконец, сложения. То есть порядок вычисления соответствует математическим правилам. Для того чтобы изменить порядок вычисления (поменять приоритеты) используются круглые скобки как показано ниже

double arg = (25.0 + 60.0)*n/SCALE;

Здесь сначала выполняется операция сложения и только затем операции умножения и деления.

Замечание: Специфической для языка С++ является операция определения остатка (%). Операция % (деление по модулю) бинарная, применима к целочисленным операндам. Результат операции – остаток от деления целых чисел. Результаты использования операции % приведены в примере 3.4.

Пример 3.4.

6/4  1; 3/4  0; 3%4  3;

6%4  2; 9%2  1; 9%3  0;

1.2.4. Другие операции языка С++

В разделе 1.2.3. описаны обычные арифметические операции C++. В последствии программах на C++ вы можете встретить одну или несколько операций, перечисленных в табл. 3.1 -3.3. Ниже в краткой форме дана характеристика некоторых операций и указан порядок рассмотрения операции в последующих лабораторных работах.