Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




Лабораторная работа №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.10main(){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);}

Деление нацело

Оператор % используется для расчета остатка от деления нацело. Если вы используете оператор деления (/) для целочисленных данных, то результат деления тоже всегда будет целым числом. Например, при делении 12 на 5 (12/5) вы получите 2, а не 2.4. Дробная часть, равная в данном случае 0.4, при делении целых чисел отбрасывается.

Разумеется, нередко возникает необходимость узнать значение остатка от деления. Пока мы имеем дело с целыми числами, мы не можем использовать значение 0.4, так как это число относится к типу float. Мы же определили результат деления как целое. В этом случае получается, что число 12 состоит из двух чисел 5, а лишняя двойка просто игнорируется. Число 2 в данном случае является остатком от деления нацело, для получения которого и используется оператор %. Остаток от деления нацело также всегда является целым числом.

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





Поделиться с друзьями:


Дата добавления: 2017-03-12; Мы поможем в написании ваших работ!; просмотров: 296 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Свобода ничего не стоит, если она не включает в себя свободу ошибаться. © Махатма Ганди
==> читать все изречения...

2370 - | 2121 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.