вторник, 19 июня 2012 г.

Выражения (основы программирования)


В состав выражений в языке программирования Delphi входят операнды и операторы. Операторы, заключенные между операндами, подразумевают действия, выполняющиеся над операндами. Операндами выражения могут выступать константы, переменные, функции или другие выражения. Представим перечень основных алгебраических операторов (табл. ниже).


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

Пример 1.
b:=a+c; 
b:=a-c; 
b:=a*c; 
b:=a/c; 
b:=a DIV c; 
b:=a MOD c;
Не будем останавливаться на операторах +, -, * и /, поскольку результат их применения вполне очевиден. При использовании оператора DIV получают целую часть результирующего числа b, полученного от деления числа a на число c. К примеру, результатом выражения 13 DIV 10 равно 1При использовании оператора MOD в результате получается остаток b от деления числа a на число b. Например, результатом соотношения  13  MOD  10 является число 3.

Самый простой вид выражения представляется константой или же переменной.

Пример 2.
a:=455.29*i+54; 
n:=m-(sum*(c1+c2+c3)/(4*sred DIV 50));
В процессе вычисления значений выражений необходимо помнить, что операторы обладают разным приоритетом. К примеру, операторы *, /, DIV, MOD выполняются вначале, и лишь потом действуют операторы +,  -То есть, от приоритета  операторов непосредственно зависит, в каком порядке они будут выполняться. Чем выше приоритет оператора, тем раньше других операторов он выполняется. В случае, когда операторы обладают одним и тем же приоритетом, то вначале выполняется оператор, находящийся левее других операторов с одинаковым приоритетом.

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

Пример 3.
a:=(b1+b2)/(m*x*x+n*x*c);
Выражение в скобках выступает в качестве одного операнда, а это значит, что операции над операндами, находящимися внутри скобок, будут выполняться в привычном порядке раньше, чем те же операции, производящимися над операндами, но за скобками. 

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

Тип выражения соответствую типу операндов, составляющих выражения, но в то же время, тип выражения зависит и от операций, которые выполняются над операндами.

Пример 4.
  . . . 
a:=4; 
c:=15; 
b:=a+c; 
  . . .
В приведенном примере оба операнда a и c являются целыми числами. Тогда результат b тоже будет целого типа.

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

Заметка. Необходимо обладать навыками определения типа любого выражения. Определяя тип выражения, имейте в виду, что вид константы определяет ее тип, в то время как, тип переменной программист задает в разделе var. Например, целым типом integer обладают константы вида: 1, 54, -683. Тогда как константы 2.0, 0.65 и 5.4Е-07 имеют вещественный тип real. 

Для наглядности и запоминания в таблице ниже представлены правила, по которым Вы сможете определить тип выражения, руководствуясь типом операндов и видом оператора:




Комментариев нет:

Отправить комментарий