
- •27. Управление программой. Внутренние подпрограммы унификации Пролога.
- •28. Структура программ на Прологе. Предикаты и утверждения.
- •29. Арифметика в Прологе.
- •30. Программирование повторяющихся операций. Повторение и откат.
- •31. Методы повторения. Методы организации рекурсии.
- •32. Списки в Прологе. Применение списков в программе.
- •34. Использование метода с разделением списка на голову и хвост. Компоновка данных в список.
- •34. Присваивание переменным строковых значений. Конкатенация строк. Преобразование данных.
- •35 Создание символьных префиксов. Преобразование строк в список символов.
- •38. Преобразование строк в списки атомов с функторами.
- •39.Предикаты Пролога для работы с файлами. Использование предикатов для работы с файлами.
- •40. Программы для обработки файлов.
- •41. Дозапись данных в файл
- •42. Использование файлов прямого доступа
- •43. Использование предикатов для работы с окнами. Использование окон для ввода вывода.
- •44. Использование графики в программе. Использование графики черепашки.
- •45.Использование звук и музыки.
- •46.Базы данных в Прологе. Предикаты динамической базы данных в Прологе.
- •47. Создание базы данных, располагающейся в оперативной памяти.
- •48. Создание базы данных, располагающейся на диске
- •49. Принципы построения экспертных систем
- •50.Методы вывода и система пользовательского интерфейса эс.
- •51.Экспертные системы, базирующиеся на правилах.
- •52.Экспертные системы, базирующиеся на логике.
43. Использование предикатов для работы с окнами. Использование окон для ввода вывода.
В систему программирования Турбо-Пролог включено пять пре-
дикатов, позволяющих программе управлять окнами различных раз-
меров. Это предикаты makewindow, shiftwindow, removewindow,
clearwindow и gotowindow. С их помощью можно создавать несколь-
ко окон, выполнять ввод и вывод в определенные окна и устанав-
ливать атрибуты окон.
8.1.1. Создание окон предикатом makewindow
Предикат makewindow является основой всех операций над ок-
нами в Турбо-Прологе. Его синтаксическая форма:
makewindow(Window_number,
Screen_attribute,
Frame_attribute,
Frame_string,
Starting_row,
Starting_column,
Window_height,
Window_width)
Значения восьми параметров определяют характеристики окна.
Параметр Window_number, целое число, идентифицирует окно в
программе. Это число используется в качестве ссылки предикатом
gotowindow и др.
Целочисленное значение, присвоенное аргументу
Screen_attribute, определяет цвета символов и фона.
Аргумент Frame_attribute предиката makewindow есть целое
число, значение которого определяет рамку окна. Если значение
атрибута - 0, окно не имеет видимой границы.
Аргумент Frame_string задает метку окна. Например, меткой
окна может быть "Главное Меню","Столбиковая Диаграмма","Вспомо-
гательное Меню" и "Окно Вывода".
Аргумент Starting_row предиката makewindow есть целое чис-
ло, определяющее верхнюю строку (линию) создаваемого окна.
Аргумент Starting_column предиката makewindow есть целое
число, указывающее крайний левый столбец окна.
Аргумент Window_height есть целое число, определяющее ко-
личество строк, занимаемых создаваемым окном.
Аргумент Window_width есть целое число, указывающее число
столбцов, занимаемых окном.
Предикат shiftwindow используется для смены текущего окна
(переключения).
Предикат gotowindow позволяет выполнять быстрое переключе-
ние между двумя окнами, которые не перекрываются.
Предикат clearwindow удаляет из текущего окна все текстовые и
графические изображения.
Предикат removewindow удаляет текущее окно с экрана.
Стандартные предикаты ввода и вывода - read, readint,
readchar, write и nl - также работают с любым текущим окном.
Это означает, что предикаты ввода и вывода работают с любым ок-
ном, которое было сделано текущим при помощи makewindow,
gotowindow или shiftwindow.
По умолчанию предполагается, что курсор расположен в верх-
нем левом углу окна. Однако можно использовать предикат cursor
и помещать курсор в любую позицию текущего окна. Этот пре-
дикат имеет вид:
cursor(Row_number,Column_number).
44. Использование графики в программе. Использование графики черепашки.
Управление графическими режимами и цветами в Турбо-Прологе
осуществляется с помощью параметров, задаваемых в предикатах
graphics и makewindow. Предикат graphics используется для вклю-
чения графического режима CGA или EGA.
Предикаты dot и line используются для изображения объектов
в графическом режиме.
(Picture elements - элементы, из которых состоит рисунок.)
Разница между традиционной графикой, реализуемой с помощью
абсолютных координат, и графикой черепашки. В первом случае все
координаты отсчитываются от угла рамки экрана и, таким образом,
являются абсолютными. Во втором же, координаты каждого следую-
щего положения курсора вычисляются, основываясь на его предыду-
щем положении и, следовательно, являются относительными.
Предикат penup используется тогда, когда движущаяся чере-
пашка не должна оставлять за собой "след". Данный предикат ар-
гументов не имеет. Предикат pendown противоположен по действию
предикату penup и используется в том случае, когда черепашка
должна оставлять за собой "след".
Предикат pencolor устанавливает цвет "следа" черепахи. Он
имеет вид:
pencolor(Color_number)
Предикат forward используется для передвижения черепахи
вперед на указанное расстояние. Он имеет вид:
forward(Step_size)
Предикаты right и left используются для вращения черепахи.
Каждый из этих предикатов имеет аргумент, задающий угол в гра-
дусах. Они имеют вид:
left(Angle)
Предикат penpos используется для того, чтобы поместить
курсор в задаваемую координатами позицию и "прицелить" его в
заданном направлении. Он имеет вид:
penpos(Row,Column,Angle)