Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции(ЯВУ)-Паскаль.doc
Скачиваний:
62
Добавлен:
31.03.2015
Размер:
1.08 Mб
Скачать

6. Операции над данными скалярных типов. Выражения

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

Операнды – это данные, которые участвуют в вычислении; в качестве операндов могут быть константы, переменные и функции со списками параметров в круглых скобках.

Операции делятся на унарные и бинарные операции. Унарные операции имеют только один операнд, который записывается после знака операции. Бинарные операции имеют два операнда, знак операции записывается между операндами.

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

  • приоритетом операций;

  • порядком расположения операции;

  • использованием скобок.

Выражение, тип значения которого является арифметическим, называется арифметическим выражением. Выражение, тип значения которого является булевским, называется логическим выражением. Выражение, значение которого является символом или символьной строкой, называется символьным выражением.

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

  1. арифметические операции:

    1. унарные: +,-;

    2. бинарные: +,-,*,/,div,mod;

  2. операции отношения:

= , <>, <=,>=,>,<;

  1. логические операции:

not, and, or, xor;

  1. поразрядные операции:

not, and, or, xor, shl, shr.

Унарные, арифметические операции представлены в табл. 6.1.

Табл. 6.1. Унарные операции

Операция

Действие

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

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

+

Сохранение знака

Целый вещественный

Целый вещественный

-

Изменение знака

Целый вещественный

Целый вещественный

Бинарные, арифметические операции представлены в табл. 6.2.

Табл. 6.2. Бинарные операции

Операция

Действие

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

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

+

Сложение

Целый вещественный

Целый вещественный

-

Вычитание

Целый вещественный

Целый вещественный

*

Умножение

Целый вещественный

Целый вещественный

/

Деление

вещественный

Вещественный

Div

Деление нацело

Целый

Целый

Mod

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

Целый

Целый

Операции отношения представлены в таблице 6.3.

Табл. 6.3 . Операции отношения

Операция

Сравнение на

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

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

=

Равно

Совместимый скалярный тип

Булевский

<>

Не равно

Совместимый скалярный тип

Булевский

<

Меньше

Совместимый скалярный тип

Булевский

>

Больше

Совместимый скалярный тип

Булевский

<=

Меньше или равно

Совместимый скалярный тип

Булевский

>=

Больше или равно

Совместимый скалярный тип

Булевский

Логические операции выполняются по правилам булевой алгебры, представленным в таблице 6.4.

Табл. 6.4. Таблица истинности логических операций

Операнды

Операции

A

B

Not A

A and B

A or B

A xor B

False

False

True

False

False

False

False

True

True

False

True

True

True

False

False

False

True

True

True

True

False

True

True

False

Логические операции and (конъюнкция), or (дизъюнкция), xor (исключающее ИЛИ) являются бинарными; операнды A и B булевского типа, и результат – булевского типа. Логическая операция not является унарной; ее операнд и результат имеют булевский тип.

Стандартные, математические функции приведены в табл. 6.5. Математические функции можно использовать только с аргументами целого и вещественного типа.

Табл. 6.5. Арифметические функции

функция

назначение

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

Abs(X)

Абсолютная величина числа

Совпадает с типом аргумента

Arctan(X)

Арктангенс

Вещественный

Cos(X)

Косинус

Вещественный

Exp(X)

ex

Вещественный

Frac(X)

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

Вещественный

Int(X)

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

Вещественный

Ln(X)

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

Вещественный

Pi

Значение π

Вещественный

Sin(X)

Синус

Вещественный

Sqr(X)

Квадрат числа Х

Совпадает с типом аргумента

Sqrt(X)

Вещественный

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

tg(X)=sin(X)/cos(X);

ctg(X)=1/tg(X);

loga(X)=ln(X)/ln(A)

Ax=exp(X*ln(A)), X-вещественное число, A>0;

arcsin(X)=arctan(X/sqrt(1-sqr(X)));

arccos(X)=arctan(sqrt(1-sqr(X))/X).

Поразрядные (битовые) операции выполняются над кодами целых чисел; к ним относятся битовые логические операции и операции сдвига, приведенные в табл.6.6.

Табл. 6.6. Поразрядные операции

Операция

Действие

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

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

Not

Битовое отрицание

Целый

Целый

And

Битовая конъюнкция

Целый

Целый

Or

Битовая дизъюнкция

Целый

Целый

Xor

Битовое исключающее ИЛИ

Целый

Целый

Shl

Битовый сдвиг влево

Целый

Целый

Shr

Битовый сдвиг вправо

Целый

Целый

Пример.

Операнд/

Результат

Десятичное значение

Двоичное значение

A

11

00001011

B

2

00000010

Not A

244

11110100

A and B

2

00000010

A or B

11

00001011

A xor B

9

00001001

A shr B

44

00101100

A shl B

2

00000010

Приоритеты операции над данными скалярных типов приведены в табл. 6.7.

Табл. 6.7. Приоритеты операций

приоритет

Тип операций

Знаки операции

1

Вычисления в круглых скобках

( )

2

Вычисление значения функции

<имя_функции>(<список_аргументов>)

3

Унарные операции

Not, +,-

4

Операции типа умножения

*, /, div,mod,and,shl,shr

5

Операции типа сложения

+, -, or, xor

6

Операции отношения

=,<>, >=, <=,>, <

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