Выводит целое число в файл с дескриптором Handle в 16-битном формате.
write_int32(+Handle,+Integer)
Выводит целое число в файл с дескриптором Handle в 32-х битном формате.
write_key(+Key,+File,+Backup)
Записывает ключ базы данных в ASCII-файл и если Backup равен 1 и имеется существующая версия файла File, то она сохраняется в виде .BAK файла.
writeq(+Term)
writeq(+Handle,+Term)
Выводит терм на стандартное устройство вывода или в файл с указанным дескриптором, заключая атомы и функторы в кавычки так, чтобы терм читался далее как синтаксически корректный терм Пролога.
Приложение В
Графические файлы формата PPM (Portable PixMap)
Файл формата PPM имеет простую структуру. Первая строка файла всегда содержит «магическое число» P6. Во второй строке содержится размер картинки по горизонтали и вертикали в пикселях (целые числа в текстовом формате). Третья строка практически всегда содержит число 255. Начиная с четвертой строки в файле, кодируется цвет каждого пикселя. Под кодировку цвета отводится три байта (R-, G- и B-байты). Рассмотрим пример (кодировка DOS):
Это изображение представляет собой небольшой ярко красный прямоугольник размером 3 на 4 пикселя. Все пиксели одного цвета – «я++» ({239,43,43} – интенсивности красной, зеленой и синей компонент цвета в цифровом выражении). Первые три строки файла заканчиваются символами конца строки (ASCII-код 10), а не парой «возврат каретки, конец строки», как это принято на платформе Windows. Для создания файла из описанного примера в среде интерпретатора Пролога можно, например, воспользоваться следующим кодом:
Кроссворды
Используя возможности языка Пролог по организации полного перебора, несложно реализовать программу для составления кроссвордов. Для организации работы этой программы требуется база данных существительных и удобный шаблон для заполнения. Шаблонов может быть столько, сколько требуется различных по форме кроссвордов.
В качестве удобного способа организации простейшей тестовой базы может служить следующий код, записывающий в радел базы данных существительные русского языка в виде списков из ASCII-кодов:
При такой организации словаря шаблон для кроссворда также должен быть некоторым набором списков, содержащих свободные ячейки (клетки) для заполнения. В качестве примера возьмем простейший шаблон, представленный на рисунке.
A |
B |
C |
D |
E |
P |
R |
T |
||
F |
G |
H |
I |
J |
Q |
S |
U |
||
K |
L |
M |
N |
O |
Рис. 1. Простейший пример кроссворда
Для представления такого шаблона можно воспользоваться множеством различных вариантов. В качестве одного из возможных решений можно использовать такой код:
Разумеется, арифметические операции здесь не играют своей привычной роли, а лишь служат для сцепления шаблонов для слов, при этом «+» использован для указания перехода к описанию шаблонов расположенных вертикально.
Матрица инцидентности графа
Для графа G = (X,R), где X – множество вершин, а R – множество ребер, матрица инцидентности – это прямоугольная матрица M={mij}. mij = 1 тогда и только тогда, когда вершина xi инцидентна ребру rj и mij = 0 в противном случае. Пример простейшего графа и его матрицы представлен на рис. 2.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.