Логіка
задачі на мові програмування b> Prolog b> p>
Завдання 1. p>
Ввести
запропонований текст програми, реалізувати її і записати на диск. p>
predicates p>
hello. p>
goal p>
hello. p>
clauses p>
hello: - p>
makewindow (1,7,7, "Моя перша програма", 4,56,14,22), p>
nl,
write ( "Введіть ваше ім'я, n", "потім натисніть
Enter ."), p>
cursor (4,6), p>
readln (Name), nl, p>
write ( "Ласкаво пожаловатьn в PDC
Prolog, n ","", Name ,"!"). p>
Результат:
Ласкаво просимо до PDC Prolog,
Vladimir! P>
Навмисне
ввести друкарські помилки в текст програми і ознайомитися з повідомленнями про ці
всі помічені, виправити їх. p>
predicates p>
hello. p>
goal p>
hello. p>
clauses p>
hello: - p>
makewindow (1,7,7, "Моя перша програма", 4,56,14,22) p>
nl, write ( "Введіть ваше ім'я, n", "потім натисніть Enter ."), p>
cursor (4,6), p>
readln (Name) nl, p>
write ( "Ласкаво пожаловатьn в PDC
Prolog, n ",", Name ,!"). p>
Результат:
423 Syntax eror. P>
Завдання 2. p>
Реалізувати
програму з введенням перерахованих нижче цілей і перевірити отримані результати.
Цілі зовнішні. P>
predicates p>
book (symbol, symbol, symbol, integer). p>
clauses p>
book ( "Фігурне В.Е.", "IBM PC
для користувача "," ФиС ", 1988). p>
book ( "Пєтухов
О.А. "," Проектування ОРБД "," Суднобудування ", 1984). P>
book ( "Пєтухов
О.А. "," Об'єктно-реляційні моделі
даних "," СЗПІ ", 1987). p>
book ( "Пєтухов
О.А. "," Моделювання СМО "," СЗПІ ", 1989). P>
Prolog "," СЗПІ ", 2000). P>
book ( "Анкудинов Г.І.", "Теорія
автоматів "," СЗПІ ", 1997). p>
book ( "Миколаїв
В.І. "," Дискретні структури "," СЗПІ ", 1999). P>
Результат: X = Proektirovanie OR BD, Y = SUDOSTROENIE,
Z = 1984 p>
X = Object models of DATA, Y = SZPI, Z = 1987 p>
X = Modelirovanie CMO, Y = SZPI, Z = 1989 p>
X = PDC Prolog, Y = SZPI, Z = 2000 p>
4 Solutions p>
X = Proektirovanie OR BD p>
X = Object models of DATA p>
X = Modelirovanie CMO p>
X = PDC Prolog p>
4 Solutions p>
E = Petuchov OA, X = Object models of DATA, Z = 1987 p>
E = Petuchov OA,
X = Modelirovanie CMO, Z = 1989 p>
E = Petuchov O.A., X = PDC Prolog, Z = 2000 p>
E = Ankudinov G.I., X = Automat theory, Z = 1997 p>
E = Nikolaev VI, X = Diskretniye struktury, Z = 1999 p>
5 Solutions p>
Завдання 3. p>
Реалізувати
програму з введенням всіх перерахованих зовнішніх цілей і перевірити одержані
результати: p>
domains p>
name = symbol p>
year_in,
year_out = integer p>
predicates p>
parents (name, name) p>
woman (name) p>
man (name) p>
offspring (name, name) p>
father (name, name) p>
mother (name, name) p>
parent_parents (name, name) p>
brother (name, name) p>
grandfather (name, name) p>
grandmother (name, name) p>
emperor (name, year_in, year_out) p>
emperor_was (name, integer) p>
clauses p>
parents ( "Петро III", "Павло I "). p>
parents ( "Катерина
II "," Павло I "). p>
parents ( "Павло I", "Олександр I "). p>
parents ( "Павло I", "Микола I "). p>
parents ( "Микола
I "," Олександр II "). p>
parents ( "Олександр
II "," Олександр III "). p>
parents ( "Олександр
III "," Микола II "). p>
woman ( "Катерина II "). p>
man ( "Петро III "). p>
man ( "Павло I "). p>
man ( "Алексндр I "). p>
man ( "Микола I "). p>
man ( "Олександр II "). p>
man ( "Олександр III "). p>
man ( "Микола II "). p>
offspring (Y, X):-parents (X, Y). p>
father (X, Y):-parents (X, Y), man (X). p>
mother (X, Y):-parents (X, Y), woman (X). p>
parent_parents (X, Z):-parents (X, Y), parents (Y, Z). p>
brother (X, Y):-parents (Z, X), parents (Z, Y), man (X), XY. p>
grandfather (X, Y):-father (X, Z), father (Z, Y). p>
grandmother (X, Y):-mother (X, Z), father (Z, Y). p>
emperor ( "Петро
III ", 1761,1762). P>
emperor ( "Катерина II", 1762,1796). p>
emperor ( "Павло
I ", 1796,1801). P>
emperor ( "Олександр
I ", 1801,1825). P>
emperor ( "Микола
I ", 1825,1855). P>
emperor ( "Олександр
II ", 1855,1881). P>
emperor ( "Олександр III", 1881,1894). p>
emperor ( "Микола
II ", 1894,1917). P>
emperor_was (X, Y):-emperor (X, A, B), Y> = A, Y