русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Приоритет операций и ассоциативность


Дата добавления: 2013-12-23; просмотров: 1481; Нарушение авторских прав


Арифметические выражения.

Int a,b;

Int a,b,c,d;

Операция присваивания.

 

Язык C++ имеет несколько особенностей выполнения операции присваивания, задаваемого символом операции =. При выполнении операции значение операнда справа от знака равенства записывается в переменную, указанную слева от знака.

В отличие от других языков программирования в С++ допускается запись в одном предложении сразу нескольких операций присваивания. Например:

a=b=c=d=145;

Другая особенность операции присваивания в языке С++ - наличие так называемой комбинированной операции присваивания:

переменная операция = выражение

 

Где переменная – это обычная как-то задаваемая переменная.

Операция – это одна из операция, задаваемых знаками: *, /, +, -, % , << , >> , &, ^ , |.

Выражение – любое выражение.

 

Например:

 

a=b=0;

a+=12; // a теперь имеет значение 12

b-=(a+4); // b теперь имеет значение -16

 

Можно ли в языке C++ выполнять сложные арифметические вычисления? Да, но нужно знать, какие правила языка C++ при этом используются. Например, многие выражения содержат более одной операции. Отсюда возникает вопрос, какая операция должна выполняться первой? Рассмотрим такой оператор:

 

int i = 3 + 4*5; //35 или 23?

 

Здесь число "4" является операндом как в операции сложения (+), так и в операции умножения (*). Когда один операнд может участвовать более чем в одной операции, чтобы решить, какая операция должна выполняться первой, в языке C++ применяются правила приоритета операций. Для арифметических операций используется обычная алгебраическая приоритетность, в соответствии с которой умножение, деление и деле­ние по модулю выполняются перед сложением и вычитанием. Таким образом, 3+4*5 означает 3 + (4 * 5), а не (3 + 4) *. 5. Следовательно, ответ будет 23, а не 35.



Порядок выполнения операций можно, разумеется, изменить с помощью круглых скобок. Об­ратите внимание на то, что операции *, / и % имеют одинаковый приоритет. Аналогично сложение и вычитание облада­ют одинаковым, но более низким по сравнению с умножением приоритетом.

Однако в некоторых случаях правил приоритетности недостаточно. Рассмотрим сле­дующий оператор:

 

float j = 120/4*5; // 150 или 6?

 

Число "4" снова является операндом двух операций. Однако операции /и * имеют одинаковый приоритет, поэтому одного приоритета здесь недостаточно, чтобы опреде­лить, что делать в первую очередь: делить 120 на 4 или умножать 4 на 5. А этот порядок имеет значение, так как в первом случае результат равен 150, а во втором — 6. Когда две операции имеют одинаковый приоритет, порядок выполнения операций определяется правилом «слева направо».

Поэтому j=150.0;

 



<== предыдущая лекция | следующая лекция ==>
Операции и выражения. | Поразрядные логические операции.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.003 сек.