Таблица 1 −
Стандартные математические функции
Запись
функции на Pascal
|
Математическая
запись
|
Тип
аргумента
|
Тип
результата
|
Действие
|
aвs(x)
|

|
integer,
real
|
integer, real
|
модуль
(абсолютное значение) числа х
|
sqr(x)
|

|
integer,
real
|
integer,
real
|
квадрат
числа х
|
sqrt(x)
|

|
integer,
real
|
real
|
квадратный
корень из числа х
|
sin(x)
|

|
integer, real
|
real
|
синус
числа х
|
cos(x)
|

|
integer, real
|
real
|
косинус
числа х
|
аrctаn(x)
|

|
integer, real
|
real
|
арктангенс
числа х
|
ln(x)
|

|
integer, real
|
real
|
натуральный
логарифм числа х
|
ехр(x)
|

|
integer, real
|
real
|
экспонента
числа х, т. е. 2,718х
|
trunc(x)
|
−
|
real
|
integer
|
отбрасывает
дробную часть х
|
round(x)
|
−
|
real
|
integer
|
округляет
число х
|
int(x)
|
−
|
real
|
real
|
целая
чась числа х
|
frac(x)
|
−
|
real
|
real
|
дробная
часть числа х
|
Для записи математических функций,
отсутствующих в перечне встроенных,
используются известные математические
формулы, например:
Математическая
функция
|
Математическая
формула
|
Запись на
языке Pascal
|

|

|
sin(x)/cos(x)
|

|

|
cos(x)/sin(x)
|

|

|
arctan(x/sqrt(1-sqr(x)))
|

|

|
arctan(sqrt(1-sqr(x))/x)
|

|

|
arctan(1/x)
|

|

|
exp(x*ln(a))
|

|

|
ln(x)/ln(10)
|

|

|
ln(x)/ln(a)
|

|

|
(exp(x)-exp(-x))/2
|

|

|
(exp(x)+exp(-x))/2
|
Запись
алгебраических выражений
Алгебраические выражения составляются
из констант, переменных, обращений к
функциям с помощью знаков арифметических
операций и скобок. При этом необходимо
соблюдать ряд правил и рекомендаций:
1 Необходимо учитывать приоритет
операций: сначала выполняется умножение
(знак «*») и деление (знак «/»), затем
сложение и вычитание.
Все знаки арифметических операций,
даже те, которые при корректной
математической записи ставить не
принято (например, как при записи
произведения ab = ab),
необходимо указывать при составлении
выражения на Pascal.
Изменить порядок выполнения операций
можно с помощью скобок:
Математическое
выражение
|
Запись на
языке
Pascal
|
Возможные ошибки
|

|
(a-b)/(c+d)
|
Отсутствие скобок изменит смысл
выражения:
a-b/c+d
~

|

|
(sin(x)+y)/(x*y)
|
1 Пропущенный знак умножения
означает указание на новую (возможно,
несуществующую) переменную xy:
(sin(x)+y)/xy
2 Неправильно расставленные или
пропущенные скобки изменят смысл
выражения:
(sinx+y)/(x*y)
~ введено новое имя sinx;
(sin(x)+y)/x*y
~
−
изменен смысл
|
2 Аргументы функций
необходимо брать в скобки, даже если
задается сложная функция, например:
Математическое
выражение
|
Запись на
языке Pascal
|
Возможные
ошибки
|

|
sqrt(abs(sin(x)));
|
Потеря скобок или неправильный
порядок расположения функций
|

|
sqr(ln(2*x));
|
Потеря скобок, неправильный порядок
следования функций, потеря знака
умножения
|

|
exp(2*sqr(cos(x)));
|
Неправильный порядок следования
функций, потеря знака умножения или
скобок
|
3 При записи на языке
Pascal сложных алгебраических
выражений целесообразно вводить
вспомогательные переменные, которыми,
однако, не следует злоупотреблять.
Например, для записи выражения
можно
ввести промежуточную переменную f1
и только после этого записать f:
f1:=sin(x)/cos(x);
f:=(1+sqr(f1))/(1-2*sqr(f1));
4 Для записи на языке Pascal
экспоненты
,
где e 2,718281828
− основание натурального логарифма,
используется функция exp(x),
например:
Математическое выражение
|
Запись на языке Pascal
|

