Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Нейбауэр А. Моя первая программа на С.doc
Скачиваний:
128
Добавлен:
02.05.2014
Размер:
3.75 Mб
Скачать

Глава 6. Операторы

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

В процессе обработки программа превращает данные, которые мы вводили в компьютер, в информацию, которую компьютер представляет нам. Различие между данными и информацией трудноуловимо, но очень существенно. «Данные» — это, так сказать, исходный материал, символы и числа, которые не могут быть использованы как конечный продукт. «Информация» — это конечный продукт, ради получения которого и была написана программа.

Превращение данных в информацию может осуществляться различными способами. Для чисел, например, обработка зачастую включает некоторые математические операции. Скажем, вам надо умножить стоимость заказанных товаров на ставку налога, а затем добавить полученную сумму налога к сумме заказа. Эти две операции показаны на рис.6.1, они могут быть описаны как:

налог на продажи = стоимость заказа Ф ставка налога

общая сумма заказа = стоимость заказа + сумма налога

Рис. 6.1. Процесс вычисления общей суммы заказа

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

Замечания по Си++

Си и Си++ используют математические операторы сходным образом. Однако благодаря перегрузке, Си++ может использовать определенный оператор с различными типами данных. В главе 10 вы узнаете, как использовать оператор + в Си++ для соединения двух строк.

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

При математических вычислениях используются следующие арифметические операторы:

Оператор

Функция оператора

+

сложение

вычитание

*

умножение

/

деление

%

получение остатка от деления нацело

Обратите внимание, что процедура умножения обозначается символом «звездочка» (а не символом «x»), а процедура деления — символом «прямая косая черта» (а не обратная «\»).

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

sales_tax = 4500;

напротив, величину накладных расходов требуется вычислить. При записи математических операций имя переменной всегда помещают слева от знака «равно», а арифметические операторы — справа:

sales_tax = amount * tax_rate;

price = cost + shipping + insurance;

per_unit = total / count;

Эти инструкции говорят компилятору, что следует выполнить три операции:

  • присвоить переменной sales_tax значение, полученное в результате умножения значения переменной amount на значение переменной tax_rate;

  • присвоить переменной price значение, полученное из суммы значений трех переменных: cost, shipping и insurance;

  • присвоить переменной per_unit значение, полученное в результате деления total на count.

Компьютер выполнит математические операции, указанные в правой части, а потом присвоит полученное значение переменной в левой части. Что касается правой части выражения, то она может содержать любые комбинации переменных, констант и литералов, например:

sales_tax = amount * 0.06;

price = 56.90 + shipping + 7.87;

per_unit = 156.65 / 12.50;

Листинг 6.1 демонстрирует использование операторов в программе. В приведенном фрагменте необходимо ввести имя и адрес покупателя, а также стоимость его заказа. Затем программа рассчитывает стоимость транспортировки (10процентов от суммы заказа) и налог на продажи (6 процентов от суммы заказа). Наконец, весь список накладных расходов отображается на экране с помощью функций puts() и printf().

Листинг 6.1. Программа расчета и отображения накладной.

/*invoice.c*/

#define TAX_RATE 0.06

#define SHIPPING 0.10

main()

{

char name[15], address[20], city[15],

state[3], zip[6];

float order, total, tax, ship;

printf("Имя покупателя: ");

gets(name);

printf("Адрес: ");

gets(address);

printf("Город: ");

gets(city);

printf("Штат: ");

gets(state);

printf("Индекс:");

gets(zip);

printf("Сумма заказа: ");

scanf("%f", &order);

tax = order * TAX_RATE;

ship = order * SHIPPING;

total = order + tax + ship;

puts("\n\n\n\n");

puts(" НАКЛАДНАЯ\n");

printf("%s\n%s\n%s, %s %s\n", name, adress, city, state, zip);

printf("\t\t\t\t%-10s\t%10.2f\n", "Заказ:", order);

printf("\t\t\t\t%-10s\t%10.2f\n", "Налог:", tax);

printf("\t\t\t\t%-10s\t%10.2f\n",

"Транспортировка:", ship);

printf("\t\t\t\t\t\t______________\n);

printf("\t\t\t\t%-10s\t%10.2f","Всего: ",total);

}