![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 742; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.8.172 (0.012 с.) |