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

В этом разделе приведены основные математические функции, встроенные в системную библиотеку Турбо Паскаль. Стандартные функции служат для выполнения элементарных математических расчетов, часто требуемых при написании программ. Разработчики Паскаля стремились сделать его программное ядро максимально компактным, поэтому в него не вошел ряд функций, обычно имеющихся в других языках, таких, как вычисление максимума и минимума, возведение числа в произвольную степень и др. Физически коды стандартных функций хранятся в стандартной библиотеке Паскаля – файле с именем TURBO.TPL. Все функции оформляются одинаково: после имени функции следует ее аргумент, заключенный в круглые скобки. Если аргументов несколько, они разделяются запятыми. Информацию об основных стандартных функциях удобно представить в виде таблицы:

Таблица 1.6

Математическая запись Запись на языке Турбо Паскаль Пояснение Тип аргумента и результата функции
|x| abs(x) модуль аргумента x Integer или Real
x2 sqr(x) квадрат аргумента x аргумент – I или R, результат – 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
Основные математические функции (стандартные функции) - student2.ru sqrt(x) квадратный корень от аргумента x аргумент - I или R, результат – R
p pi функция без аргументов, вернет число p R
  trunc(x) функция отбрасывает дробную часть аргумента, аргумент не округляется аргумент R, результат L
  frac(x) функция выделяет дробную часть своего аргумента R
  round (x) округление вещественного числа до ближайшего целого аргумент R, результат L
  Int(X) возвращает число, равное целой части числа аргумента. R
  Random(X) Возвращает случайное целое число в диапазоне 0..X. Если аргумент опущен (Random), то возвращается случайное вещественное число от 0 до 1. результат I, если аргумент I; результат R, если аргумент опущен
  Inc(X,Y) Увеличивает значение числа X на Y. Если число Y не указано, то увеличение происходит на 1. I
  Dec(X,Y) Уменьшает значение числа X на Y. Если число Y не указано, то уменьшение происходит на 1. I


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

Функции возведения в произвольную степень в Турбо Паскале нет. Используйте многократное умножение для возведения в целочисленную степень, либо функции Exp и Ln для возведения в вещественную степень.

Перед использованием Random в программах рекомендуется сначала инициализировать генератор псевдослучайных чисел процедурой Randomize. В противном случае при каждом запуске программы будет генерироваться одна и та же последовательность случайных чисел.

Пример. Вывод на экран 5 случайных чисел в диапазоне -10..10.

var i: integer;begin randomize; for i:=1 to 5 do writeln(random(21)-10);end.

Примеры

1) возвести x в пятую степень

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

2) возвести величину a в произвольную степень x

Так как в Паскале нет функции возведения в произвольную степень, воспользуемся формулой ax=ex*ln a

a:=2.5; x:=0.25;

ax:=exp(x*ln(a));

обратите внимание, что все скобки в выражении должны быть парными. Или:

Основные математические функции (стандартные функции) - student2.ru = exp(1/3ln(x)).

3) вычислить sin2x => sqr(sin(x)).

Нельзя писать sin*x или sin x, после имени функции может следовать только аргумент в круглых скобках.

4) вычислить k=tg(t). Т.к. функции tg нет, пишем k:=sin(t)/cos(t);

Основные математические функции (стандартные функции) - student2.ru

5) вычислить:

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

Правильная запись: y:=(a+b)/2; Неправильно y:=a+b/2, т.к. это означает .

Основные математические функции (стандартные функции) - student2.ru

6) В записи выражений нельзя пропускать знак *, как часто делается в математике.

b2-4ac -> sqr(b)-4*a*c

Тип выражения

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

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

Пример:

var i,j,x:integer;

f:real;

. . .

i+4*j целый тип выражения, можно записать результат в целую переменную.

f+i*0.5 вещественный, результат пишется в вещественную переменную.

Оператор x:= i+4*j будет синтаксически правильным, а x:= f+i*0.5 будет неверным. Среда разработчика при компиляции сообщит об ошибке несовместимости типов.

Операция деления / в Паскале всегда дает вещественное число. Для деления целых чисел с целым результатом (остаток отбрасывается) используйте div, для взятия остатка от деления двух целых – mod.

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

Наши рекомендации