Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR1-3.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
499.71 Кб
Скачать

Выражения и операторы действия

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

Для арифметических выражений используются арифметические операции и математические функции:

Арифметические операции бывают унарными и бинарными.

Выражение

Типы операндов

Тип результата

Операция

R, I

R, I

Унарный минус (изменение знака числа)

R, I

R, I

Унарный плюс (изменение знака числа)

A+B

I, I

I

Сложение

R, R; R, I; I, R

R

A-B

I, I

I

Вычитание

R, R; R, I; I, R

R

A*B

I, I

I

Умножение

R, R; R, I; I, R

R

A/B

R, R; R, I; I, R; I, I

R

Деление

A div B

I, I

I

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

A mod B

I, I

I

Остаток от целочисленного деления

А и В обозначают операнды, для типов величин используются обозначения: I – любой целый или натуральный, R – любой вещественный.

Стандартные математические функции Турбо Паскаля

Обращение

Тип аргумента

Тип результата

Примечание

Abs(x)

Real, integer

Тип аргумента

Модуль аргумента

ArcTan(x)

Real, integer

Real

Арктангенс (значение в радианах)

Cos(x)

Real, integer

Real

Косинус, угол в радианах

Exp(x)

Real, integer

Real

Экспонента

Frac(x)

Real

Real

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

Int(x)

Real, integer

Real

Целая часть числа

Ln(x)

Real, integer

Real

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

Pi

Нет

Real

3,141592653…

Sin(x)

Real, integer

Real

Синус, угол в радианах

Sqr(x)

Real, integer

Тип аргумента

Квадрат аргумента

Sqrt(x)

Real, integer

Real

Корень квадратный

random

Нет

Real

Псевдослучайное число в интервале [0, 1]

Random(I)

Integer

Integer

Псевдослучайное число в интервале [0, I]

Round(x)

Real

Integer

Округление до ближайшего целого

Trunc(x)

Real

Integer

Отбрасывание дробной части числа

Порядок вычислений в выражениях следующий:

  1. вычисляются подвыражения, заключенные в скобки;

  2. затем выполняются операции с наибольшим приоритетом; обычно используются следующие уровни приоритетов (в порядке убывания):

  • возведение в степень;

  • мультипликативные операции: * , / , div , mod;

  • унарные операции: + , - , abs , not;

  • аддитивные операции: +, -;

  • операции отношения: = , <> , < , > , <= , >= ;

  • логические операции: and, or, not;

  1. операции с одинаковым приоритетом выполняются слева направо.

Хотя нет ограничений на сложность выражений, однако выражения, содержащие более 7 операндов, трудны для чтения и понимания и поэтому такие выражения не рекомендуется использовать.

Замечание (это важно!)

  1. в Паскале нет операции или функции возведения в степень, поэтому используется следующее математическое тождество:

xy= ey lnx

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

loga b= ln b/ln a

Пример:

Математическое выражение Выражение на Паскале

x3/2 – 7x + tg (x+2) exp(3*ln(x)/2)-7*x+sin(x+2)/cos(x+2)

Операторы действия – это средства языка, позволяющие изменять в процессе выполнения программы состояние вычислений. Самый простой оператор действия – оператор присваивания.

<имя_переменной>:= <выражение>

Оператор присваивания, несмотря на кажущуюся простоту, имеет очень важное алгоритмическое значение.

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

  1. В каждый момент времени в ящике может храниться не более одного значения.

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

  3. Значение, помещенное в ящик, будет храниться в нем до тех пор, пока в этот ящик не будет помещено новое значение (в момент присваивания соответствующей переменной этого нового значения) – при этом предыдущее содержимое ящика безвозвратно теряется (уничтожается).

  4. Находящееся в ящике значение считается текущим значением соответствующей переменной. Это текущее значение может быть выдано из ящика для использования сколько угодно раз, но при этом содержимое ящика не меняется: из него каждый раз выдается копия хранящегося значения с сохранением оригинала в ящике без какого-либо изменения.

  5. К началу выполнения программы содержимое всех запоминающих ящиков считается неопределенным; в частности, их нельзя считать и пустыми, поскольку эти ящики могли использоваться при выполнении предыдущих программ, после чего в ящиках могло что-то остаться.

Еще один оператор действия, хотя его можно лишь условно назвать таковым: он не выполняет никакого действия, это – пустой оператор (в Паскале он обознается знаком «;»). В Паскале оператором действия является также оператор процедуры. Последний из простейших операторов действия – оператор останова, который прерывает работу программы (в Паскале это оператор halt).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]