Контрольные вопросы 5 Описание цели работы
Скачать 164.39 Kb.
|
ОглавлениеОписание цели работы 2 Выполнение заданий лабораторной работы 3 Ответы на контрольные вопросы 5 Описание цели работыЦелью лабораторной работы является знакомство со стандартными предикатами для работы с файлами в языке Prolog. Выполнение заданий лабораторной работыЗадание 1. Реализовать запись символов в файл «myfile.txt», который создается на текущем диске. Рис. 1. Результат работы программы Листинг 1. Работа программы «Задание 1» domains file = myfile predicates read_in_loop clauses read_in_loop :- readchar(X), X<>'#', !, write(X), read_in_loop. goal openwrite(myfile,"myfile.txt"), writedevice(myfile), not(read_in_loop), closefile(myfile), writedevice( screen), write("Zapis v fail 'myfile.txt' uspechno proizvedena. \n "). Задание 2. Реализовать чтение символа из файла и вывод его на экран дисплея. Рис. 2. Результат работы программы Листинг 1. Работа программы «Задание 1» domains file = infile predicates position clauses position :- readdevice(keyboard), nl, write("Vvedite nomer pozicii: "), readreal(X), readdevice(infile), filepos(infile, X, 0), readchar(Y), write("Zdes zapisan simvol: ",Y), position. goal write("S kakim failom vi hotite rabotat? \n"), readln(Fname), openread(infile, Fname), position. Ответы на контрольные вопросы1. Какие предикаты предназначены для открытия файла в Prolog? Предикат openwrite открывает файл OSFileName для записи, используя формат: openwrite(SymbolicFileName,OSFileName). Если файл уже существует, то он уничтожается. В противном случае Пролог создает новый файл и помещает его в соответствующем каталоге. Если файл не может быть создан, Пролог выдаст сообщение об ошибке. Предикат openappend открывает файл OSFileName для записи в конец файла. При этом используется формат: openappend(Symbolic FileName,OSFileName). Предикат openmodify открывает файл OSFileName и для записи, и для чтения; если файл уже существует, он не будет перезаписан, openmodify имеет формат: openmodify(SymbolicFileName, OSFileName). 2. Какой предикат закрывает открытый файл? Предикат closefile закрывает указанный файл; он использует формат: closefile(SymbollcFileName). 3. Для чего служит предикат filemode? При открытии файла в текстовом режиме предикат filemode устанавливает указанный файл в текстовый или двоичный режим, используя формат: filemode(SymbolicFileName,FileMode). Если FileMode=0, файл SymbolicFileName устанавливается в двоичный режим; если FileMode=1, то он устанавливается в текстовый режим. В текстовом режиме при записи к новым строкам добавляются символы «возврат каретки» (ASCII 13)\ «перевод строки» (ASCII 10), а при чтении эта пара символов интерпретируется как новая строка. 4. Для чего служит предикат readdevice? Предикат readdevice переопределяет current_read_device (текущее устройство чтения) или возвращает его имя. Предикат имеет формат: readdevice(SymbolicFileName). Предикат readdevice переопределяет текущее устройство чтения, если переменная SymbolicFileName определена, и файл открыт для чтения. Если SymbolicFileName является свободной переменной, то readdevice присвоит ей имя текущего активного устройства чтения. 5. Для чего служит предикат writedevice? Предикат writedevice либо назначает, либо позволяет получить имя current_write_device (текущего устройства записи). Он имеет формат: writedevice(SymbolicFileName). Предикат writedevice переопределит устройство записи, если указанный файл открыт для записи или добавления. Если переменная SymbolicFileName свободна, writedevice присвоит ей имя текущего активного устройства записи. |