Арифметические выражения
Арифметические выражения
строятся из операндов, арифметических операций и круглых скобок.
В качестве операндов могут быть константы, переменные и функции.
В бесскобочных арифметических выражениях операции выполняются слева направо в соответствии с их приоритетом.
1. * (умножение);
/ (деление);
DIV (деление нацело);
MOD (выделение остатка от деления целых чисел).
2. + (сложение);
- (вычитание).
Изменить порядок выполнения операций можно с помощью круглых скобок. Выражение, заключенное в круглые скобки, выполняется в первую очередь. Например, выражению a/b*c соответствует математическая запись
, а выражению а/(b*с) соответствует запись .Тип арифметического выражения определяется типом входящих в него операндов.
Арифметическое выражение является целым, если все входящие в него операнды целого типа. Результат вычисления целого арифметического выражения – целый.
Если в арифметическом выражении содержится хотя бы один вещественный операнд, то результат – вещественный. Целые операнды в вещественном арифметическом выражении всегда преобразуются к вещественному типу.
Операции целочисленного деления DIV и MOD применимы только к целым числам. Результат их выполнения – целый.
Исключение составляет операция деления с использованием символа ‘/’. Результат выполнения этой операции всегда вещественный, независимо от типа операндов.
Например, значением выражения 2/5 будет вещественное число 0.4.
Примеры вычислений арифметических выражений
Арифметические выражения | Результат | Тип результата | |||
6 + 4 * (5 - 3)
6 + 4 * (5 - 3.0) 7 DIV 2 7 MOD 2 7/2 | 14
14.0 3 1 3.5 | Целый
Вещественный Целый Целый Вещественный |
Стандартные функции
Часто используемые в арифметических выражениях элементарные математические функции оформлены в виде стандартных подпрограмм, которые хранятся в библиотеке Турбо Паскаля (файл с именем TURBO.TPL).
Для правильного обращения к стандартной функции, необходимо записать имя функции, за которым в круглых скобках следует аргумент (параметр). Приоритет вычисления функций выше, чем приоритет арифметических операций.
Ниже представлен набор стандартных функций с указанием типов функции и аргумента. В таблице приняты обозначения: I-целый тип, R- вещественный тип.
Математическая запись |
Запись в Турбо Паскале |
Тип аргумента |
Тип функции |
| x | |
Abs(x) |
I R |
I R |
x2 |
Sqr(x) |
I R |
I R |
sin x cos x arctg x |
Sin(x) Cos(x) Arctan(x) |
I или R |
R |
ex ln x |
Exp(x) Ln(x) |
I или R |
R |
|
Sqrt(x) |
I или R |
R |
p |
Pi |
R |
R |
Выделение целой части аргумента |
Trunc(x) |
R |
I |
Выделение дробной части аргумента |
Frac(x) |
R |
R |
Возведение в степень
В Турбо Паскале отсутствует операция возведения в степень. Реализация этой операции зависит от типа показателя.
Если показатель целого типа, то операция возведения в степень реализуется многократным умножением.
Например:
x4 =>x * x * x * x;
sin2x => sqr(sin(x)).
Если показатель вещественного типа, то пользуются соотношением:, где x>0; a – вещественное число или выражение. Запись в Турбо Паскале имеет вид: xa=>exp(a*ln(x)). Например: .
Примеры программирования арифметических выражений
Математическая запись |
Запись в Турбо Паскале |
|
(a + 12 * b)/(c1 - 1.8E3) |
|
exp((2*sin(4*x)+sqr(cos(x*x)))/(3*x)) |
ln |tg a-sin(a3)| |
ln(abs(sin(al)/cos(al)-sin(al*al*al))) |