ВНИМАНИЕ! Конкурс по программированию!

Проект Programmers.kz и школа hotPen3D2D предлагает Вам курсы по веб-дизайну, веб-программированию и компьютерной графике. Подробности здесь.

 
Информация к новости
 (голосов: 0)

Построение выражений

Категория: Программирование » Pascal / Turbo Pascal » Уроки Pascal

Выражения -

численные, логические и адресные: правила построения

 

Выражения

Выражения на Pascal'е бывают двух видов правильно построенные и нецензурные (не пропускаемые цензурой). За обнаружение последних отвечает компилятор, а за удаление - программист. Рассмотрим правила построения (правильных) выражений.

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

Выражения делятся по типу значения на следующие типы:

alt численные (целочисленные и дробные);
alt логические;
alt символьные;
alt типа указатель.


Рассмотрим правила нотации, а затем - правила построения каждого из этих типов. Фраза вида

<определяемое_понятие> :: <понятие1><понятие2>|
<понятие3>

будет означать, что <определяемое_понятие> по определению состоит либо из конкатенации <понятия1> и <понятия2> или из <понятия3> (1). В принципе, используя такую (или похожую нотацию), можно задать любую (контекстно-свободную) грамматику, в том числе и весь язык программирования.

 

Итак, численное выражение по определению есть (2)

<ч_выр> :: <ч_знач> |
<ч_знач><ч_опер><ч_знач> |
Not <ц_ч_знач>

<ч_знач> ::
<ч_выр> |
<ч_перем> |
<ч_конст> |
<ч_функ>

<ч_опер> ::
+ | - | * | / |
div | mod |
pred(<ц_ч_знач>) | succ(<ц_ч_знач>)

В первом определении численные значения стоящие справа и слева от операции называются операндами. Cтоит отметить следующие моменты

alt тип реультата деления всегда дробный, вне зависимости от тиов операндов;
alt тип операндов у операций mod и div всегда целый; целым является и значение результата;
alt тип результата операций +, -, * целый, если оба операнда целые, и дробный в противном случае;
alt функции pred и succ применимы только к выражениям ординарных типов;
alt любое выражение и значение может быть заключено в скобки без нарушения синтаксической корректности.


 

Логическое выражение по определению есть

<л_выр> :: <л_знач> |
<л_знач><л_опер><л_знач> |
Not <л_знач> |
<результат_сравнения>

<л_знач> ::
<л_выр> |
<л_перем> |
<л_конст> |
<л_функ>


<л_опер> ::
And |
Or |
Xor


<результат_сравнения> ::
<выр><знак_операции><выр>


<знак_операции> ::
< | > | <= |
>= | <> | =

Знаки имеют тот же смысл, что и слова их прочтения: меньше, больше, меньше (или) равно... Знак <> означает "не равно". Результат сравниния равен True, если выражения стоящие по бокам находятся в отношении, определяемом знаком_операции и False - в противном случае. Выражения при этом должны быть сравнимыми.

 

Адресное выражение по определению есть

<ук_выр> :: @<объект> |
Addr(<объект>) |
New([. . . ])|
Ptr(<число>, <число>)|
<ук_функ>

Здесь <объект> - идентификатор любого объекта, занимающего некоторое место в памяти (то есть обладающего адресом) - переменной, типизированной константы, процедуры или функции. Параметры у функции New зависят от типа создаваемого объекта. Каждое <число> в параметрах Ptr должно быть совместимо с типом Word.

<!--msthemeseparator-->

alt

(1) Наверх Более уместно вместо слова "выражение" использовать слово "терм".

(2) Наверх Сокращения следующие

alt выр - выражение;
alt конст - константа: непосредственная или ее идентификатор;
alt перем - идентификатор переменной;
alt знач - значение;
alt функ - вызов функции;


Префиксы сокращений имеют следующий смысл

alt ч_ - численный;
alt ц_ч_ - целочисленный;
alt л_ - логический;
alt ук_ - типа указатель.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Введите два слова, показанных на изображении: *