Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:prolog:prolog_lab:programy [2010/10/19 10:33] ikaf |
pl:prolog:prolog_lab:programy [2019/06/27 15:50] (aktualna) |
* ''delta/4'' -- obliczający deltę, argumenty kolejno: a, b, c, wynik, | * ''delta/4'' -- obliczający deltę, argumenty kolejno: a, b, c, wynik, |
* ''kwadrat/4'' -- obliczający wynik równania kwadratowego, argumenty kolejno: a, b, c, wynik. | * ''kwadrat/4'' -- obliczający wynik równania kwadratowego, argumenty kolejno: a, b, c, wynik. |
Zwróć uwagę na niedeterminizm w predykacie ''kwadrat/4'', który znajduje zero, jedno, albo dwa rozwiązania; mogą się przydać [[http://www.swi-prolog.org/pldoc/doc_for?object=section%282%2c%20%274.25%27%2c%20swi%28%27%2fdoc%2fManual%2farith.html%27%29%29|funkcje matematyczne]]. | Zwróć uwagę na niedeterminizm w predykacie ''kwadrat/4'', który znajduje zero, jedno, albo dwa rozwiązania; mogą się przydać [[http://www.swi-prolog.org/pldoc/man?section=arith|funkcje matematyczne]], w szczególności do obliczenia pierwiastka używa się ''sqrt/1''. |
| |
===== -. Rekurencja w Prologu ===== | ===== -. Rekurencja w Prologu ===== |
| |
Wpisz, przetestuj i przemyśl działanie programu rekurencyjnie liczącego silnię. | Wpisz, przetestuj i przemyśl działanie programu rekurencyjnie liczącego silnię. |
| Uruchom program w trybie śledzenia wykonywania (trace). |
| |
| **Ćwiczenie** |
| |
| Opierając się na silni napisz program wypisujący [[http://pl.wikipedia.org/wiki/Ci%C4%85g_Fibonacciego|Ciąg Fibonacciego]]. |
| |
===== - Wybrane problemy rozwiązane w Prologu ===== | ===== - Wybrane problemy rozwiązane w Prologu ===== |
| |
| ==== Świat klocków ==== |
| Problem [[wp>Blocks_world]] |
| |
| Wczytaj {{:pl:prolog:prolog_lab:blocks.pl|}} |
| |
| Narysuj na kartce zamodelowany świat. |
| Jakie pytania można zadać? |
| <code prolog> |
| above(b1,b2). |
| above(b3,b5). |
| left(b1,b7). |
| left(b3,b3). |
| </code> |
| |
| |
| **Ćwiczenie** |
| |
| Opisz w programie taki świat: |
| <code> |
| a1 |
| a2 |
| a3 c1 c3 |
| a4 a5 c2 c4 |
| </code> |
| |
==== Wieże Hanoi ==== | ==== Wieże Hanoi ==== |
Uwaga: w Prologu operator ''\='' to nieidentyczność, czy też niemożliwość uzgodnienia termów. | Uwaga: w Prologu operator ''\='' to nieidentyczność, czy też niemożliwość uzgodnienia termów. |
| |
| ==== Dla Zainteresowanych ==== |
| Więcej ciekawych problemów [[reprezentacja_wiedzy#ciekawe_problemy|na kolejnych zajęciach]] |
| oraz w [[prolog:pllib:start|bibliotece programów]]. |
| |
===== Obserwacje ===== | ===== Obserwacje ===== |