- •Лабораторная работа №4 операторы
- •Арифметические операторы
- •Деление нацело
- •Типыданныхи операторы
- •Выражения
- •Приоритет операторов и порядок вычислений
- •Используемые алгоритмы обработки данных
- •Счетчики
- •Операторы инкремента
- •Аккумуляторы
- •Операторы присваивания
- •Присваивание начального значения
- •Проектирование программы
- •Остерегайтесь логических ошибок
- •Ищите образцы
- •Диагностические проблемы
Лабораторная работа №4 операторы
В процессе обработки программа превращает данные, которые мы вводили в компьютер, в информацию, которую компьютер представляет нам. Различие между данными и информацией трудноуловимо, но очень существенно. «Данные» — это, так сказать, исходный материал, символы и числа, которые не могут быть использованы как конечный продукт. «Информация» — это конечный продукт, ради получения которого и была написана программа.
Превращение данных в информацию может осуществляться различными способами. Для чисел, например, обработка зачастую включает некоторые математические операции. Скажем, вам надо умножить стоимость заказанных товаров на ставку налога, а затем добавить полученную сумму налога к сумме заказа. Эти две операции показаны на рис.1, они могут быть описаны как:
налог на продажи = стоимость заказа Ф ставка налога
общая сумма заказа = стоимость заказа + сумма налога
Рис.1. Процесс вычисления общей суммы заказа
Для того чтобы выполнить вычисления, превращающие данные в информацию, необходимы операторы. Оператором называется символ, который говорит компьютеру, как следует обрабатывать данные. В этой главе вы познакомитесь с арифметическими операторами, операторами приращения и операторами присваивания.
Арифметические операторы
При математических вычислениях используются следующие арифметические операторы:
Оператор |
Функция оператора |
+ |
сложение |
– |
вычитание |
* |
умножение |
/ |
деление |
% |
получение остатка от деления нацело |
Обратите внимание, что процедура умножения обозначается символом «звездочка» (а не символом «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;
Листинг 1демонстрирует использование операторов в программе. В приведенном фрагменте необходимо ввести имя и адрес покупателя, а также стоимость его заказа. Затем программа рассчитывает стоимость транспортировки (10процентов от суммы заказа) и налог на продажи (6 процентов от суммы заказа). Наконец, весь список накладных расходов отображается на экране с помощью функций puts() и printf().
Листинг 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);
}