Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:krr:lab_sterowanie_wnioskowaniem [2013/03/06 08:16] gjn utworzono |
pl:dydaktyka:krr:lab_sterowanie_wnioskowaniem [2019/06/27 15:50] (aktualna) |
?- capital_of(A,B), write(B), write(' to stolica '), write(A), nl. | ?- capital_of(A,B), write(B), write(' to stolica '), write(A), nl. |
?- capital_of(A,B), write(B), write(' to stolica '), write(A), nl, fail. | ?- capital_of(A,B), write(B), write(' to stolica '), write(A), nl, fail. |
| |
| |
| Generowanie trójkątów pitagorejskich: |
| <code prolog> |
| %%% liczby-pitagoras.pl |
| |
| %%% Prosty program ilustrujący ideę generacji/wyszukiwania rozwiązań w Prologu |
| %%% i zastosowania do generowania całkowitoliczbowych trójkątów Pitagorejskich |
| |
| % Fakty: definicja dostępnych cyfr. |
| cyfra(0). |
| cyfra(1). |
| cyfra(2). |
| cyfra(3). |
| cyfra(4). |
| cyfra(5). |
| cyfra(6). |
| cyfra(7). |
| cyfra(8). |
| cyfra(9). |
| |
| % Przykładowa definicja liczby trzycyfrowej |
| liczba(X):- |
| cyfra(S), |
| cyfra(D), |
| cyfra(J), |
| X is 100*S+10*D+J. |
| % Generacja trójkąta i wypisywanie A*A + B*B = C*C |
| pitagoras :- |
| liczba(A), A > 0, A =< 20, |
| liczba(B), B > 0, B =< 20, |
| liczba(C), C > 0, C =< 25, |
| D is A*A + B*B - C*C, |
| D = 0, |
| write('A = '),write(A), write(' '), |
| write('B = '),write(B), write(' '), |
| write('C = '),write(C), write(' '),nl, |
| fail. |
| pitagoras :- |
| write('====='). |
| |
| |
| % Modyfikacje: |
| % 1. Zmiana zakresu. |
| % 2. Zmiana kolejności. |
| % 3. Zmiana sposobu wypisywania. |
| |
| % eof |
| </code> |
| |
===== Interakcja z programem ===== | ===== Interakcja z programem ===== |
Atomy, Termy, Klauzule i Predykaty - arność. | Atomy, Termy, Klauzule i Predykaty - arność. |
| |
===== Prosty program diagnostyczny ===== | |
| |
Program realizuje prosty system diagnostyczny (w praktyce wnioskujący wstecz system ekspertowy). | |
Jest to kompletny program wyposażony w: | |
* bazę wiedzy o problemie | |
* mechanizm wnioskowania - wyszukiwanie rozwiązań | |
* dynamiczną modyfikację/rozbudowę bazy wiedzy | |
* obsługę plików (i/o) | |
* interfejs (prosty) użytkownika | |
| |
System: {{pl:prolog:prolog_lab:car.pl}} | |
| |
Plik pomocniczy: {{pl:prolog:prolog_lab:getyesno.pl}} | |
| |
===== Wbudowany system pomocy ===== | ===== Wbudowany system pomocy ===== |