Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:prolog:prolog_lab:listy2 [2010/03/22 12:11]
esimon Zagadka
pl:prolog:prolog_lab:listy2 [2019/06/27 15:50] (aktualna)
Linia 5: Linia 5:
 Korzystając z wiedzy zdobytej w [[listy1|pierwszej części laboratorium z listami]] proszę rozwiązać następujące problemy: Korzystając z wiedzy zdobytej w [[listy1|pierwszej części laboratorium z listami]] proszę rozwiązać następujące problemy:
  
-  - zadać cel powodujący usunięcie 3 ostatnich elementów listy L, w wyniku powstaje lista L1, użyć ''​sklej''​. +  - zdefiniować predykat, ​powodujący usunięcie 3 ostatnich elementów listy L, w wyniku powstaje lista L1, użyć ''​sklej''​. 
-  - zadać cel powodujący usunięcie 3 pierwszych elementów listy L, w wyniku powstaje lista L1, użyć ''​sklej''​. +  - zdefiniować predykat, ​powodujący usunięcie 3 pierwszych elementów listy L, w wyniku powstaje lista L1, użyć ''​sklej''​. 
-  - zadać cel powodujący usunięcie 3 pierwszych i ostatnich elementów listy L, w wyniku powstaje lista L2, użyć ''​sklej''​.+  - zdefiniować predykat, ​powodujący usunięcie 3 pierwszych i ostatnich elementów listy L, w wyniku powstaje lista L2, użyć ''​sklej''​.
   - zdefiniować parę komplementarnych predykatów ''​nieparzysta(L)''​ oraz ''​parzysta(L)''​ sprawdzajacych czy argument jest listą o odpowiednio nie/​parzystej długości.   - zdefiniować parę komplementarnych predykatów ''​nieparzysta(L)''​ oraz ''​parzysta(L)''​ sprawdzajacych czy argument jest listą o odpowiednio nie/​parzystej długości.
 +    * czy Twój predykat potrafi również **utworzyć** listę o zadanej parzystości?​ (jako argument podajemy niewiadomą,​ a nie stałą) ​
   - zdefiniować predykat ''​palindrom(L)'',​ L jest palindromem,​ jeżeli czyta się tak samo od przodu i tyłu, np. ''​[a,​l,​a]'',​ ''​[m,​a,​d,​a,​m]''​. (podpowiedź:​ można nie/użyć ''​odwroc''​.)   - zdefiniować predykat ''​palindrom(L)'',​ L jest palindromem,​ jeżeli czyta się tak samo od przodu i tyłu, np. ''​[a,​l,​a]'',​ ''​[m,​a,​d,​a,​m]''​. (podpowiedź:​ można nie/użyć ''​odwroc''​.)
   - zdefiniować predykat ''​przesun(L1,​L2)'',​ gdzie L2, jest przesuniętą rotacyjnie o jeden element L1, np.: <code prolog>   - zdefiniować predykat ''​przesun(L1,​L2)'',​ gdzie L2, jest przesuniętą rotacyjnie o jeden element L1, np.: <code prolog>
Linia 119: Linia 120:
   * ''​bagof(X,​a(X,​Y),​L)''​ spowoduje znalezienie listy L na ktorej beda znajdować się wartości X dla konkretnej (znalezionej) wartości Y (wiele rozwiązań,​ lista dla każdej wartości Y).   * ''​bagof(X,​a(X,​Y),​L)''​ spowoduje znalezienie listy L na ktorej beda znajdować się wartości X dla konkretnej (znalezionej) wartości Y (wiele rozwiązań,​ lista dla każdej wartości Y).
  
 +FIXME: składnia z ^ nie działa (w zainst. wersji SWI), jeżeli jest użyta jako cel w powłoce SWI - należy zdefiniować odpowiedni predykat jej używający w pliku.
  
 Predykat //​findall/​3//​ wymusza wyszukanie wszystkich możliwych wyników. Predykat //​findall/​3//​ wymusza wyszukanie wszystkich możliwych wyników.
Linia 180: Linia 182:
  
 ===== -. Zagadka ===== ===== -. Zagadka =====
-Na blokach piramidek (patrz rysunki) należy umieścić cyfry od 1 do 9. W niebieskich rzędach cyfry muszą być różne, w żółtych - mogą się powtarzać, a w fioletowych ​- przynajmniej jedna powtórka jest obowiązkowa. Każda cyfra (poza umieszczonymi w podstawie) musi być sumą **lub** różnicą dwu cyfr znajdujących się bezpośrednio pod nią. Część liczb jest już na swoich miejscach. Napisz program w Prologu, który poda rozwiązania piramidek.+Na blokach piramidek (patrz rysunki) należy umieścić cyfry od 1 do 9. W niebieskich rzędach cyfry muszą być różne, w żółtych - mogą się powtarzać, a w różowych ​- przynajmniej jedna powtórka jest obowiązkowa. Każda cyfra (poza umieszczonymi w podstawie) musi być sumą **lub** różnicą dwu cyfr znajdujących się bezpośrednio pod nią. Część liczb jest już na swoich miejscach. Napisz program w Prologu, który poda rozwiązania piramidek.
  
 Wskazówka: Przeczytaj //"​helpa"//​ do predykatu //​list_to_set/​2//​. Może się okazać przydatny... Wskazówka: Przeczytaj //"​helpa"//​ do predykatu //​list_to_set/​2//​. Może się okazać przydatny...
  
-{{:​pl:​prolog:​prolog_lab:​zagadka-1.png|Zagadka 1}}{{ :​pl:​prolog:​prolog_lab:​zagadka-2.png|}}+{{:​pl:​prolog:​prolog_lab:​zagadka-1.png|Zagadka 1}} 
 +{{:​pl:​prolog:​prolog_lab:​zagadka-2.png|Zagadka 2}}
  
 ===== Komentarze ===== ===== Komentarze =====
pl/prolog/prolog_lab/listy2.1269256277.txt.gz · ostatnio zmienione: 2019/06/27 15:59 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0