Пролог лабы / Лаб3
.docxСанкт-Петербургский государственный электротехнический университет «ЛЭТИ»
имени В. И. Ульянова(Ленина)
Открытый факультет
Кафедра Автоматизированных Систем Обработки Информации и Управления
Лабораторная работа №3
по дисциплине: «Проектирование систем искусственного интеллекта»
Выполнил: ст. гр. 0851
Карелина Л.А
Проверил:
Соничев А.В.
Санкт-Петербург
2015
Программирование итераций
Цель работы - ознакомление с простейшими предопределенными предикатами, реализующими многооконный интерфейс; реализация на Прологе простейшей программы вычислений с использованием многооконного интерфейса.
Задание к лабораторной работе
-
Провести тестирование программы LAB03.PRO.
-
Изменить программу LAB03.PRO так, чтобы она в специально выделенных окнах выводила сумму, разность и произведение двух введенных в соответствующие окна вещественных чисел. Предикат для считывания вещественных чисел с клавиатуры - readreal(Number).
Порядок выполнения задания
-
Загрузить Турбо-Пролог.
-
Загрузить программу LAB3.PRO и убедиться в правильности ее работы. Для запуска программы задайте цель start.
-
Внести требуемые изменения.
Содержание отчета
Отчет должен содержать полученный текст программы и результаты ее работы.
Текст программы:
predicates
start
run()
do_sums
set_up_windows
clear_windows
goal
start.
clauses
start :- set_up_windows, do_sums.
set_up_windows :-
makewindow(1, 112, 114, "", 0, 0, 25, 80),
makewindow(1, 120, 114, "Left operand", 2, 5, 5, 25),
makewindow(2, 120, 114, "Right operand", 2, 50, 5, 25),
makewindow(3, 57, 33 , "", 7, 5, 3, 70),
nl, write(" GIVES"),
makewindow(4, 36, 103, "Sum", 10, 5, 5, 20),
makewindow(5, 53, 74, "Diff", 10, 30, 5, 20),
makewindow(6, 75, 12, "Mult", 10, 55, 5, 20),
makewindow(7, 94, 13, "", 17, 22,3, 35).
do_sums :- run(), clear_windows, do_sums.
run() :-
shiftwindow(1),
cursor(2, 1), readreal(X),
shiftwindow(2),
cursor(2, 1), readreal(Y),
shiftwindow(4), Z1=X+Y, cursor(2, 2), write(Z1),
shiftwindow(5), Z2=X-Y, cursor(2, 2), write(Z2),
shiftwindow(6), Z3=X*Y, cursor(2, 2), write(Z3),
shiftwindow(7),
write(" Please press any key"),
readchar(_).
clear_windows :-
shiftwindow(1), clearwindow,
shiftwindow(2), clearwindow,
shiftwindow(4), clearwindow,
shiftwindow(5), clearwindow,
shiftwindow(6), clearwindow,
shiftwindow(7), clearwindow.
Результат работы