Round(x) - округленное до целого вещественное число, преобразованное к типуLongInt

6. Sqr(x) - квадрат числа

7. Sqrt(x) - квадратный корень

8. Exp(x) - экспонента

9. Ln(x) - натуральный логарифм

10. Pi - число пи

11. Sin(x) - синус

12. Cos(x) - косинус

13. Arctan(x) - арктангенс

Все остальные математические функции можно получить, пользуясь этим основным набором: например, десятичный логарифм - Ln(x)/Ln(10), тангенс - Sin(x)/Cos(x) и т.д. Аргументы функций могут быть любыми арифметическими выражениями и задаются в круглых скобках после имени функции, аргументы функций Sin и Cos выражаются в радианах. Вычислим квадрат синуса 70 градусов : Sqr(Sin(Pi/180*70)) .

При вычислении математических функций может происходить ошибка Floating point overflow – например, при использовании функций Sqr или Exp. Кроме того, при вычислении логарифма неположительного числа, квадратного корня отрицательного числа и применении функций Trunc и Round к слишком большому по абсолютной величине числу происходит ошибка номер 207: Invalid floating point operation.

Кроме перечисленных выше математических функций Паскаль предоставляет еще несколько полезных числовых функций и процедур разного назначения:

14. High(целый тип) - возвращает наибольшее возможное значение данного типа.

15. Low (целый тип) - возвращает наименьшее возможное значение данного типа.

16. SizeOf(тип)

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

17. Random(Range:Word) - возвращает целое случайное число в диапазоне от 0 до Range-1.

18. Random - возвращает вещественное случайное число в из отрезка [0,1].

19. Randomize - процедура, инициализирующая генератор случайных чисел, используя текущее системное время.

Выведем несколько случайных чисел в диапазоне от 0 до 99 :

 

Begin

Randomize;

WriteLn(Random(100));

WriteLn(Random(100));

WriteLn(Random(100));

End.

 

При первом запуске программы она вывела числа13,38,48, при втором запуске -63,99,6, при третьем запуске - 23,87,92. Это действие процедуры Randomize - поскольку при каждом запуске системное время, которое отсчитывает операционная система, было различным, мы каждый раз получали различные последовательности случайных чисел. Теперь исключим из программы оператор Randomize; и запустим ее несколько раз - каждый раз мы будем получать тройку чисел 0,3,86. Обратите внимание, что процедура используется в операторе вызова, а функция используется в выражении. Запись Random(100);неверна, поскольку Random - это функция, но также неверна и записьWriteLn(Randomize);. Можно считать, что различие между процедурой и функцией состоит в том, что процедура выполняет некоторую последовательность действий, а функция вычисляет некоторое значение. Заметим, что Read и Write - это тоже процедуры. Для работы с внутренним двоичным представлением двухбайтовых целых чисел (типа Word или Integer) существуют функции

20. Lo(x) - возвращает младший байт аргумента.

21. Hi(x) - возвращает старший байт аргумента.

22. Swap(x) - меняет местами младший и старший байты. Для целочисленных переменных определены процедуры

23. Inc(x)

Inc(x,d)

24. Dec(x)

Dec(x,d)

где x - имя переменной, d - любое целочисленное выражение. Процедура Incувеличивает значение переменной на d, а процедура Dec - уменьшает на d; второй аргумент этих процедур можно не задавать, тогда он будет принят равным 1. Например, вместо операторов a:=a+3; b:=b-1; c:=c+a+b; мы могли бы написать Inc(a,3); Dec(b); Inc(c,a+b); и такой способ записи был бы предпочтительней.