Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Простейшие арифметические операцииСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Определены для данных арифметических типов, т.е. вещественных (float, double) и целых (int, short, long, char и соответствующих им беззнаковых данных unsigned int, unsigned short, unsigned long, unsigned char). Действие этих операций - соответствующее арифметическое действие. Результат операции - результат арифметического действия. Одноместные арифметические операции имеют один операнд. К ним относятся операции "+" и "-", которые меняют знак операнда. Результатом этих операций является значение операнда с противоположным знаком. Двуместные арифметические операции имеют два операнда. К ним относятся операции +, -, *, / и %. Каждая из этих операций выполняет соответствующее действие, результат которого и является результатом операции. Операция + вычисляет сумму операндов, операция - вычисляет разность, операция * вычисляет произведение, операция / вычисляет частное от деления вещественных операндов или целую часть частного от деления целых операндов, операция % вычисляет остаток от деления первого операнда на второй. Арифметические операции в выражениях выполняются слева направо в соответствии с общепринятыми приоритетами. Приоритет можно изменить с помощью скобок.
Примеры выражений с арифметическими операциями: a + b%c (a + b)/3*5 Операция присваивания Операция присваивания выполняет действия по занесению результатов выражения, стоящего справа от знака присваивания = в область памяти, определяемую выражением, стоящим слева от знака присваивания. Чаще всего слева от знака присваивания стоит простая переменная. При выполнении присваивания происходит преобразование типа результата правого выражения к типу левого операнда. Результат операции присваивания - значение присвоенной величины. Поскольку присваивание является операцией, а не оператором, то в одном выражении допускается несколько присваиваний. В этом случае они выполняются справа налево Например: ab = (c = d+5) * 6 Присваивание имеет самый низкий приоритет из всех операций. Оператор-выражение Выражение, оканчивающееся точкой с запятой, является оператором, т.е. наименьшей элементарной частью программы.
оператор = выражение ";"
Пример: ab = (c = d + 5) * 6; /* это оператор */
В дальнейшем будем строго придерживаться этой терминологии, т.е. выражением будем называть совокупность операндов, связанных операциями, а оператором - выражение заканчивающейся точкой с запятой. Использование в выражениях операндов разных типов При участии в арифметических операциях операндов разных типов, перед выполнением операции осуществляется преобразование типов так, чтобы не было потери точности. Затем осуществляется сама операция. Типы данных в порядке возрастания точности:
char, short, int, long, float, double.
Пример: int a, c; float d, e; e = d*(c+e); /* c будет преобразовано в float */ a = 'A' + 20; /* 'A' будет преобразовано в int */
6.5. Операции преобразования типов В некоторых случаях правила преобразования типов не позволяют получить верный результат, например:
int a, b; float c; a = 7; b = 14; c = a/b; /* результат 0 */
Для получения правильного результата можно поступить так c = a; c = c/b; А можно применить операцию преобразования типа: преобразование_типа = "("имя_типа ")" выражение
имя_типа - название любого типа, в том числе и заданного программистом. Для нашего примера применение операции преобразования типа будет выглядеть так:
c = (float)a / (float)b;
Операция преобразования типа имеет приоритет более высокий, чем арифметическая операция. Стандартные математические функции В любых арифметических выражениях можно использовать стандартные математические функции, которые можно применять к любым числовым операндам. При использовании этих функций в программу необходимо включить файл <math.h>, т.е. необходимо использовать директиву #include <math.h>. При этом будут определены следующие функции:
sin(x) - синус (аргумент в радианах); cos(x) - косинус (аргумент в радианах); tan(x) - тангенс (аргумент в радианах); asin(x) - арксинус (результат в радианах); acos(x) - арккосинус (результат в радианах); atan(x) - арктангенс (результат в радианах); sinh(x) - гиперболический синус; cosh(x) - гиперболический косинус; tanh(x) - гиперболический тангенс; log10(x) - десятичный логарифм; pow10(x) - возведение числа 10 в степень x; log(x) - натуральный логарифм; exp(x) - экспонента; sqrt(x) - квадратный корень; pow(x,y) - возведение x в степень y; fabs(x) - абсолютная величина для double; abs(x) - абсолютная величина для int. Простейшие функции, определяемые программистом Довольно часто программист сталкивается с тем, что стандартных функций, нужных ему, нет. Например, в библиотеке Turbo C нет функции для вычисления котангенса. В этом случае программист сам может задать нужную ему функцию. Функция должна быть оформлена специальным образом. Описание функции начинается заголовком:
заголовок_функции = тип имя_функции"("[тип параметр {"," тип параметр}]")"
Например, заголовок функции вычисления котангенса:
double cotan (double x)
За заголовком функции должно следовать тело функции, т.е. операторы, реализующие функцию. При этом они оформляются подобно операторам основной программы, т.е. тело функции начинается с "{" и заканчивается "}". Для возврата в вызывающую функцию и для передачи ей вычисленного значения используется оператор return.
"return " [выражение];
Выражение должно быть того же типа, что и тип функции. Его значение будет передано вызывающей программе в качестве значения функции. Например, функцию для вычисления котангенса можно записать так:
double cotan(double x) { double ctg; ctg = 1.0 / tan(x); return ctg; }
или
double cotan(double x) { return 1.0 / tan(x); }
После того как функция определена, она может быть использована, так же как и стандартные функции Си, например можно записать:
a = b * cotan(c);
При этом значение c будет передано функции в качестве параметра x, затем будет вычислено выражение 1/tan(x) и передано в вызывающую программу в качестве значения функции cotan. В функциях могут находится любые операторы языка и в любом количестве. Собственные функции программиста в простейшем случае могут быть помещены в тот же файл, в котором находится основная программа, и должны располагаться в файле до того как они будут использоваться. Если это по какой-либо причине не устраивает программиста, то он может в начало файла поместить прототипы всех используемых функций, т. е. заголовки функций, оканчивающихся точкой с запятой. В этом случае сами функции могут располагаться в любом месте файла. Дополнительные арифметические операции Язык Си имеет ряд уникальных операций, как правило, отсутствующих в других языках программирования. К этим операциям относятся операция увеличения на единицу ++ и операция уменьшения на единицу. Например:
a = a + 1; эквивалентно a++; или ++a;
Выполнение операций "++" или "--" вызывает увеличение или уменьшение на единицу значения соответствующей переменной. Результат операций может быть различным в зависимости от того, где находятся знаки операций: если используется постфиксная операция, т.е операция ++ или -- записана после переменной, то результатом операции будет значение переменной до увеличения или уменьшения. Иными словами переменная сначала используется в выражении, а затем увеличивается или уменьшается. Например:
a = 4; b = (a++) * 5; /* здесь b = 20 */
Если используется префиксная операция, т. е. операция ++ или -- записана перед переменной, то результат операции - значение переменной после увеличения или уменьшения. Иными словами переменная вначале увеличивается или уменьшается, затем используется в выражении. Например:
a = 4; b = (++ a) * 5; /* здесь b = 25 */ Приоритет операций выше, чем у * или /, но все равно рекомендуется ставить скобки, чтобы не запутаться.
|
||||
Последнее изменение этой страницы: 2016-04-08; просмотров: 732; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.153.232 (0.007 с.) |