Выражение – это синтаксическая единица языка, определяющая способ вычисления некоторого значения. Выражения в языке Паскаль формируются из констант, переменных, функций, знаков операций и круглых скобок.
Функции – заранее разработанные подпрограммы, которые можно использовать как готовые объекты. Различают стандартные функции и функции, написанные программистом самостоятельно.
В таблице 3 рассмотрены наиболее часто используемые арифметические функции. Аргументы арифметических функций могут быть величинами целого и вещественного типа.
Таблица 3. Арифметические функции
Функция | Назначение | Тип результата |
Abs(x) | Абсолютное значение аргумента | Совпадает с типом X |
Arctan(x) | Арктангенс аргумента | Вещественный |
Cos(x) | Косинус аргумента | Вещественный |
Exp(x) | ex | Вещественный |
Frac(x) | Дробная часть числа | Вещественный |
Int(x) | Целая часть числа | Вещественный |
Ln(x) | Натуральный логарифм | Вещественный |
Pi | Значение величины p=3.141592653... | Вещественный |
Sin(x) | Синус аргумента | Вещественный |
Round(x) | Округление аргумента | Целый |
Trunc(x) | Выделение целой части | Целый |
Sqr(x) | Квадрат аргумента | Совпадает с типом Х |
Sqrt(x) | Квадратный корень аргумента | Вещественный |
{! Аргументы тригонометрических функций задаются в радианах. Аргумент заключается в скобки}.
|
|
Результат выполнения любой операции в выражениях зависит от типов операндов (переменных, констант, функций). Здесь мы рассмотрим только арифметические операции и, соответственно, тип результата может быть целым или вещественным.
Для того чтобы описать последовательность, в которой должны стоять операнды в выражениях и в которой должны расставляться скобки, целесообразно упорядочить операции по уровням.
В таблице 4 указаны арифметические операции и их уровни, а также типы результатов.
Таблица 4. Арифметические операции
Уровень | Операция | Тип операндов | Тип результата | Значение |
* * * / / / div mod | Real, real Integer, integer Real, integer Real, real Integer, integer Integer, real Integer, integer Integer, integer | Real Integer Real Real Real Real Integer Integer | Умножение Умножение Умножение Деление Деление Деление Деление без остатка Остаток от деления | |
+,- +,- +,- | Integer, integer Real, real Integer, real | Integer Real Real | Сложение и вычитание |
Правила приоритетности операций в выражениях:
1.Операции уровня i выполняются до выполнения операций j, j > i.
2.Операции одного уровня выполняются поочередно слева направо.
3.Операции, заключенные в круглые скобки, выполняются раньше операций, записанных за скобками.
Эти правила действуют для всех типов выражений (арифметических, логических, строковых).
|
|
Последовательность действий, выполняемых при вычислении выражений:
1. Вычисления в круглых скобках.
2. Вычисления значений функций.
3. Унарные операции (-, not).
4. Операции типа умножения (*, /, div, mod, and);
5. Операции типа сложения (+, -, or, xor)
6. Операции отношения (=, <>, >, <, >=, <=, in)
Рассмотрим примеры записи арифметических выражений:
№ | Обычная запись | Запись на Паскале |
Прокомментируем примеры:
Для указания последовательности выполнения действий в числителе и знаменателе появляются круглые скобки (примеры. 1,8).
Из-за отсутствия операции возведения в степень при записи выражений со степенями рекомендуется:
а) возведение в целую положительную степень заменять умножением (примеры 3,8)
б) возведение в целую отрицательную степень заменять делением на произведение сомножителей (пример 3)
в) для четных целых положительных степеней использовать функцию SQR (примеры 2, 4)
г) во всех других случаях возведение в степень вычисляется как экспонента от показателя степени, умноженного на натуральный логарифм степени (примеры 7, 9, 10).
Отсутствие функций tg и ctg приводит к усложнению выражений (примеры 3, 4, 5, 10).
Если аргумент у функции tg или ctg достаточно сложное выражение (примеры 5, 10), рекомендуется ввести новую переменную для обозначения аргумента, например, фрагмент программы для примера 10 можно записать так:
............
t: = cos(exp(1/5*ln(x/y))); { аргумент тангенса }
Z: = sin(t)/cos(t); { значение выражения присвоено переменной Z }
............
В данном случае действует общая рекомендация при программировании формул об обозначении повторяющихся выражений.
Примеры использования операций mod и div:
Формула | Результат | Формула | Результат |
13 div 4 | 15 mod 4 | ||
-13 div 4 | -3 | -15 mod 4 | -3 |
13 div –4 | -3 | 15 mod –4 | |
-13 div –4 | -15 mod –4 | -3 |
{! При записи в программе операции div и mod слева и справа сопровождаются пробелами}.