Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль_Конспект лекций.doc
Скачиваний:
41
Добавлен:
27.05.2015
Размер:
1.39 Mб
Скачать

Лекция4. Выражения

4.1 Порядок выполнения операций

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

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

Порядок выполнения операций определяется их старшинством, или приоритетом. Ниже в таблице 4.1 приведены приоритеты операций. Первый уровень приоритетов является наивысшим, а четвёртый – низшим.

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

Операция

Приоритет

Обращение к функции f(∙)

Первый

not

Второй

*, /, div, mod, and, shl, shr

Третий

+, -, or, xor

Четвёртый

=, <>, <, >, <=, >=, in

Пятый

При определении порядка выполнения операций следует учитывать следующее:

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

  • операнд, находящийся между двумя операциями с равными приоритетами, относится к той операции, которая находится слева от него;

  • выражение, заключенное в скобки, перед использованием вычисляется как отдельный операнд;

  • любая операция внутри скобок производится раньше операции за скобками;

  • операции с равным приоритетом выполняются слева направо, если этот порядок не изменён с помощью круглых скобок.

4.2 Выражения целого типа

В целых выражениях допускаются следующие операции:

+ - сложение;

- - вычитание;

* - умножение;

div - целочисленное деление;

mod - остаток от целочисленного деления величины a на b:

a mod b = a - ((a div b) * b).

Примеры (использование операций mod и div):

t:=5 div 2; { t =2 }

z := 5 mod 2; { z = 1 }

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

Примеры (выражения):

(а + b)*с - m div 3

c*2 + k*k-3*a

((а + b) mod (d * f)) * 12

При составлении выражений следует руководствоваться вышеуказанными правилами. Однако, если вы сомневаетесь в порядке выполнении операций, то используйте скобки. Трудно ошибиться, используя лишние скобки, но отсутствие скобок очень часто приводит к ошибкам.

4.3 Вещественные выражения

В выражениях вещественного типа допускаются следующие операции:

+ - сложение;

- - вычитание;

* - умножение;

/ - деление.

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

Необходимо отметить, что операция возведения в степень в Object Pascal отсутствует, но для вещественных выражений эта проблема легко решается, если воспользоваться свойствами функций Exp (экспонента) и Ln (натуральный логарифм). Из математики известны тождества:

и

Отсюда следует, что

.

Для вычисления логарифмов по другим основаниям можно применять формулу:

.

Здесь a > 0 и a ≠ 1. Приведём пример. Пусть мы имеем математическое выражение:

.

Средствами языка Object Pascal это выражение следует записать так:

(x*x-a)/(sqr(sin(x)/cos(x))-sin(x)*sin(x)*sin(x))*exp(-b*b/x) -

exp((x*x-b)*ln(a))*(b-x)/(a-x*x*x).

Хотя вещественный тип относится к скалярным, но на переменные и выражения данного типа накладываются некоторые ограничения. В частности, к вещественным аргументам нельзя применить функции порядка Pred и Succ. Нельзя использовать вещественные значения при индексации массивов, в качестве параметра цикла типа for и т. п.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]