34
5.2. Операции
1) логическо отрицание
(not)
2) мултипликативни операции
(*, /, div, mod, and, &)
3) адитивни операции
(+, -, or, xor, |)
4) операции за отношения
(=, <>, <, <=, >, >=, in)
Когато приоритетите съвпадат, пресмятането се извършва от ляво на дясно.
Необходимо е да се подчертае, че редът на пресмятането на операндите не е
фиксиран, т.е. възможно е първо да се пресмята десният (а не левият) операнд на
дадена операция. Изключение се прави само в случая за логическите операции and и or,
при които първо се пресмята левият операнд и, ако от неговата стойност може
предварително да се установи крайният резултат, десният операнд не се пресмята.
5.2.1. Аритметични операции
Аритметичните операции са операции над целочислени или реални числа, като
получаваният резултат е целочислен или реален. Видът на получения резултат (реален
или целочислен) зависи от операндите. Ако поне един от двата операнда е реален, то и
другият операнд се превръща в реален преди извършване на операцията. Единствената
операция, която връща реален резултат независимо от типа на операндите си е
реалното деление ('/'). При него и двата операнда се превръщат в реални числа преди
извършване на операцията. Във всички останали случаи (т.е. и двата операнда са
целочислени) се извършват целочислени операции. Тъй като в UniPascal има няколко
целочислени типа, компилаторът превръща преди изпълнение на операцията единия или
и двата операнда в този целочислен тип, чиито диапазон обхваща диапазоните и на двата
операнда, както и на резултата, ако неговият тип е известен.
 Унарни аритметични операции
Операция
Действие
Тип на операнда
Тип на резултата
     + 
тъждествено
  Цял или Real 
Цял или Real
      -
смяна на знака 
  Цял или Real 
Цял или Real
Бинарни аритметични операции
Операция
Действие
Тип на операндите
Тип на резултата
     *
умножение
Цял или Real
Цял или Real
    div
деление
Цял
Цял
   mod
остатък
Цял
Цял
     /
деление
Цял или Real
Real
   +
събиране
Цял или Real
Цял или Real
     -
изваждане
Цял или Real
Цял или Real
5.2.2. иогически операции
иогическите операции се извършат само над операнди от логически тип и техният
резултат е също от логически тип. В UniPascal пресмятането на логическите изрази се
прекратява веднага, след като стане възможно, т.е. в някой случай няма да се пресмятат
и двата операнда на операциите AND или OR. Това е възможно в следните случаи:
*
операцията е AND, левият операнд е false и, следователно, резултатът е
false независимо от стойността на десния операнд;
*
операцията е OR, левият операнд е true и, следователно, резултатът е true
независимо от стойността на десния операнд.
<<  <  GO  >  >>

Вернуться к началу сайта