Согласие на обработку персональных данных.



04.09.2017
Новая задача Программа вычисления суммы.

03.09.2017
Новое видео Стековый калькулятор и обратная польская запись.

26.08.2017
Новая статья Версии Делфи.

23.08.2017
Новая статья Для кого пишется программа.

13.08.2017
Новая статья Стандарт C++: общие сведения.

Приоритет операций

Основы программирования Основы программирования
Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее...

Если вы внимательно изучили предыдущие разделы, то вы наверняка уже догадались, что выражения могут состоять из нескольких операторов и операндов. Более того, выражения могут состоять из нескольких выражений. Например, в программе могут быть такие выражения:

x := 1 + 2 * 3;

В случае, когда мы имеем дело с математическими операциями (как в примере выше), приоритет операций определяется также как и в математике. То есть более высокий приоритет имеют умножение и деление. А сложение и вычитание имеют менее высокий приоритет. То есть в нашем примере х будет равен 7, так как сначала выполняется умножение, и только потом - сложение.

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

x := (1 + 2) * 3;

В этом случае х уже будет равен 9, так как сначала выполняется вычисление выражения в скобках, и только потом выполняется умножение.

Если в выражении имеется несколько операторов с одинаковым приоритетом, то вычисления выполняются слева направо. Например,

x := 1 + 2 - 3;

Здесь сначала будет выполнено сложение чисел 1 и 2, а затем от результата отнимется число 3. В итоге х будет равно 0.

Однако, как вы помните, кроме арифметических операций бывают и другие, например, операции сравнения. Если в одном выражении встречаются операторы разных типов, то приоритет операции определяется по правилам, описанным в таблице 15.4.

Таблица 15.4. Приоритеты операций.

Оператор Приоритет Категория
not @ - Высший Унарные операторы
* / div mod and shl shr as << >> Второй Операторы умножения
+ - or xor Третий Операторы сложения
< <> > <= >= in is Низший Операторы сравнения

С некоторыми из приведённых в таблице операторов вы пока не знакомы. Ну и ладно. Всему своё время. Пока просто добавьте страницу в закладки. Вернётесь к ней при необходимости. Итак, унарные операции имеют наивысший приоритет, то есть всегда выполняются первыми в выражении. Например, во второй строке кода

у := -2;
х := -у * 2;

сначала знак значения переменной у меняется на противоположный, а потом выполняется умножение. В результате х будет равно 4.

Вторыми выполняются операции умножения, затем операции сложения, а в самую последнюю очередь выполняются операторы сравнения.

Перед домашними заданием рекомендую вспомнить предыдущий урок.

Домашнее задание:

Не создавая программы, определите, какую строку выведет следующий код:
var x, y  : integer;

begin
  y := -4;
  x := -y + 1 + 6 div 2 - 3 * 4;
  if x = y then
    WriteLn('x = y')
  else
    WriteLn('x <> y');
  ReadLn;
end.
Создайте программу с этим исходным кодом и проверьте ваши умозаключения.


Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика