Скачиваний:
74
Добавлен:
17.06.2016
Размер:
89.62 Кб
Скачать

Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»

имени В. И. Ульянова(Ленина)

Открытый факультет

Кафедра Автоматизированных Систем Обработки Информации и Управления

Лабораторная работа №2

по дисциплине: «Проектирование систем искусственного интеллекта»

Выполнил: ст. гр. 0851

Карелина Л.А

Проверил:

Соничев А.В.

Санкт-Петербург

2015

Программирование итераций

Цель работы - ознакомление с предопределенными предикатами ввода/вывода, неудачного завершения и отсечения; изучение метода программирования итераций; реализация на Прологе итерационного процесса.

Задание к лабораторной работе

  1. Провести тестирование программы LAB2.PRO .

  2. Изменить программу LAB2.PRO так, чтобы она воспринимала целые числа, выводила их на экран и завершалась при вводе числа 0.

  3. Модифицировать программу LAB2.PRO так, чтобы она воспринимала два десятичных числа и выводила их на экран.

  4. Модифицировать программу LAB2.PRO таким образом, чтобы она вычисляла сумму двух введенных десятичных чисел и выдавала эту сумму на экран. Программа должна завершаться, если одно из двух вводимых чисел равно 0.

Порядок выполнения задания

  1. Загрузить Турбо-Пролог.

  2. Загрузить программу LAB2.PRO и убедиться в правильности ее работы.

  3. Внести требуемые изменения.

Содержание отчета

Отчет должен содержать полученные тексты программ и результаты их работы.

Текст программы:

domains

intvalue = integer

realvalue = real

name = symbol

predicates

repeat

do_echo

do_step2

do_step3

do_step4

check(name)

checkint(intvalue)

checkreal(realvalue)

checkrealpair(realvalue, realvalue)

clauses

repeat.

repeat :- repeat.

do_echo :-

repeat,

readln(Name),

write(Name), nl,

check(Name), !.

check(stop) :-

nl, write("Bye!").

check(_) :- fail.

do_step2 :-

repeat,

readint(Value),

write(Value), nl,

nl,

checkint(Value),!.

do_step3 :-

repeat,

readreal(Value1),

readreal(Value2),

nl,

write(Value1), nl,

write(Value2), nl,

nl,

checkrealpair(Value1, Value2), !.

do_step4 :-

repeat,

readreal(Value1),

readreal(Value2),

nl,

Value3 = Value1 + Value2,

write(Value1, " + ", Value2, " = ", Value3),

nl, nl,

checkrealpair(Value1, Value2), !.

checkint(0) :-

write("Bye!").

checkint(_) :- fail.

checkreal(0) :-

write("Bye!").

checkreal(_) :- fail.

checkrealpair(0,_) :-

write("Bye!").

checkrealpair(_,0) :-

nl, write("Bye!").

checkrealpair(_,_) :-

fail.

Результат работы

Шаг 2

ввод целых чисел, вывод их на экран, завершение при вводе числа 0.

Шаг 3

ввод двух десятичных чисел и вывод их на экран, завершение при вводе 0.

Шаг 4

вычисление суммы двух введенных десятичных чисел, вывод этой суммы на экран. завершение, если одно из двух вводимых чисел равно 0.

Соседние файлы в папке Пролог лабы