Prolog
  • Введение
  • Установка и запуск
  • Примеры
  • Арифметика и вывод на экран
  • Циклы
  • Списки
  • База данных
  • Ввод данных
  • Файлы
  • Сравнение фактов
  • Взаимодействие с консолью
  • Оконный интерфейс
  • Рисование
  • Visual Prolog
Powered by GitBook
On this page
  • Задача 1
  • Задача 2
  • Задача 3
  • Задача 4
  • Задача 5

Was this helpful?

Файлы

Задача 1

Создать текстовый файл и добавить в него три текстовые строки.

f :- open("myfile.txt", write, Stream),
     write(Stream, "my string first"), nl(Stream),
     write(Stream, "my string second"), nl(Stream),
     write(Stream, "my string third"), nl(Stream),
     close(Stream).

Запускаем программу.

f.

Задача 2

Создать текстовый файл и добавить в него целые числа на определённом отрезке.

true.

cycle(X, Y, Stream) :- N is X, write(Stream, N), X < Y, write(Stream, "  "), X_NEW = X + 1, !, cycle(X_NEW, Y, Stream).
cycleTrue(X, Y, Stream) :- cycle(X, Y, Stream); true.

f :- open("myfile.txt", write, Stream), cycleTrue(10, 20, Stream), close(Stream).

Запускаем программу.

f.

Задача 3

Считать факты из файла и вывести их на экран через пробелы.

true.

cycle(MyStream) :- read(MyStream, X), !, not(X = end_of_file), write(X), write("  "), !, cycle(MyStream). 
cycleTrue(MyStream) :- cycle(MyStream); true.

main :- open("myfile.txt", read, MyStream), cycleTrue(MyStream), close(MyStream).

Запускаем программу.

main.

Содержимое файла myfile.txt

aaa.
bbbbb.
ccc.
xxxxx.
zzz.

Задача 4

Считать факты из файла.

Провести фильтрацию считанных фактов по определённому критерию.

Вывести результат фильтрации на экран.

true.

myfilter(X) :- ok(X), write(X), write(" ").
myfilter(X) :- true.

ok(mmm).
ok(kkkkk).
ok(ccc).

cycle(MyStream) :- read(MyStream, X), 
                   !, not(X = end_of_file), 
                   !, myfilter(X), !, 
                   cycle(MyStream). 

cycleTrue(MyStream) :- cycle(MyStream); true.

main :- open("myfile.txt", read, MyStream), 
        cycleTrue(MyStream), 
        close(MyStream).

Запускаем программу.

main.

Содержимое файла myfile.txt

aaa.
bbbbb.
ccc.
xxxxx.
zzz.
kkkkk.
mmm.
qqqqq.
mmm.
ccc.

Задача 5

Осуществить посимвольное чтение из файла.

Вывести на экран считанные символы и их код.

true.

readWord(InStream):- get_code(InStream, N), 
                     N > -1,
                     char_code(C, N),
                     writeNumberAndChar(N, C), 
                     true.

writeNumberAndChar(N, C) :- nl, write("Number: "), write(N), 
                            nl, write("Char: "), write(C), 
                            nl, true.


cycle(Stream) :- readWord(Stream), cycle(Stream).
cycleTrue(Stream) :- cycle(Stream); true.

main :- open("myfile.txt", read, MyStream),
        cycleTrue(MyStream),
        close(MyStream),
        nl,
        true.

Запускаем программу.

main.
PreviousВвод данныхNextСравнение фактов

Last updated 5 years ago

Was this helpful?