Главная страница
Навигация по странице:

  • Выполнение заданий лабораторной работы

  • Ответы на контрольные вопросы

  • 2. Какой предикат закрывает открытый файл

  • 4. Для чего служит предикат readdevice

  • 5. Для чего служит предикат writedevice

  • Контрольные вопросы 5 Описание цели работы


    Скачать 164.39 Kb.
    НазваниеКонтрольные вопросы 5 Описание цели работы
    АнкорProlog
    Дата06.12.2021
    Размер164.39 Kb.
    Формат файлаdocx
    Имя файлаProlog.docx
    ТипКонтрольные вопросы
    #293924

    Оглавление


    Описание цели работы 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 присвоит ей имя текущего активного устройства записи.


    написать администратору сайта