КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
PredicatesStart 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). Структуры Структура – это единый объект (отношение), состоящий из совокупности других объектов (отношений), называемых компонентами. Компоненты группируются в структуру для удобства использования. Структуру следует рассматривать как средство описания сложного составного объекта или сложного отношения. Пример. Карточка-указатель для библиотечной книги. книга(613456678, автор(”Братко”, ” Иван”), название(”Программирование на языке Пролог”), издательство(”Москва”,”Вильямс”), год_издания(2004)). Структура записывается на Прологе с помощью функтора (имени структуры) и компонентов. <функтор-имя структуры>(<список аргументов - компонентов>). Компоненты (их не более 255) заключаются в круглые скобки и разделяются запятыми. Функтор (functor – имя структуры) записывается перед открывающейся круглой скобкой и задается символическим именем. Компонентами могут быть любые термы: константы, переменные, структуры. Две структуры равны, если они имеют один и тот же функтор и одинаковое число аргументов, причем все соответствующие аргументы равны. Структуры могут быть вложены одна в другую на любую глубину. Пример. Использовать структуру для хранения сведений о человеке в виде: личность=личность(фио,адрес), где фио=фио(фамилия, имя, отчество); адрес=адрес(город, улица, дом, квартира)
Domains person=person(fio,adres) fio=fio(fam,name,ot) adres=adres(city, street, house, flat) fam, name, ot, city, street=sting house, flat=integer Predicates p Clauses p :- P1=person(fio(”Петров”, ”Петр”, ”Петрович”), adres(”Москва”, ”Покровка”,10,4)), P1=person(fio(”Петров”, _, _), Address), Р2=person(fio(”Мохов”, ”Андрей”, ”Иванович ”), Address), write(”P1=”, P1),nl, write(”P2=”,P2),nl. GOAL P. Результат: P1=person(fio(”Петров”, ”Петр”, ”Петрович”), адрес(”Москва”, ” Покровка”,10,4)), Р2=person(fio(”Мохов”, ”Андрей”, ”Иванович ”), адрес(”Москва”, ” Покровка”,10,4)) Solution Достоинством структуры является возможность обрабатывать несколько единиц данных как одно целое.
Файлы Обычно файлом называют именованную (то есть имеющую имя) совокупность данных, записанных на диске. Файл состоит из компонентов (элементов). При чтении или записи файловая переменная перемещается к очередному компоненту и делает его доступным для обработки. Пользовательские файлы описываются в разделе domains следующим образом: file = <символическое имя файла1>;...;<символическое имя файлаN> При описании файловых доменов тип домена file располагается слева от равенства, а символические имена файлов — справа. Их еще называют внутренними или логическими именами файлов, в отличие от внешних или физических имен файлов. Символическое имя файла должно начинаться со строчной буквы. По умолчанию стандартным устройством ввода является клавиатура, а стандартным устройством вывода — монитор. Чтобы начать работу с пользовательским файлом, его нужно открыть, а по завершении работы закрыть.
Встроенные предикаты для работы с файлами:
- SymbolicFileName - логическое имя файла, определяемое в domains как относящееся к типу file; - DosFileName - имя файла в MS DOS.
Пример.
|