- •Лабораторне заняття № 1
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 2
- •1. Теоретичні відомості
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 3
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 4
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 5
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 6
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 7
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 8
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 9
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 10
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 11
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 12
- •1. Теоретичні відомості
- •1. Стара графіка.
- •2. Черепахова графіка (Turtle graphics).
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 13
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 14
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 15
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •Лабораторне заняття № 16
- •1. Теоретичні відомості
- •2. Практична частина
- •2.1. Програма роботи та завдання.
- •43018, М. Луцьк, вул.Львівська, 75
2. Практична частина
Приклад 1.
domains
row, column, step = integer
movement = up(step);
down(step);
left(step);
right(step)
predicates
move_cursor(row, column, movement)
clauses
move_cursor(R, C, up(Step)) :- cursor(R, C), R1=R-Step, cursor(R1, C).
move_cursor(R, C, down(Step)) :- cursor(R, C), R1=R+Step, cursor(R1, C).
move_cursor(R, C, left(Step)) :- cursor(R, C), C1=C-Step, cursor(R, C1).
move_cursor(R, C, right(Step)) :- cursor(R, C), C1=C+Step, cursor(R, C1).
Приклад 2.
domains
name = person(symbol, symbol) /* (First, Last) */
birthday=b_date(symbol,integer,integer) /*(Month, Day,Year)*/
ph_num = symbol /* Phone_number */
predicates
phone_list(name, symbol, birthday)
get_months_birthdays
convert_month(symbol, integer)
check_birthday_month(integer, birthday)
write_person(name)
clauses
get_months_birthdays:- makewindow(1,7,7, " This Month's
Birthday List ", 0, 0, 25, 80),
write(" First name\t Last Name\n"),
date(_, This_month, _),
phone_list(Person, _, Date),
check_birthday_month(This_month, Date),
write_person(Person),
fail.
get_months_birthdays :- write("\n\n Press any key to
continue: "),
readchar(_).
write_person(person(First_name, Last_name)):-
write(" ",First_name, "\t\t ", Last_name), nl.
check_birthday_month(Mon, b_date(Month, _, _)) :-
convert_month(Month, Month1),
Mon = Month1.
phone_list(person(ed, willis), "767-8463", b_date(jan, 3,
1955)).
phone_list(person(benjamin, thomas), "438-8400",
b_date(feb, 5, 1985)).
phone_list(person(ray, william),"555-5653", b_date(mar,
3,1935)).
phone_list(person(thomas, alfred), "767-2223",
b_date(apr, 29, 1951)).
phone_list(person(chris, grahm),
"555-1212", b_date(may, 12, 1962)).
phone_list(person(dustin, robert), "438-8400", b_date(jun,
17, 1980)).
phone_list(person(anna, friend), "767-8463",
b_date(jun, 20, 1986)).
phone_list(person(brandy, rae),"555-5653", b_date(jul, 16,
1981)).
phone_list(person(naomi, friend), "767-2223", b_date(aug,
10, 1981)).
phone_list(person(christina, lynn), "438-8400",
b_date(sep, 25, 1981)).
phone_list(person(kathy, ann),
"438-8400", b_date(oct, 20, 1952)).
phone_list(person(elizabeth, ann), "555-1212", b_date(nov,
9, 1984)).
phone_list(person(aaron, friend), "767-2223",
b_date(nov, 15, 1987)).
phone_list(person(jennifer, caitlin), "438-8400",
b_date(dec, 31, 1981)).
convert_month(jan, 1).
convert_month(feb, 2).
convert_month(mar, 3).
convert_month(apr, 4).
convert_month(may, 5).
convert_month(jun, 6).
convert_month(jul, 7).
convert_month(aug, 8).
convert_month(sep, 9).
convert_month(oct, 10).
convert_month(nov, 11).
convert_month(dec, 12).
2.1. Програма роботи та завдання.
2.1.1. Створити в середовищі Turbo Prolog програму подібну прикладу 1 та дослідити її.
2.1.2. Задати різні варіанти цілей та проаналізувати отримані результати.
2.1.3. Дослідити програму з прикладу 2. Зафіксувати результати.
2.1.4. Зафіксувати у звіті вихідні коди створених програм та логіку їх роботи.
2.1.5. Відповісти письмово на контрольні питання.
Контрольні питання:
1) Що таке прості дані?
2) Різниця між простими та складними даними?
3) Поняття функтора?
4) Яким чином може здійснюватись уніфікація складних об’єктів?
