Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Л.Р._Ш.И_2-6 / L3_Table_Window_Short

.doc
Скачиваний:
7
Добавлен:
20.02.2016
Размер:
61.95 Кб
Скачать

ЛАБОРАТОРНАЯ РАБОТА

Пролог. Вывод таблиц. Встроенные предикаты

работы с окнами

ЦЕЛЬ РАБОТЫ

 изучение и освоение приемов формирования выходных документов в виде таблиц;

 Изучение встроенных предикатов организации интерфейса

ПОДГОТОВКА К РАБОТЕ

 изучить методику формирования таблицы с заголовком

 изучить синтаксис предикатов makewindow() - создание окна,

removewindow - удаление окна, gotowindow()- переход к заданному окну,

 изучить синтаксис предикатов ввода-вывода информации

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1. Загрузить компилятор языка логического программирования

2. Составить программу, описывающую предметную область:

сведения о личности (имя, возраст, рост, пол). Задать не менее 5 фактов

3. Составить запрос в виде внутренней цели, обеспечивающий вывод всех сведений из внутренней базы данных.

4. Модифицировать программу так, чтобы она выводила сведения в виде таблицы, имеющей заголовок, тело и окончание.

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

7. Экспериментально определить коды цветов текста и фона.

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Вывод таблицы производится в три этапа. Сначала выводится заголовок таблицы:

pr_table:- write(“-------------------------------------“), nl,

write(“I name I phone I date I”), nl,

write(“-------------------------------------“), nl,

fail.

затем тело таблицы:

pr_table:- hand_book(N, P, D),

write(“I “, N, “ I “, P, “ I “, D, “ I”), nl, fail.

и наконец – заключительная часть:

pr_table:- write(“-------------------------------------“), nl.

Запрос на вывод таблицы формируется в секции goal: pr_table. Для того, чтобы Пролог выполнил все три правила, служит предикат отката – fail, который помещается в конце первых двух правил.

Пролог-программа может обеспечить многооконный интерфейс. Для этого предусмотрены встроенные предикаты:

– создания окна makewindow

– удаления окна removewindow

– очистки окна clearwindow

– переключение активного окна gotowindow shiftwindow.

СИНТАКСИС ПРЕДИКАТОВ

makewindow(№окна, цвет текста и фона, цвет рамки, заголовок, координаты левого верхнего угла окна: № строки 0..23, № колонки 0..79, высота окна, ширина окна)

Коды цветов заданы в таблице

Название цвета

Код цвета текста

Код цвета фона

Черный – black

0 "0000"

0

Синий – blue

1 "0001"

16

Зеленый – green

2 "0010"

32

Синий+зеленый=Голубой – cyan

1+2=3 "0011"

16+32=48

Красный – red

4 "0100"

64

Фиолетовый – magenta

1+4=5 "0101"

16+64=80

Коричневый – brown

2+4=6 "0110"

32+64=96

Светло-серый – lightgray

1+2+3=7 "0111"

16+32+64=112

Темно-серый – darkgray

8+0=8 "1000"

Ярко-синий – lightblue

8+1=9 "1001"

Ярко-зеленый – lightgreen

8+2=10 "1010"

Ярко-голубой – lightcyan

8+2+1=11 "1011"

Розовый – lightred

8+4=12 "1100"

Малиновый – lightmagenta

8+4+1=13 "1101"

Желтый – yellow

8+4+2=14 "1110"

Белый – white

8+4+2+1=15 "1111"

мерцание

128

128

64

32

16

8

4

2

1

Blink

Red

Green

Blue

Red

Green

Blue

Бит мерцания

биты цвета фона

Бит яркости

биты цвета текста

Код_цвета_фона = код_цвета_текста * 16

Общий код равен сумме кодов цвета текста, фона и спецэффектов

removewindow – удаление текущего окна

removewindow(№ окна, параметр 0 – не создавать окон, следующих за удаляемым окном 1 – создавать их)

clearwindow – очистка текущего окна

gotowindow(№ окна) – переход к окну с заданным номером

shiftwindow(№ окна ) – переключает или возвращает номер активного окна

write(e1,e2, … , eN) – выводит константы или переменные в системное или текущее окно. Аргументы не могут быть свободными переменными.

writef(формат строки, e1,e2, … , eN) – выводит константы или переменные в системное или текущее окно в заданном формате. Формат строки содержит обычные символы, которые выводятся без модификации, и форматы спецификации формы %–М.PF.

спецификация

значение

– (дефис)

Показывает, что поля выравниваются слева. по умолчанию – справа.

М поле

Десятичное число, описывающее минимальный размер поля

.P поле

Описывает или точное представление числа с плавающей точкой, или максимальное количество выводимых в строке символов

F поле

Описывает специальные форматы вывода

F формат вещественного числа с фиксированной точкой 12.08

E формат вещественного числа в экспоненциальной форме 3.3e-6

G короткий формат вещественного

D формат символов или целых как десятичное число

U формат символов или целых как десятичное без знака

X формат символов или целых как шестнадцатеричного числа

C формат символов или целых чисел как символа

S строка символов

Соседние файлы в папке Л.Р._Ш.И_2-6