Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
18
Добавлен:
07.08.2024
Размер:
2.11 Mб
Скачать
  1. Предикаты управления экраном.

Синтаксис предиката

Назначение предиката

scr_char( Строка , Столбец , Символ ) (integer,integer,integer) -- (i,i,io)

Выводит символ на экран с теку­щим атрибутом в позицию, указан­ную номером строки и столбца. В случае (о) - возвращает значение символа.

scr_attr( Строка , Столбец , Атрибут ) (integer,integer,integer) -- (i,i,io)

Устанавливает или возвращает ат­рибут символа на экране в позиции, указанной строкой и столбцом. Ат­рибут - положительное целое чис­ло, определяющее цвет и мерцание символа

field_str( Строка , Столбец , Длина , СтроковаяПеременная )

(integer,integer,integer,string) -- (i,i,i,io)

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

field_attr( Строка,Столбец , Длина , Атр ) (integer,integer,integer,integer) -- (i,i,i,i)

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

cursor( Строка , Столбец )

(integer,integer) -- (i,i) (o,o)

Помещает курсор в указанную по­зицию текущего окна или возвра­щает позицию.

attribute( Атрибут )

(integer) -- (io)

Устанавливает значение атрибута Атрибут по умолчанию для всех позиций экрана.

  1. Предикаты обработки строк.

frontchar( Строка , ПервыйСимвол , ОстатокСтроки ) ( string , char , string ) -- (i,io,io) (o,i,i)

Предикат действует так, как если бы было определено равенство Строка = Первый- Символ + ОстатокСтроки, и либо Строка - связанная переменная, либо оба послед­них параметра - связанные переменные. В случае (i,i,i) предикат истинен, если это ра­венство справедливо.

fronttoken( Строка , Знак , ОстатокСтроки ) ( string , string , string ) -- (i,io,io) (o,i,i)

Здесь Строка = Знак + ОстатокСтроки либо связанная переменная, либо оба послед­них параметра - связанные переменные. Предикат успешно выполняется, если второй аргумент связан с первым знаком строки, а третий аргумент - с ее остатком. Под знаком подразумевается последовательность символов, являющаяся - либо именем, соответ­ствующим синтаксису Пролога; либо числом (предшествующий ему знак +,- и т.п. рас­сматривается отдельно); либо символом, но не пробелом.

frontstr( Длина , ВходнаяСтрока , НачалоСтроки , ОстатокСтроки )

( integer , string , string , string ) -- (i,i,o,o)

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

concat( Строка1 , Строка2 , Строка3 ) ( string , string , string ) -- (i,i,o) (i,o,i) (io,i,i)

Предикат осуществляет конкатенацию первого и второго аргументов; результат связы­вается с третьим аргументом (Строка3=Строка1+Строка2). Аргументы Строка1 и Строка2 должны быть связанными.

str_len( Строка,Длина ) ( string , integer ) -- (i,i),(i,o)

Предикат выполняется успешно, если в случае (i,i) первый аргумент имеет столько символов, сколько указано вторым; в случае (i,o) второй аргумент будет связан с чис­лом символов Строки.

isname( Строка ) ( string ) -- (i) Предикат выполняется успешно, если аргумент яв­

ляется именем, соответствующим синтаксису Турбо-Пролога.

Соседние файлы в папке Курсовой проект ПРОЛОГ