Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Yazyk_Turbo-Paskal.doc
Скачиваний:
17
Добавлен:
15.04.2015
Размер:
754.69 Кб
Скачать

Глава 4. Выражения Понятие и классификация типов выражений

Рассмотренные выше типы данных используются в операторах языка Паскаль для различных целей. Основной задачей обработки данных, как уже упоминалось выше, является получение новых данных по уже имеющимся. Такой процесс происходит при выполнении (вычислении) выражений.

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

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

Константы и данные, а также некоторые функции были рассмотрены выше, здесь мы остановимся на операциях.

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

Арифметические операции

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

Например, если Х - вещественная переменная, первое выражение будет выполняться быстрее, чем второе:

1) X + 1.0 2) X + 1

Все варианты арифметических операций представлены в таблице

Таблица 6. Допустимые арифметические операции Турбо-Паскаля

Знак

Операция

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

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

+

Сложение

Целый

Целый

Хотя бы один - веществ.

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

-

Вычитание

Целый

Целый

Хотя бы один - веществ.

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

*

Умножение

Целый

Целый

Хотя бы один - веществ.

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

/

Деление

Любой числовой

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

div

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

Целые

Целый

mod

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

Целые

Целый

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

A * - B; -A * B; A * (-B); A*-B; A *- B;

Операции целочисленного деления и получения остатка от деления применимы только для целочисленных данных. Результат такого деления получается вещественным делением операндов и переводом результата в целое путем отбрасывания (а не округления!) дробной части. Остаток целочисленного деления - это такое наименьшее (по модулю) число, после уменьшения на которое делимое будет делиться на делитель без остатка. В выражениях операции, изображаемые служебными словами, должны отделяться от имен хотя бы одним пробелом:

A div B, A mod B

Примеры выполнения операций:

5/3 ->1.666667; 5 div 3 ->1; 3 div 5 ->0; 5 div -3 -> -1; 10 div 3->3;

5 mod 3 ->2; 3 mod 5 ->3; 10 mod 3 ->1; -10 mod 3 ->1;

Лекция 10

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