Процедура будет называться

        создатьфайл( Поставщик)

Например, если исходный каталог хранится в файле файл1, а мы хотим создать специальный каталог в файле файл2, содержащий всю информацию о том, что поставляет Гаррисон, тогда мы применим процедуру создатьфайл следующим образом:

        ?-  seе( файл1), tеll( файл2), создатьфайл( гаррисон),

                  see( user), tell( user).

Процедуру создатьфайл можно определить так:

        создатьфайл( Поставщик) :-

                write( Поставщик), write( '.'), nl,

                создатьостальное( Поставщик).

        создатьостальное( Поставщик) :-

                read( Изделие),

                обработать( Изделие, Поставщик).

        обработать( end_ot_file) :-  !.

        обработать( Изделие( Ном, Опис, Цена, Поставщик),

                                Поставщик) :-  !,

                write( Изделие( Ном, Опис, Цена) ),

                write( '.'), nl,

                создатьостальное( Поставщик).

            обработать ( _, Поставщик) :-

                создатьостальное( Поставщик).

Обратите внимание на то, что обработать вписывает точки между термами, чтобы впоследствии файл мог быть прочитан процедурой read.

Упражнения

6. 1.    Пусть f  -   файл термов. Определите процедуру

        найтитерм( Терм)

которая выводит на терминал новый терм из f, сопоставимый с Терм'ом.

Посмотреть ответ

6. 2.    Пусть f  -   файл термов. Напишите процедуру

        найтивсетермы( Терм)

которая выводит на экран все термы из f, сопоставимые с Tepм'ом. Обеспечьте при этом, чтобы во время поиска Терм не конкретизировался (это могло бы помешать ему сопоставиться с другими термами дальше по файлу).

Посмотреть ответ

Назад | Содержание | Вперёд

Назад | Содержание | Вперёд

6. 3.    Обработка символов

Символ записывается в текущий выходной поток при помощи цели

        put( С)

где С - символ, который нужно вывести, в кодировке ASCII (число от 0 до 127), например, вопрос

Вы читаете Prolog
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату