Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник.docx
Скачиваний:
31
Добавлен:
21.12.2018
Размер:
2.15 Mб
Скачать

Арифметические функции

Следующие две функции можно применять к целым параметрам, и в этом случае они возвращают целый результат. Этим функциям можно также передавать вещественный параметр, получая вещественный результат.

abs(выражение) – абсолютное (т.е. положительное) значение параметра.

abs(-2), abs(0), abs(2). Результат: 2, 0, 2

abs(-2.0), abs(0.0), abs(2.0). Результат: 2.0, 0.0, 2.0

sqr(выражение) – квадрат параметра.

sqr(-2), sqr(0), sqr(2). Результат: 4, 0, 4

sqr(-2.0), sqr(0.0), sqr(2.0). Результат: 4.0, 0.0, 4.0

Остальные арифметические функции воспринимают целый или вещественный параметр; результат в любом случае будет вещественным:

sqrt(выражение) – квадратный корень.

sqrt(16), sqrt(0.64), sqrt(0). Результат: 4.0, 0.8, 0.0

sqrt(-16). Результат: ошибка

ln(выражение) – натуральный логарифм.

ln(1), ln(2.7182):4:1, ln(7.5):4:1. Результат: 0.0, 1.0, 2.0

ln(0), ln(-1). Результат: ошибка

exp(выражение) – экспонента.

exp(0):4:1, exp(1):8:5, exp(2.014903):4:1. Результат: 1.0, 2.71828, 7.5

exp(-1):7:4. Результат: 0.3579

Примечание: e-1 = 1 / e

Тригонометрические функции

Ниже определяются тригонометрические функции. Аргумент любой их них может быть целым или вещественным; результат в любом случае – вещественный.

1 радиан = 180 / пи

sin(выражение) – синус угла, измеренного в радианах

sin(-pi / 6):4:1. Результат: -0.5

sin(0):4:1. Результат: 0.0

sin(pi / 2):4:1. Результат: 1.0

cos(выражение) – косинус угла, измеренного в радианах

cos(-pi / 6):4:1. Результат: 0.8

cos(0):4:1. Результат: 1.0

cos(pi):4:1. Результат: -1.0

arctan(выражение) – арктангенс

arctan(1e35):8:5. Результат: 1.57080

arctan(0):4:1. Результат: 0.0

arctan(-1):8:5. Результат: 0.78540

Функции преобразования из вещественного в целый тип

Кода целое значение присваивается вещественной переменной, оно автоматически преобразуется в вещественный тип и никакие функции для этого не требуются. Такое преобразование типов называется неявным. Так, если переменную объявить как real, а затем присвоить ей целое число 5, то последнее автоматически преобразуется в 5.0.

Обратного неявного преобразования нет: будет ошибкой пытаться присваивать переменной целого типа вещественный результат.

Перед присваиванием целой переменной вещественного значения это значение следует преобразовать к целому типу отбрасыванием дробной части или округлением. Для этих целей служат функции trunc и round соответственно.

trunc(вещественное_выражение) – преобразует вещественное в целый тип, отбрасывая дробную часть.

trunc(3.1), trunc(3.8). Результат: 3, 3

trunc(-3.1), trunc(-3.8). Результат: -3, -3

round(вещественное_выражение) – преобразует вещественное в целый тип, округляя до ближайшего целого.

round(3.1), round(3.8). Результат: 3, 4

round(-3.1), round(-3.8). Результат: -3, -4

Здесь возможны недоразумения. Пусть вещественная переменная x имеет значение 3.499999. Если это значение напечатать с использованием оператора write(x:8:5), то получится 3.50000, в то время как write(round(x)) даст 3, а не 4. Это затруднение можно обойти при помощи небольшой поправки, например write(round(x + 0.000001)) (в предположении, что значение переменной x заведомо положительное).

Применять функции trunc и round к параметрам целого типа нельзя. Например, будут ошибкой такие выражения, как trunc(3) или round(3).