Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции программирование.doc
Скачиваний:
15
Добавлен:
01.03.2025
Размер:
1.01 Mб
Скачать

Арифметические выражения. Приоритет арифметических операций

И в команде присваивания, и в команде writeln мы использовали арифметические выражения, вместо которых Паскаль подставлял результаты их вычислений. Арифметическое выражение состоит из констант, переменных и функций, соединённых знаками арифметических операций.

Арифметические операции имеют различный приоритет (старшинство). Если в выражении имеются операции разного приоритета, то в первую очередь выполняются более приоритетные операции. Операции одного приоритета выполняются подряд, слева направо.

Приоритет

Операции

Название

1

( )

группировка

2

+, −

знаковые операции

3

*

умножение

мультипликативные операции

/

дробное деление

div

целочисленное деление

mod

остаток от деления

4

+

сложение

аддитивные операции

вычитание

Обычный знак деления ( / ) в Паскале используется как дробное деление, то есть, делит вещественные числа, и результат деления – вещественное число. Даже если поделить 6 на 3, результат будет не 2, а 2.0, то есть, вещественное число. Кроме дробного деления есть ещё деление без остатка div. Оно работает только с целыми числами, и результат деления – целое число. Остаток игнорируется. Если же, наоборот, нужен остаток от деления, используется операция mod. Например, выражение 20 div 6 даёт 3, а результат выражения 20 mod 6 равен 2. Пробелы в этих выражениях пропускать нельзя. Операция mod будет полезна при определении, делится ли одна величина на другую. Если остаток от деления равен нулю, - значит, делится без остатка.

Стандартные арифметические функции

Кроме операций над числами можно выполнять более сложные действия, называемые арифметическими функциями. Функции, встроенные в Паскаль, называются стандартными. К ним относятся:

На Паскале

В математике

тип

пояснение

1

abs(x)

|x|

ц, в

модуль x

2

exp(x)

e x

в

экспонента x

3

ln(x)

ln(x)

в

натуральный логарифм x

4

sqr(x)

x 2

ц, в

квадрат x

5

sqrt(x)

в

квадратный корень из x

6

sin(x)

sin(x)

в

синус x

7

cos(x)

cos(x)

в

косинус x

8

arctan(x)

arctg(x)

в

арктангенс x

9

int(x)

в

целая часть числа x

10

trunc(x)

ц

целая часть x, преобразованная к целому типу

11

round(x)

ц

округлённое до ближайшего целого значение x

12

frac(x)

в

дробная часть числа x

13

random

в

случайное число в интервале [0; 1)

14

random(x)

ц

случайное целое число в интервале [0; x)

15

power(a,b)

ab

в

степень


Некоторые из этих функций требуют пояснений.

Функции int и trunc делают одно и то же: отбрасывают дробную часть числа. Только int оставляет его вещественным (например, 13.0), а trunc делает целым.

Ф ункция random(x) даёт целое случайное число от 0 до x (не включая x). Пока программа работает, каждое следующее обращение к random даст новое число в этом интервале. Но при следующем запуске программы набор случайных чисел повторится. Чтобы этого избежать, нужно в начале программы поставить команду randomize. Чтобы получить случайные числа не от 0 до x, а в произвольном диапазоне от a до b, нужно использовать формулу:

Простейший пример использования функции в выражении:

y:=2*sin(x/2+0.7);

Аргумент функции может содержать и другие функции. Например:

c:=trunc(sqrt(sqr(a)+sqr(b))) ;