Na początku był Prolog
2.6 Problemy szeregowania optymalnego
2.6.3 Labirynt w Hampton Court
Często długości odcinków labiryntu nie są znane. Celem wówczas jest najczęściej znalezienie drogi z minimalną liczbą rozgałęzień. Pokazano to dla przykładu znalezienia drogi w labiryncie w Hampton Court. Jerome K. Jerome w znanej książce Trzech panów w łódce (nie licząc psa) opisuje przygody kogoś pragnącego znaleźć wyjście ze słynnego labiryntu żywopłotowego w Hampton Court koło Londynu16, zob. rysunek 2.20:
”Harris zapytał mnie, czy byłem kiedy w labiryncie w Hampton Court. On sam wszedł tam raz, by kogoś oprowadzić. Przestudiował plan labiryntu - rzecz to była najprostsza pod słońcem, po prostu dziecinna igraszka nie warta dwóch pensów, jakie pobierano za wejście do środka. Doszedł do wniosku, że plan sporządzono tylko w celu nabierania gości, bo jego wartość równała się zeru i było to zwyczajne zawracanie głowy.
Rysunek 2.20: Plan labiryntu w Hampton Court
Osobą, którą Harris zabrał do labiryntu, był jego kuzyn z prowincji. - Wdepniemy tam na chwilkę - mówił Harris do krewniaka - byś mógł mówić, że byłeś w hamptońskim labiryncie, ale nic tam nie ma. Trzeba mieć źle w głowie, żeby to nazywać labiryntem. Cała sztuka w tym, żeby stale skręcać w pierwszy chodnik na prawo. Zrobimy sobie mały spacer w kółko -po dziesięciu minutach wyjdziemy i zjemy drugie śniadanie.
W chwilę po wejściu do środka Harris z kuzynem spotkali parę osób, które im powiedziały, że są tutaj od trzech kwadransów i że labirynt dał im się już we znaki. Harris odparł, że jeśli chcą, to mogą wszyscy iść za nim. Właśnie bowiem wybiera się na spacerek, zrobi kółko i wraca. Zbłąkana gromadka przyjęła z wdzięcznością zaproszenie Harrisa i ustawiła się za nim.
Ruszyli razem. Po drodze zbierali zwiedzających, którzy szukali wyjścia, i pomału zgroma-dzili za sobą wszystkich ludzi z labiryntu. Ci, którzy porzucili już nadzieję, że dostaną się do środka lub że wyjdą kiedyś i zobaczą swój dom rodzinny i przyjaciół, nabierali otuchy na
16Tekst zaczerpnięto z polskiego wydania nakładem Młodzieżowej Agencji Wydawniczej, Warszawa 1986, w tłumaczeniu Kazimierza Piotrowskiego.
widok Harrisa i jego świty, przyłączali się do orszaku i błogosławili swemu przywódcy. Harris zapewniał potem, że w ślad za nim kroczyło co najmniej dwadzieścia osób. Jakaś kobiecina z dzieckiem na ręku, która błądziła tu od samego rana, uczepiła się ramienia Harrisa, drżąc na myśl, że może go stracić z oczu. Harris wciąż skręcał w prawo, drogi jednak nie ubywało.
Kuzyn zauważył, że labirynt jest, zdaje się, bardzo duży. - Ba! Jeden z największych w Europie - odparł Harris.
- Chyba tak - kuzyn na to - bośmy zrobili już dobre dwie mile.
Harrisowi też zaczęło to się wydawać podejrzane, ale nic nie mówił. Gdy jednak zobaczyli na ziemi pół ciasteczka, a kuzyn przysiągł, że widział je przed siedmioma minutami, Harris bąk-nął ”Och, niemożliwe”, na co kobiecina z dzieckiem na ręku powiedziała: ”Całkiem możliwe”, bo sama wzięła dziecku kawałek ciastka i rzuciła na ziemię tuż przed spotkaniem Harrisa. Do-dała też, że wolałaby nigdy go nie spotkać i że uważa go za zwykłego oszusta. Harris strasznie się rozgniewał. Rozłożył plan i objaśniał im, na czym polega jego system. - Plan bardzo by się przydał - zauważył ktoś z tłumu - gdybyś pan wiedział, gdzie jesteśmy teraz. Harris tego nie wiedział, odparł więc, że najlepiej będzie jeżeli powrócą do wejścia labiryntu i zaczną na nowo. Myśl, żeby zacząć na nowo, nie wzbudziła wielkiego entuzjazmu, natomiast wszyscy się ochoczo zgodzili, że trzeba wrócić do wejścia. Zrobili więc w tył zwrot i znów poszli z Harri-sem w odwrotnym kierunku. Po dziesięciu minutach znaleźli się w samym środku labiryntu.
Harris zrazu miał ochotę wmówić im, że o to właśnie chodziło. Ale tłum przyjął groźną po-stawę, przewodnik położył więc to na karb ślepego trafu. W każdym razie miejsce, w którym się znaleźli, można było przyjąć za punkt wyjścia. Wiedzieli nareszcie, gdzie są, jeszcze raz przestudiowali plan, wszystko wydało im się jasne jak słońce. Po raz trzeci ruszyli w drogę.
W trzy minuty później znów byli w samym środku labiryntu. Potem już absolutnie nigdzie nie mogli się dostać. W którąkolwiek stronę się zapuścili, zawsze wracali do środka labiryntu.
Kursowali już tak regularnie, że niektórzy zatrzymali się tam i czekali, aż reszta odbędzie spacerek w koło i wróci do nich. Po jakimś czasie Harris znów wyciągnął swój plan, ale na sam jego widok tłum zaczął się gorączkować. Powiedziano mu, że może tego papieru użyć na papiloty i zrobić sobie baranka na głowie. Harris mówił potem, że, niestety, odniósł nieodparte wrażenie, iż stał się niepopularny. W końcu wszyscy dostali kręćka i nieprzytomnymi głosami wołali dozorcę labiryntu. Nadbiegł, wlazł na drabinę za ścianą i wykrzykiwał, co mają robić.
Ale tak im się strasznie pomieszało w głowach, że już nic nie mogli zrozumieć. Dozorca więc kazał im czekać na miejscu i obiecał, że do nich przyjdzie. Zbili się w wystraszoną gromadkę i czekali. Dozorca zlazł z drabiny i wszedł do labiryntu. Nieszczęście chciało, że był to mło-dy dozorca, który od niedawna tu pracował. Wszedł, ale nie mógł ich znaleźć i rychło sam zabłądził. Co chwila ukazywał się im w oddali - widać było, jak idzie pod drugiej stronie żywopłotu. Ujrzawszy ich, szybkim krokiem zmierzał ku nim, czekali więc przez pięć minut, aby znów ujrzeć go dokładnie w tym samym miejscu co przedtem. Pytał się wówczas, gdzie się podziali. Wyszli dopiero wtedy, gdy jeden ze starych dozorców wrócił z obiadu.”
Dla celów modelowania dobrze jest przedstawić labirynt w postaci pokazującej współrzędne wszystkich rozwidleń jak na rysunku 2.21.
Poniżej przedstawiono program 2_23_hampton_court.pl znajdowania najkrót-szej drogi w labiryncie w Hampton Court od środka labiryntu (oznaczonego lite-rą S) do wyjścia z labiryntu (oznaczonego litelite-rą E). Długość drogi jest mierzona liczbą przebytych nie rozwidlających się odcinków. Odcinek nie rozwidlający się jest odcinkiem łączącym jedno rozwidlenie z następnym.
Rysunek 2.21: Współrzędne rozwidleń labiryntu
Program 2_23_hampton_court.pl jest następujący:
/*1*/
top:-/*2*/ assert(droga_najkrotsza([[]],80)), /*3*/ labirynt.
% Model labiryntu jest opisany predykatami:
% ’od_do(Współrzędne_rozwidlenia, Współrzędne_sąsiedniego rozwidlenia)’:
/*4*/ od_do([18,16],[17,16]).
/*5*/ od_do([17,16],[17,32]).
/*6*/ od_do([17,16],[6,5]).
/*7*/ od_do([6,5],[1,15]).
/*8*/ od_do([6,5],[12,5]).
/*9*/ od_do([12,5],[13,12]).
/*10*/ od_do([12,5],[3,17]).
/*11*/ od_do([3,17],[5,22]).
/*12*/ od_do([3,17],[13,22]).
/*13*/ od_do([13,22],[7,24]).
/*31*/ write("Najkrotsza droga to "),write(Rozwiazanie),nl,
/*32*/ write("Jej dlugosc (mierzona liczba rozwidlen) jest rowna "), write(Dlugosc),nl,
/*33*/ fail.
/*34*/
labirynt:-/*34*/ write("To wszystkie rozwiazania!"),nl.
/*35*/
/*49*/ aktualizuj_najkrotsza(_,Dlugosc_aktualna):-/*50*/ droga_najkrotsza(_,Dlugosc),
/*51*/ Dlugosc_aktualna>Dlugosc,!.
Rozwiązaniem jest:
/*10*/ Najkrotsza droga to:
/*10*/ [[9,16], [10,30], [6,28], [5,22], [3,17], [12,5], [6,5], [17,16], [18,16]]
/*10*/ Jej dlugosc (mierzona liczba rozwidlen) jest rowna 9 /*10*/ To wszystkie rozwiazania!
Najkrótszą drogę przedstawia rysunek 2.22.
Rysunek 2.22: Najkrótsza droga dla labiryntu w Hampton Court
2.6.4 Przelewanie
Ostatnim przykładem generowania trajektorii w przestrzeni stanów jest przy-kład o przelewaniu. Przyprzy-kładów o przelewaniu jest stosunkowo dużo. Wybrali-śmy następujący:
Mamy do dyspozycji trzy naczynia pozbawione podziałki o pojemnościach ośmiu, pięciu i trzech litrów. Jak należy przelewać wodę, aby osiem litrów z naczynia ośmiolitrowego rozmieścić po połowie w naczyniach ośmio- i pięcio-litrowym, przy wykorzystaniu tylko wymienionych naczyń i przy minimalnej
liczbie przelewań? Rozwiązanie przedstawia program 2_24_przelewanie.pl:
/*1*/
top:-/*2*/ Stan_poczatkowy = stan(8,0,0), /*3*/ przelej(Stan_poczatkowy,Ciag_stanow),
zmien(stan(X,Y,Z),stan(X,L,M)):-/*30*/ przelewanie(Z,Y,5,M,L). %
% przelewanie(Z_objętości_A, Do_objętości_B,
% Z_limitem_na_wypełnienie_B, Nowe_A, Nowe_B)
/*31*/
/*45*/ write("Optymalne rozwiazanie problemu : "),nl, /*46*/ write(Ciag_odwrotny),nl,
/*47*/ write("Calkowita liczba przelewan: "),write(N).
/*48*/
Calkowita liczba przelewan: 8
Przebieg przelewań przedstawiono na rysunku 2.23. Na rysunku tym - dla zo-brazowania poprawności przelewań - narysowano podziałki, których naczynia nie mają, i które nie zostały wykorzystane w programie.
Rysunek 2.23: Przebieg przelewań dla 3 naczyń
2.7 Zadania
Dziedziny
W programach prologowych deklaracje dziedzin są z reguły niejawne i dokonywane w różnych dziwnych miejscach. Znajdź dziedziny zmiennych decyzyjnych dla wszystkich programów niniejszego rozdziału.
Pozycja elementu w liście Napisz definicję predykatu:
pozycja(++Lista, ++Element, -Pozycja)
wyznaczającego pozycję elementu w liście różnych elementów.
Liczby Fibonacci’ego
Leonardo Fibonacci (c. 1170 – c. 1250) był znanym matematykiem i na-uczycielem matematyki w Republice Pisa, będącej obecnie częścią Włoch.
Jest znany głównie z prób modelowania rozwoju populacji królików, które w jego czasach były wielce pożądanym źródłem mięsa i futer.
Fibonacci zakładał, że nowo-narodzona para królików uzyska zdolność roz-rodczą po miesiącu, tak że po upływie drugiego miesiąca samica może urodzić następną parę królików. Zakładając, że króliki żyją bardzo długo i że każda para królików reprodukuje następną parę w rytmie co miesiąc od drugiego miesiąca ich życia poczynając, liczba par króliczych wzrasta w rytmie miesięcznym następująco:
0,1,1,2,3,5,8,13,21,34,55,89,144,...,
Oznaczając liczbę par króliczych na początku miesiąca n-tego przez Fn (zwaną liczbą Fibonacciego), wzrost liczby par króliczych można opisać podwójną rekurencją:
Fn= Fn−1+ Fn−2 gdzie: F0= 0, ,F1= 1.
Napisz program prologowy wyznaczający liczby Fibonacciego za pomocą rekurencji nie-ogonowej, oraz program wyznaczający te liczby za pomocą rekurencji ogonowej, z wykorzystaniem akumulatorów.
Przyjaciółki Czarka
Czarek ma pięć przyjaciółek:
1)Anna jest 27-letnią blondynką, lekarką, zamężną, matką chłopca i dziew-czynki. 2)Barbara jest 20-letnią blondynką, studentką singielką, bezdziet-ną, lubiącą gotować. 3)Celina jest 24-letnią brunetką, gospodynią domową, zamężną, bezdzietną, amatorską aktorką. 4)Danka jest 21-letnią blondyn-ką, pracującą jako sekretarka, jest rozwódblondyn-ką, ma córkę. 5)Ewa jest 25-letnią blondynką, dyplomowaną pielęgniarką, bezdzietną rozwódką, lubią-cą muzykę klasyczną. Zastosuj findal/3 dla wyznaczenia danych wszyst-kich tych przyjaciółek Czarka, które nie są rozwódkami, nie są starsze niż 24 lata i mają niesportowe hobby.
Wieczór gier
W Parafialnym Wieczorze Gier, w konkurencjach Scrabble i szachy, uczest-niczyło czterech chłopców. Arek wygrał z Markiem w szachy, Kuba był trzeci, a wygrał 16-latek. Arek był drugi w Scrabble, które wygrał 15-latek, Kuba pokonał 18-latka a 19-latek był trzeci. Bolek jest 3 lata młodszy niż
Marek. Chłopiec, który był ostatni w szachach, był trzeci w Scrabble. Tyl-ko jeden chłopiec zajął to samo miejsce w obydwu grach. Napisz program wyznaczający wiek chłopców i ich miejsca w obydwu grach.
Recital
W Szkolnym Recitalu pięciu studentów (Arek, Ewa, Bolek, Danka i Cza-rek) odegrało pięć utworów: dwa Bacha, dwa Mozarta i jeden Vivaldiego.
Występowało trzech skrzypków i dwóch pianistów. Każdy student odegrał tylko jeden utwór i grał tylko na jednym instrumencie. Wyznacz kolejność występów studentów, instrumenty na których grali i nazwiska kompozy-torów, których utwory wykonywali, jeżeli:
1. Kompozytorzy nie byli wykonywani kolejno; Vivaldiego grano jako ostat-niego, a Mozarta jako pierwszego. 2. Jeden utwór na fortepian został wyko-nany pomiędzy dwoma utworami na skrzypce, a dwa utwory na skrzypce zostały wykonane pomiędzy pierwszym i ostatnim utworem na fortepian.
3. Nie wykonywano utworów fortepianowych Mozarta. 4. Ewa grała trze-cia. 5. Czarek grał na fortepianie, tuż po Arku, który grał Mozarta. 6.
Danka nie grała utworu Vivaldiego.
Kursy mistrzowskie 17
Słynny mezzo-sopran Flora Nebbiacorno wycofała się z międzynarodowej sceny operowej, lecz ciągle organizuje kursy mistrzowskie. W ostatnim kursie było pięciu studentów: jeden sopran, jeden mezzo-sopran, dwóch tenorów i jeden bas. Pierwsze dwa głosy to panie, ostatnie dwa - to pano-wie. Ich imiona to Chris, J.P., Lee, Pat i Val; każde z tych imion może być męskim lub damskim. Ich nazwiska to Kingsley, Robinson, Robinson (nie spokrewnieni, o tym samym nazwisku), Ulrich i Walker. Napisz program wyznaczający kolejność śpiewania na kursie oraz identyfikujący każdego uczestnika kursu z imienia, nazwiska i rodzaju głosu, jeżeli wiadomo, że:
1.Pierwszymi śpiewającymi byli (w nieznanej kolejności) Pat i bas. 2.Dru-gi i trzeci student to co najmniej jeden tenor. 3.Kingsley i piąty student (który nie nazywa się Robinson) to, w nieznanej kolejności, mezzo-sopran i tenor. 4.Ani trzeci student (o nazwisku Robinson), ani Walker, nie mają imienia Chris. 5.Ulrich nie jest basem ani mezzo-sopranem. 6.Ani Lee ani Val (który/która nie był/była na miejscu trzeci) nie jest tenorem. 7.J.P.
nie był/była na miejscu trzecim, Chris nie był/była na miejscu piątym. 8 Bas nie nazywa się Robinson.
17Przykład pochodzi z http://brownbuffalo.sourceforge.net/
Konkurs konfiturowy
Na ostatnim Międzywydziałowym Konkursie Konfiturowym czterech kan-dydatów zakwalifikowało się do Finału Konfitur Truskawkowych. Wiek tych kandydatów to 14, 17, 20, 22. Tak się złożyło, że osoba, która zajęła ostatnie miejsce, była najstarsza, natomiast Czarek był o trzy lata starszy od osoby, która zajęła drugie miejsce. Bolek nie był ani najstarszy, ani naj-młodszy, a Arek uplasował się przed 17-latkiem, lecz nie wygrał konkursu.
Darkowi tym razem się nie poszczęściło i również nie wygrał konkursu.
Napisz program wyznaczający miejsce i wiek każdego uczestnika finału konkursu.
Spotkania brydżowe
Cztery panie spotykają się co tydzień na partyjce brydża. Na każdym spot-kaniu umawiają się, co każda przyniesie na następne spotkanie. Ostatnio postanowiono, że:
1. Pani Kowalska przyniesie tort czekoladowy. 2. Ani Pani Bogucka, ani Wanda ani Anna Cichocka nie przyniosą wypieków. 3. Roma, której naz-wiskiem nie jest Dzielska, przyniesie kawę. 4. Maria nie przyniesie wina.
Napisz program wyznaczający imię i nazwisko każdej z pań i to, co przy-niesie na przyszło-tygodniową partyjką brydża.
Dwa naczynia
Masz dwa naczynia, naczynie 4-litrowe i naczynie 3-litrowe. Żadne z na-czyń nie ma podziałki dla zawartości. Masz do dyspozycji kran, którym możesz się posłużyć dla napełniania naczyń wodą. Napisz program wyja-śniający, jak otrzymać w naczyniu 4-litrowym dokładnie 2 litry wody.
Statki
Na redzie portu jest pięć statków18, niebawem wypływających w morze:
1. Grecki statek wypływa o szóstej i przewozi kawę. 2. Statek w środku ma czarny komin. 3. Angielski statek wypływa o dziewiątej. 4. Francuski sta-tek z niebieskim kominem jest z lewej strony statku przewożącego kawę. 5.
Z prawej strony statku przewożącego kakao jest statek, który popłynie do Marsylii. 6. Brazylijski statek popłynie do Manili. 7. Obok statku przewo-żącego ryż jest statek z zielonym kominem. 8. Statek do Genui wypływa o piątej. 9. Statek hiszpański wypływa o siódmej i jest na prawo od stat-ku płynącego do Marsylii. 10. Statek z czerwonym kominem popłynie do Hamburga. 11. Obok statku wypływającego o siódmej jest statek z białym
18Przykład z http://www.mathsisfun.com/puzzles.
kominem. 12. Statek na granicy redy przewozi zboże. 13. Statek z czarnym kominem wypływa o ósmej. 14. Statek przewożący zboże jest obok statku przewożącego ryż. 15. Statek do Hamburga wypływa o szóstej.
Napisz program wyznaczający statek, który popłynie do Port Said i statek, który przewozi herbatę.
Przeprawa przez rzekę 1 19
Czterech podróżników (Alek, Bolek, Czarek i Darek) muszą przepłynąć rzekę w małej łódce. Łódka może przewieźć tylko 100 kg. Alek waży 90 kg, Bolek waży 80 kg, Czarek waży 60 kg a Darek 40 kg, i łącznie mają 20 kg niepodzielnego bagażu. Napisz program wyznaczający taką marszrutę, dla której wszyscy podróżnicy i ich bagaż bezpiecznie przepłyną rzekę.
Rozwiązanie:
Czarek i Darek przepływają rzekę, Darek powraca. Alek przepływa rzekę, Czarek po-wraca. Czarek i Darek przepływają rzekę ponownie, Darek popo-wraca. Bolek przepływa rzekę z bagażem, Czarek powraca. Czarek i Darek przepływają rzekę ponownie po raz ostatni.
Przeprawa przez rzekę 2
Trzech podróżników i trzy małpy (jedna duża, dwie małe) muszą przepły-nąć przez rzekę. Jest tylko jedna łódka i tylko podróżnicy lub duża małpa są wystarczająco silni, by wiosłować. Ponadto, liczba małp na którymkol-wiek brzegu nie może być większa od liczby podróżników na tym brzegu;
w przeciwnym przypadku małpy zaatakują podróżników. Napisz program wyznaczający taką marszrutę, dla której wszyscy przepłyną rzekę i żaden z podróżników nie zostanie zaatakowany przez małpy.
Przeprawa przez rzekę 3
Po jednej stronie rzeki jest rodzina składająca się z ojca, matki, syna, córki, pomocy domowej i psa. Muszą przeprawić się na drugi brzeg rzeki, dysponują tylko jedną małą łódką. Łódka umożliwia przewiezienie tylko dwóch osób lub jednej osoby i psa. Wyprawa musi spełnić jeszcze dodat-kowe ograniczenia:
• tylko ojciec, matka i pomoc domowa potrafią wiosłować;
• ojciec nie może być sam z synem, bo zaraz będzie mu czynił gorzkie wymówki z powodu jego ślamazarstwa;
19Zadanie z http://www.mathsisfun.com/puzzles.
• matka nie może być sama z córką, bo zaraz będzie jej czynić gorzkie wymówki z powodu jej bałaganiarstwa;
• pomoc domowa musi stale być z psem, który w przeciwnym przypad-ku ugryzie kogokolwiek w pobliżu.
Napisz program wyznaczający taką marszrutę, dla której wszyscy przepły-ną rzekę, nikt nie zostanie pogryziony przez psa i nikt nie będzie musiał wysłuchiwać gorzkich wymówek.
Przeprawa przez rzekę 4
Trzy pary małżeńskie AA, BB i CC (panowie Andrzej, Bogdan i Cezary, i odpowiednio panie Anna, Barbara i Celina) muszą przeprawić się przez rzekę łódką, która pomieści tylko dwie osoby. Niestety, żaden z panów nie ufa swej małżonce na tyle, by ją zostawić z którymś z pozostałych panów bez swojej obecności. Poza tym:
- Andrzej nie może przeprawiać się sam, bo boi się rzeki;
- Anna nie może wiosłować, bo jest w ciąży;
- Barbara nie może wiosłować, bo ma złamaną rękę na temblaku;
- Andrzej i Cezary nie mogą przeprawić się razem, bo się serdecznie nie lubią;
- z tych samych powodów Andrzej i Cezary nie chcą zostać sami na jednym z brzegów;
Napisz program prologowy wyznaczający marszrutę czyniącą zadość fo-biom i ograniczeniom każdego z uczestników przeprawy, zakładając że każdy pan i Celina mogą wiosłować,
Kłamcy
Wiadomo, że tylko jedna z wymienionych w dalszym ciągu osób mówi prawdę. Pan April mówi, że pan May kłamie. May twierdzi, że pan Ju-ne mówi kłamstwa. JuJu-ne uważa, że kłamie zarówno pan April jak i pan May. Napisz program określający, kto z wymienionych trzech osób mówi prawdę.
Zwierzaki
Na ostatnim spotkaniu Pets Anonymous obecni mówili o zwierzakach, któ-re ostatnio mieli i obecnie mają w domach. Janek miał psa. Osoba, która miała mysz, teraz ma kota, lecz osoba która miała kota nie ma teraz my-szy. Karol ma obecnie, lub miał (nie pamiętam dobrze) psa. Bożena nigdy nie miała myszy. Tylko jedna z osób ma obecnie tego samego zwierza-ka, co poprzednio. Roma nie odzywała się w trakcie spotkania i nikt nie
wspomniał chomika. Napisz program określający, jakiego zwierzaka każdy z obecnych miał i ma obecnie.
Wyścigi ślimaków
Po ostatnich wyścigach ślimaków, czterej właściciele ”zawodników” gratu-lowali sobie sukcesów. Tylko jeden ślimak miał taki sam numer, jak miej-sce, które zajął w wyścigu. Ślimak Alfred nie był pomalowany na żółto ani na niebiesko. Ślimak z numerem 3, pomalowany na czerwono, pokonał ślimak który był trzeci. Ślimak Artura pokonał ślimaka Anny, a ślimak Alicji pokonał ślimaka z numerem 1. Pomalowany na zielono ślimak Ali-cji był drugi. Ślimak o kolorze niebieskim miał numer 4, a ślimak Anny miał numer 1. Napisz program określający miejsca ślimaków na mecie, ich numery i ich kolory.
Zawody
Panowie Rzeźnik, Piekarz, Stolarz i Malarz spotkali się po raz pierwszy od czasu ukończenia szkoły. Każdy z nich w międzyczasie raz zmieniał za-wód. Nikt z nich nie jest obecnie zatrudniony ani nie pracował w zawodzie na jaki wskazuje jego nazwisko, oraz nikt z nich nie pracował w danym zawodzie dwa razy. Ani poprzednio, ani obecnie, nikt nie miał takiego sa-mego zawodu, co ktoś z pozostałych. Czarek nigdy nie był stolarzem a pan Rzeźnik jest teraz malarzem. Darek był rzeźnikiem, natomiast pan Bolek Piekarz nigdy nim nie był. Pan Malarz nie ma na imię Edek i pan Stolarz nie był dotychczas rzeźnikiem. Napisz program, który wskaże imio-na i imio-nazwiska uczestników spotkania wraz z ich obecnymi i poprzednimi zawodami.
Szkolne eliminacje lekkoatletyczne
W Szkolnych Eliminacjach Lekkoatletycznych uczestniczyło czterech bie-gaczy w dwóch biegach na dystansie 400 m. Żaden z nich nie ukończył obydwu biegów na tej samej pozycji. John w obydwu biegach pokonał za-wodnika o nazwisku Donald. Steve Curtail był trzeci w biegu drugim a Dave był ostatni w biegu pierwszym. Drugi bieg wygrał zawodnik nazwi-skiem Arnold, a zawodnik nazwinazwi-skiem Bowler był ostatni. W pierwszym biegu Steve pokonał Keva, lecz Kev pokonał Johna. Napisz program wy-znaczający (z imienia i nazwiska) miejsca zajęte przez uczestników obydwu biegów.
Zawodnik Bieg 1 Bieg 2
Zawodnik Bieg 1 Bieg 2