Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Стандартные (встроенные) функции

Приоритет операций и отношений в выражениях

В математике, как всем известно еще со школы, всегда сначала выполняется умножение и деление, и лишь затем – сложение и вычитание.

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

Приоритет Операции и отношения
  @, - и +(унарные), NOT
  *, /, DIV, MOD, AND, SHR, SHL
  +, -, OR, XOR
  IN, >, <, =, <>, >=, <=

Порядок вычисления выражения определяется следующим образом:

· если в выражении расставлены скобки, то чем меньше глубина вложенности скобок, тем позже выполняются заключенные в них операции;

· если скобок нет, то в первую очередь выполняются операции с более высоким приоритетом;

· если в выражении несколько операций имеют одинаковый приоритет, то они выполняются по порядку слева направо.

Примеры:

2 + 3 * 4 – 6 / (2+1) сначала выполняется умножение, затем вычисляется скобка, затем выполняется деление, и, наконец, операции без скобок и с приоритетом 3: сначала сложение, затем вычитание. Результат равен 12.

(7+2)/(2+1)-6*9/(3*3) сначала выполняются операции в скобках, затем деление левое, умножение и деление правое. В последнюю очередь – вычитание. В результате получаем: 9/3-6*9/9 = 3-54/9 = 3-6 = -3

(x > 4) and (3 = y) сначала выполняется левая скобка, затем правая, и в завершение – логическая операция AND. При отсутствии скобок будет ошибка: т.к. AND имеет приоритет 2, а операции отношения – 3, то компилятор при отсутствии скобок попытается выполнить операцию 4 and 3, что является некорректным.

При построении выражений на языке Паскаль программист может воспользоваться одной из существующих стандартных функций. Ниже приводится список основных из таких функций.

Функция Входные данные Выходные данные Описание
Abs(X) целое веществ целое веществ Возвращает модуль числа X
Sqr(X) целое веществ целое веществ Возвращает квадрат числа X
Sqrt(X) целое веществ вешеств веществ Возвращает корень числа X
Succ(X) целое символь целое символь Возвращает значение, следующее за X
Pred(X) целое символь целое символь Возвращает значение, предшествующее X
Sin(X) целое веществ веществ веществ Возвращает синус числа X, где X – угол в радианах
Cos(X) целое веществ веществ веществ Возвращает косинус числа X, где X – угол в радианах
Arctan(X) целое веществ веществ веществ Возвращает арктангенс числа X
Pi   веществ Возвращает число Пи
Ln(X) целое веществ веществ веществ Возвращает натуральный логарифм числа X
Exp(X) целое веществ веществ веществ Возвращает число e в степени X
Round(X) веществ целое Возвращает число, равное целой части числа X – округление по правилам математики
Trunc(X) веществ целое Возвращает число, равное целой части числа X
Int(X) веществ веществ Возвращает число, равное целой части числа X
Frac(X) веществ веществ Возвращает число, равное дробной части числа X
Odd(X) целое веществ True, если число нечетное
Ord(C) символь целое Возвращает число, соответствующее символу C в ASCII-таблице
Chr(K) целое символь Возвращает символ, соответствующий ASCII-коду числа K
UpCase(C) символь символь Возвращает число, соответствующее символу C в ASCII-таблице

 

Примеры:

sqrt (9) + sqr (2) * trunc (pi)

Сначала выполняется умножение. Для этого необходимо выполнить функции sqr(2) – возведение в квадрат (результат 4), и trunc(pi) – взятие целой части. При этом в качестве аргумента второй функции выступает другая функция – pi. В результате получаем 3 (целая часть от 3.14). Перемножая 4 и 3, получаем 12.

Следующая операция – сложение. Здесь сначала выполняется функция sqrt(9) – извлечение корня (результат 3). В итоге получаем, что представленное выше выражение возвращает результат 15.

Теперь посмотрим, какого типа будет полученный результат. Функция sqr возвращает целый результат, т.к. аргумент целого типа. Функция trunc всегда возвращает целое. Произведение двух целых дает целое. Функция sqrt всегда возвращает вещественное значение. Складывая целое и вещественное, получаем вещественное. Таким образом, результатом нашего выражения будет вещественное значение 15.0.

(-7+sqrt(sqr(7)-4*3*2))/(2*3)

Сначала выполняются операции в скобках, с учетом приоритета операций в каждой из них. В результате получим (-7+sqrt(sqr(7)-24))/(6). Затем вычитаем из квадрата 7 значение 24 и из результата вычисляем корень. Получим (-7+sqrt(49-24))/(6), далее (-7+5)/(6). Наконец, произведя последние вычисления, получим -2/6, или -1/3.

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

sqrt(5+sqr(2)) > 4 – sqr – квадрат, т.е. sqr(2)=4. 5+4=9. sqrt – корень, т.е. sqrt(9)=3. В итоге получаем 3>4, что не является истиной, следовательно, результатом данного выражения будет False.

odd(sqr(round(x/2))), при x=5

Подставляем в формулу вместо x число 5. Получаем 5 / 2 = 2.5. Функция round производит округление числа по законам математики, следовательно, round (2.5) = 3. Далее результат возводим в квадрат – sqr (3) = 9. Наконец, функция odd(x) возвращает True, если целое число x является нечетным, и False, если x – четное (т.е. проверка числа на нечетность). Следовательно, odd(9) = True. Результат выражения – True.

Указать порядок выполнения операций: true or false and true.

Согласно приоритетам, сначала выполнится операция AND и лишь затем – OR. Результатом выражения станет True.

Указать порядок выполнения операций: not b = a and c xor d.

Согласно приоритету, сначала выполнится операция NOT, затем AND, далее XOR и лишь затем «=». Обратите внимание, что все перечисленные операции имеют разный приоритет.

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


Дата добавления: 2014-01-06; Просмотров: 447; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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