Write(”Sym”, Sym, ” ”), nl

Встроенные предикаты для обработки строк:

frontchar(String,FrontChar,RestString)(string,char,string) – (i,o,o) (i,i,o) (i,o,i) (i,i,i) (o,i,i) Разделяет строку String на две части: первый символ FrontChar и оставшаяся часть строки RestString.
fronttoken(String,Token,RestString) (string,string,string) – (i,o,o) (i,i,o) (i,o,i)(i,i,i)(o,i,i) Разделяет строку String на лексему Token и остаток RestString (выполняется только для строк, состоящих из латинских букв).
frontstr(Lenght,InpString,StartString,RestString)(integer,string,string,string) - (i,i,o,o) Отрезает от заданной строки InpString строку StartString из Lenght символов. Выдает оставшуюся часть строки RestString.
concat(String1,String2,String3) (string,string,string) – (i,i,o) (i,o,i) (o,i,i) (i,i,i) Конкатенация двух строк: String3 = String1 + String2.
str_len(String,Length) (string,integer) - (i,i) (i,o) (o,i) Определяет длину строки.
isname(StringParam) (string) - (i) Истинен, если StringParam представляет собой имя, доступное в Турбо-Прологе. Выполняется только для последовательности символов, состоящей из латинских букв.
format(OutputVariable,FormatString,Variable|Constant*) - (o,i,i) Выводит по формату FormatString список вывода Variable|Constant* в строковую переменную OutputVariable

Лексема - это последовательность символов, определяемая как:

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

· строчное представление числа,

· отдельный символ (может быть пустым - пробел).

Пример. Создать предикат, имеющий два аргумента, который будет преобразовывать строку в список символов. Первый аргумент - заданная строка, второй аргумент — список, состоящий из символов исходной строки.

str_list("",[]).

str_list(S,[H|T]):– frontchar(S,H,S1), str_list(S1,T).

/* пустой строке соответствует пустой список */

/* H — первый символ строки S, S1 — остаток строки */

/* T — список, состоящий из символов, входящих в строку S1*/

Пример. Вычислить длину строки.

Predicates

Start

Dlina(string,integer)

Goal

Start.

Clauses

start:- write("Введите строку

(в конце строки поставьте точку)= "),

readln(Text), nl, dlina(Text,N), write(" длина = ",N).

dlina(Str,N):- frontchar(Str,H,Str1), dlina(Str1,N1), N=N1+1.

Dlina(_,0).

Структуры

Структура – это единый объект (отношение), состоящий из совокупности других объектов (отношений), называемых компонентами. Компоненты группируются в структуру для удобства использования. Структуру следует рассматривать как средство описания сложного составного объекта или сложного отношения.

Пример. Карточка-указатель для библиотечной книги.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: