logo
TurboProlog / Документация / TOM_1

Секция констант

В своих программах на Турбо Прологе вы можете объявлять и использо-

вать символические константы. Секция для объявления констант обозначается

ключевым словом constants, за которым следуют сами объявления, использую-

щие следующий синтаксис:

<Id> = <макро описание>,

где

<Id> - имя символической константы, а <макро описание> - это то,

что вы присваиваете этой константе.

Каждое <макро описание> завершается символом новой строки и, следо-

вательно, на одной строке может быть только одно описание константы. Объ-

явленные таким образом константы могут позже использоваться в программах.

Рассмотрим следующий фрагмент программы:

constants

zero = 0

one = 1

two = 2

hundred = (10*(10-1)+10)

pi = 3.141592653

ega = 3

slash_fill = 4

red = 4

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

танту на соответствующую ей строку. Например, фрагмент программы

...,

A = hundred*34, delay(A),

setfillstyle(slash_fill, red),

circumf = pi*Diam,

...

компилятором будет обрабатываться следующим образом:

A = (10*(10-1)+10)*34, delay(A),

setfillstyle(4,4),

circumf = 3.141592653*Diam,

...

На использование символических констант накладываются следующие ог-

раничения:

# Описание константы не может ссылаться само на себя. Например:

my_number = 2*mynumber/2 /*не допускается*/

приведет к сообщению об ошибке "Recursion in constant definition"

("Рекурсия в описании константы").

# В описаниях констант система не различает регистры (верхний и ниж-

ний). Следовательно, при использовании в секции программы clauses

идентификатора типа constants его первая буква должна быть строчной

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

Поэтому следующий фрагмент программы, например, является допустимой

конструкцией:

constants

Two = 2

goal

A = two, write(A).

# В программе может быть несколько секций constants, однако объявле-

ние константы должно производиться перед ее использованием.

# Идентификаторы констант являются глобальными и могут объявляться

только один раз. Множественное объявление одного и того же идентифи-

катора приведет к сообщению об ошибке "Constant identifier can only

be declared once" ("Идентификатор константы может объявляться только

один раз").