|
exp(a+b)
|

|
exp(1)
|
5 Определенные
трудности возникают при записи
степенных и показательных выражений,
например,
,
или
.
Следует помнить формулы элементарной
математики:

которые используются при записи
выражений на Pascal:
Математическое
выражение
|
Альтернативная
математическая запись
|
Запись на
языке Pascal
|

|

|
exp(x/2*ln(a+b))
|

|

|
exp(1/3*ln(a/b))
|
6 Следует учитывать
область определения функций, входящих
в выражение. Такие ошибки легче
предотвратить, чем исправлять, так
как они не обнаруживаются компилятором.
Например, выражение
при
записи на языке Pascal в
виде exp(17*ln(x))
вызовет появление ошибки при
отрицательных значениях переменной
х.
Поэтому его лучше записать так:
sqr(sqr(sqr(sqr(x))))*x;.
Другой пример:
Математическое выражение
|
Запись на языке Pascal
|
Альтернативная запись на языке
Pascal
|

|
exp(1/8*ln(x));
|
sqrt(sqrt(sqrt(x)))
|
Общие
стандартные процедуры и функции
Имя и параметры
|
Действие
|
Типы параметров
|
Тип возвращаемого значения
|
Abs(x)
|
абсолютное значение
(модуль) x
|
x
- integer,
real,
complex
|
совпадает
с типом параметра
|
Sqr(x)
|
квадрат x
|
x
- integer,
real,
complex
|
совпадает
с типом параметра
|
Sqrt(x)
|
квадратный корень из x
|
x
- real,
complex
|
совпадает
с типом параметра
|
Sin(x)
|
синус x
|
x
- real,
complex
|
совпадает
с типом параметра
|
Cos(x)
|
косинус x
|
x
- real,
complex
|
совпадает
с типом параметра
|
Ln(x)
|
натуральный логарифм
x
|
x
- real,
complex
|
совпадает
с типом параметра
|
Exp(x)
|
e
в степени x
(e=2.718281...)
|
x
- real,
complex
|
совпадает
с типом параметра
|
Arctan(x)
|
арктангенс x
|
x
- real,
complex
|
совпадает
с типом параметра
|
Power(x,y)
|
x
в степени y
|
x,
y
- real
|
real
|
Conj(z)
|
число, комплексно сопряженное
к z
|
z
- complex
|
complex
|
Carg(z)
|
аргумент комплексного
числа z
(в диапазоне (-Pi, Pi])
|
z
- complex
|
real
|
Round(x)
|
результат округления x
до ближайшего целого
|
x
- real
|
integer
|
Trunc(x)
|
целая часть х
|
x
- real
|
integer
|
Int(x)
|
целая часть х
|
x
- real
|
real
|
Frac(x)
|
дробная часть х
|
x
- real
|
real
|
Ord(x)
|
номер значения порядкового
типа
|
x
- порядкового типа
|
integer
|
Chr(x)
|
символ с кодом х
|
x
- integer
|
char
|
Odd(x)
|
True,
если х
- нечетное, и False
в противном случае
|
x
- integer
|
boolean
|
Inc(x)
|
Увеличивает x
на 1
|
x
- порядкового типа
|
|
Dec(x)
|
Уменьшает x
на 1
|
x
- порядкового типа
|
|
Inc(x,n)
|
Увеличивает x
на n
|
x
- порядкового типа, n
- целого типа
|
|
Dec(x,n)
|
Уменьшает x
на n
|
x
- порядкового типа, n
- целого типа
|
|
Pred(x)
|
предыдущее значение
порядкового типа
|
x
- порядкового типа
|
совпадает
с типом параметра
|
Succ(x)
|
следующее значение
порядкового типа
|
x
- порядкового типа
|
совпадает
с типом параметра
|
Random(x)
|
случайное целое в диапазоне
от 0 до x-1
|
x
- integer
|
integer
|
Random
|
случайное вещественное в
диапазоне [0..1)
|
|
real
|
Include(s,x)
|
включает элемент x
во множество s
|
s
- множество,
x
- элемент
|
|
Exclude(s,x)
|
исключает элемент x
из множества s
|
s
- множество,
x
- элемент
|
|
|