Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Prolog.docx
Скачиваний:
3
Добавлен:
25.09.2019
Размер:
59.65 Кб
Скачать

21Предикаты Турбо-Пролога для переадресации внешних устройств.

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

- readdevice (СимвИмяФайла) (symbol) : (i) (o)

Определяет или считывает символьное имя файла для устройства ввода.

(i) – связывает текущее устройство чтения с открытым файлом. Под СимвИменемФайла понимается символьное имя клавиатуоы либо симвоьное имя файла, открытого для чтения или модификации.

(o) – связывеат символьное имя файла с именем текущего устройства чтения, которое может быть клавиатурой или файла.

readdevice (X) X=клавиатура

- writedevice (СимвИмяФайла) (symbol) : (i) (o)

Определяет или считывает символьное имя файла для устройства вывода.

(i) – переназначает текущее устройство записи на открытый файл с именем СимвИмяФайла, который может быть одним из заранее определенных символьных имен (screen или printer) или имеет символьное имя, задаваемое пользоваетелем для файла, открытого для записи или модификации.

(o) – связывает параметр СимвИмяФайла с именем текущего устрйоства записи, которое может иметь имя screen, printer или символьное имя файла.

22 Описание файловых доменов в Турбо-Прологе.

Для того, чтобы использовать в прграмме файлы, необходимо в раздел domains произвести описание файлового домена:

file = datafile

file – стандартный тип домена

datafile – символьное имя файла (логическое имя файла)

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

file = df1; df2; df3 % (; или)

23 Запись данных в файл в программах на Турбо-Прологе.

Последовательность действий, необходимая для записи в файл:

  1. Открытие файла с помощью предиката openwrite. Если файла с указанным именем нет, то создаетс яновый файл. Если файл уже есть, то его содержимое будет утрачено. Чтобы от этого застраховаться, можно сначала проверить наличие файла предикатом existfile, и принять соответствующие меры, если existfile будет успешным.

  2. Назначение файла в качнстве устройства записи предиката writedevice.

  3. Самма запись в файл write или writef.

  4. Использование любых других предикатов и правил, отвечающих назначению программы.

  5. Закрытие файла предикатом closefile.

/* Считывание данных с клавиатуры и запись их в файл */

domains

file = datafile

kstr, fstr = string

predicates

readin (kstr, fstr) % чтение-запись

create_file

goal

create_file

clauses

create_file:- nl, nl,

write (“Введите имя файла”),

nl, nl, readln(FileName),

openwrite (datafile),

writedevice (datafile),

readln (Kstr),

concat (Kstr, “\13\10”, Fstr),

readin (Kstr, FStr),

closefile (datafile).

readin (_, Fstr):- write (FStr), readln (KStr1),

concat (KStr1, “\13\10”, Fstr1),

readin (Kstr1, Fstr1).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]