Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Выражения




ТИП ДАТА-ВРЕМЯ

Стандартный тип дата-время (TDateTime), определенный в модуле Sys­tem, совпадает с типом Double. Например, если определена константа типа дата-время 35065.75, то это число означает 1 января 1996 г., 18.00. Способ преобразования этого числа в дату-время встроен в тип. Целая часть числа типа TDateTime задает число дней, прошедшее с 30 декабря 1899 года, а Дробная часть - прошедшую долю текущих суток. Символьное представле­ние типа дата-время определяется установками Windows. Различные функ­ции преобразования находятся в модуле SysUtils.

Многие операторы содержат в своем составе конструкции, называемые выражениями. Выражение - это синтаксическая единица языка, опреде-


 




Var

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

КОНСТАНТЫ

Константами называют параметры, значения которых не могут изме­няться в процессе выполнения программы. В выражениях возможно двоякое использование констант:

• непосредственное использование значения константы;

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

В качестве констант могут использоваться значения различных типов. Возможно не только десятичное представление числовых констант, но и ше-стнадцатеричное, например SF5, где первый символ указывает, что далее следует шестнадцатеричная константа.

Для задания имени константы используется следующее объявление: const <имя> = <значекие>; - например, const a = 5; s = ' Pascal';. В описании const можно использовать константные выражения (например, const Ъ = Pi/4;). Все вычисления константных выражений выполняются на стадии компиляции. Код программы не увеличивается при использовании поименованных констант.

ТИПИЗИРОВАННЫЕ КОНСТАНТЫ

Данное название не совсем удачное, так как типизированная констан­та представляет собой фактически переменную. Название это появилось потому, что типизированная константа определяется ключевым словом Const, например Const Maximum: integer = 100;. Не будет ошибки, если вместо данной строки записать: Var Maximum: integer = 100;. Та­ким образом, типизированные константы используются для задания началь­ного значения переменных.

Использование типизированных констант зависит от директивы компи­лятора {$J}. Если она выключена {$J-}, типизированные константы стано­вятся просто константами, если она включена {SJ+} (установлено по умол­чанию) - типизированная константа представляет собой инициализирован­ную переменную.

ПЕРЕМЕННЫЕ

Переменными называют параметры, значения которых могут изменять­ся в процессе выполнения программы. Запишем следующие примеры объяв­ления переменных:


 

Var а: integer;

х,у: single;

operat:(plus, minus, mult, divide);.

В данном случае объявлены четыре переменных: а - целого типа, х, у -вещественного типа, operat - типа перечень.

ОПЕРАЦИИ

Можно выделить следующие операции:

• арифметические;

• логические;

• операции над битами;

• операции отношения;

• операции со строками;

• операции с множествами;

• операции над объектами;

• адресная операция @.

Арифметические операции для вещественных чисел определяются с помощью символов: +, -, *, /. Для целых чисел определены пять операций: +, -, *, div (деление нацело), mod (остаток от деления), например, a div в; {если А=7, ав = 3, то результат равен 2}, с mod 3; {если с = 10, то результат равен 1}.

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

 

  Таблица 7
Значение операнда X Результат операции notX
True False
False True

Результат вычисления логической операции получается также логиче­ского типа. Определяются эти операции специальными таблицами. Рассмот­рим три бинарные логические операции: and - логическое И (конъюнкция); or - логическое ИЛИ (дизъюнкция); хог - ИСКЛЮЧАЮЩЕЕ ИЛИ (табл. 8).

Таблица 8

Значения операндов Результаты операций
X Y XandY XorY XiorY
True True True True False
False True False True True
True False False True True
False False False False False

Существуют 2 варианта вычисления логических выражений, задаваемые Директивой {$В}: полное {$В+} и укороченное {$В-}. Полное вычисление означает, что выполняются все запрограммированные действия, даже если


на промежуточном этапе становится известным значение всего выражения. При укороченном вычислении все расчеты прекращаются, как только стано­вится известным значение заданного выражения. Например, если в выраже­нии (A and в) or (х xor Y) значение (A and в) равно true (когда опе­рация or дает true, см. табл. 8), то при укороченной форме вычисления пре­кращаются без расчета второй части (х xor Y) исходного выражения, так как полученное значение true уже не изменится.

Операции над битами выполняются над целыми числами. Существуют следующие битовые операции:

• not X - инверсия всех битов числа X;

• X and Y - побитовое логическое умножение чисел X и V;

• X or Y - побитовое логическое ИЛИ над X и Y;

• X xor Y - побитовое исключающее ИЛИ над X и Y;

• X shr J - сдвиг содержимого числа X на J бит вправо;

• X shlJ - сдвиг числа X на J бит влево.

Операции сдвига часто используются для умножения и деления целых чисел на 2, 22, 23 и т. д. Например, пусть X = 3 (в двоичной формг 0011). Вы­полним X shl 1 -ООП сдвигаем влево на 1 разряд, получим 0110. Двоичное число 0110 равно 6 в десятичной системе, т. е. выполнено умножение на 2.

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

= - равно, < - меньше, <= - меньше или равно,

<> - не равно, > - больше, >= - больше или равно.

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

ФУНКЦИИ

Функция представляет собой специальную подпрограмму, предназна­ченную для вычисления какого-либо параметра, исходя из значений ее аргу­ментов. Имеется большое количество встроенных стандартных функций. Возможно создание собственных функций, которые используются наряду со стандартными. Любая функция задается своим именем с указанием после него в круглых скобках перечня аргументов, например sin(X).

ПОРЯДОК ВЫЧИСЛЕНИЯ ВЫРАЖЕНИЙ

Выражения вычисляются в определенном порядке в соответствии с при­оритетами (табл. 9) выполняемых операций.


 

 

Таблица 9

Приоритет Операции
  () - круглые скобки
  Вычисление функций
  @, not, унарные +, -
  •, /, div, mod, and, shl, shr, as
  +, -, or, xor
  =, <>, >, < <=, >= is, in

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

ВИДЫ ОПЕРАТОРОВ

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

Простыми называют операторы, которые не содержат внутри себя дру­гих операторов.

Структурированными являются такие операторы, которые состоят из других операторов. К ним относятся:

• составной оператор;

• операторы условного перехода;

• операторы цикла;

• оператор над записями;

• операторы обработки исключительных ситуаций.

Иногда объявления программных элементов называют операторами объявления, которые, в отличие от "настоящих" операторов, являются неис­полнимыми.

ПРОСТЫЕ ОПЕРАТОРЫ

Таких операторов четыре: оператор присваивания, обращение к проце­дуре, оператор безусловного перехода и пустой оператор.

Оператор присваивания является средством изменения содержимого памяти. Синтаксически с помощью этого оператора переменной присваива­ется значение какого-либо выражения. Записывается этот оператор следую­щим образом: Y:= <выражение>;, где Y - переменная,:= - знак присваи­вания. Например, Х:= 5; Y:= sin (X); С: = 'А';.


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

Обращение к процедуре позволяет выполнить вычисления, задаваемые подпрограммой вида "процедура". Как и функция, процедура имеет имя и может иметь список аргументов. При вызове вычислений из процедуры за­писывается имя нужной процедуры, а затем справа от имени в круглых скобках записывается список параметров-аргументов. Например, ProcName{x, У);. Существует большое количество встроенных стандарт­ных процедур, например Dec(X) и Inc(Х) (см. табл. 1). Программист может составлять собственные процедуры.

Оператор безусловного перехода записывается в следуюшем виде: goto <метка>;. Этот оператор позволяет изменить последовательный порядок выполнения операторов и перейти к выполнению программы, начиная с за­данного оператора. Оператор, на который происходит переход, должен быть помечен меткой. Метки бывают двух видов: или какое-либо число 1...9999 или обычный идентификатор: А, В25, Point. Все метки должны быть описа­ны в объявлении Label: 56, А, В25, Point;. Одной меткой можно по­метить только один оператор: Point: y:= 2*х,-. Использование операто­ра GOTO считается плохим стилем программирования.

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




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 415; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.027 сек.