Seminarky.cz > Seminárky/Referáty > > Sázení stromků - řešení logické hádanky v programu Prolog

Sázení stromků - řešení logické hádanky v programu Prolog

Kategorie: Programování

Typ práce: Seminárky/referáty

Škola: Česká zemědělská univerzita v Praze Provozně ekonomická fakulta, Praha 6 - Suchdol

Charakteristika: Cílem práce je vyřešení logické hádanky s názvem Sázení stromků pomocí programu Prolog. Text obsahuje zdrojový kód s ukázkou trasování.

Obsah

1.
Popis zvoleného problému
1.1.
Zadání hádanky Sázení stromků
2.
Teorie
2.1.
Programovací jazyk Prolog
3.
Implementace – zdrojový kód
4.
Výsledek programu
4.1.
Očekávaný výstup
4.2.
Ukázka trasování

Úryvek

"2 Teorie
Pro řešení hádanky jsem použil programovací jazyk Prolog. Prolog znamená programování v logice a je vyústěním snahy o použití logiky jako programovacího jazyka. Jedná se o jazyk, který je díky jednoduché syntaxi ideální pro seznámení s filozofií logického programování[1].
Program v Prologu sestává z klauzulí. Existují tři typy: fakta, pravidla a dotazy. Klauzule definující stejnou relaci vytvářejí tzv. proceduru. Definice vztahů vyjádřené fakty a pravidly se po zadávání stávají součástí pracovního prostředí Prologu nazývaného databáze.

Pravidla vyjadřují tvrzení závislá na splnění nějakých podmínek. Každé pravidlo má hlavu a (neprázdné) tělo, které je konjunkcí cílů.

Fakta se používají k vyjádření bezpodmínečně pravdivých tvrzení. Fakta jsou klauzule s hlavou, ale s prázdným tělem.

Dotazy vyvolávají výpočet programu, jeho smyslem je zjistit, zda nějaké tvrzení platí či nikoliv. Každý dotaz je klauzule bez hlavy.

Zodpovězení dotazu probíhá postupným ověřováním splnitelnosti jednotlivých cílů. Je-li výsledek vyhodnocení cíle kladný, říkáme, že cíl byl úspěšný a že je splnitelný. V případě záporného výsledku říkáme, že cíl byl neúspěšný a že je nesplnitelný.
Během procesu vyhodnocení cíle dochází v případě úspěchu k nastavení proměnných na takové hodnoty, které umožní jeho splnitelnost. Je-li více možností, jak dosáhnout splnění cíle, Prolog je schopen je všechny zjistit pomocí postupu nazývaného zpětné prohledávání (backtracking). Neúspěch při vyhodnocení cíle neznamená, že Prolog dokázal jeho neplatnost, ale pouze to, že nebyl schopen ze své databáze dokázat jeho platnost[2].

3 Implementace – zdrojový kód
% Strom X je vysazen vlevo od stromu Y
vysazen_vlevo(X,Y,[X,Y|T]).
vysazen_vlevo(X,Y,[H|T]):-vysazen_vlevo(X,Y,T).

% Strom X je vysazen vedle stromu Y (budto vlevo nebo vpravo)
vysazen_vedle(X,Y,S):-vysazen_vlevo(X,Y,S).
vysazen_vedle(X,Y,S):-vysazen_vlevo(Y,X,S)."

Poznámka

Práce pro předmět Teorie ICT - Česká zemědělská univerzita v Praze, Provozně ekonomická fakulta.

Vlastnosti

STÁHNOUT PRÁCI

  1. SMS platba (ČR) 45 Kč

    Platba prostřednictvím brány mobilního operátora. Pro započetí platebního procesu prosím vyplňte kontrolní kód a stiskněte tlačítko "Zaplatit"

    Po proběhnutí platby budete přesměrováni zpět na tuto stránku, kde najdete odkaz ke stažení práce.


    V případě potíží s realizací platby se neváhejte obrátit na infolinku poskytovatele služby, společnost Advanced Telecom Services s.r.o., na čísle +420 776 999 199

    Nápověda pro zákazníky Telefónica O2:

    1. Vyplňte Vaše číslo na mobil, zvolte jako operátora Telefónica O2 a klikněte na POTVRDIT.
    2. Zobrazí se Vám informace, že SMS byla odeslána.
    3. Na mobilní telefon Vám bude doručena SMS zpráva s odkazem.
    4. Klikněte na odkaz v SMS zprávě, budete propojeni na platební bránu společnosti Telefónica O2. Zde potvrďte platbu.
    5. Na internetu se zobrazí výsledek proběhlé platby.
    Pro úspěšnou realizaci platby je nutné mít aktivní službu „O2 platba“. Služba je většinou aktivní automaticky, takže není třeba nejdřív nic aktivovat.

    Nápověda pro zákazníky Vodafone:

    1. Vyplňte Vaše číslo na mobil, zvolte jako operátora Vodafone a klikněte na POTVRDIT.
    2. Dojde k přesměrování na Vodafone portál.
    3. Potvrďte Vaše mobilní číslo kliknutím na DALŠÍ. .
    4. Na Váš mobilní telefon přijde SMS zpráva s kódem.
    5. Zadejte tento kód do formuláře, klikněte na OK.
    6. Objeví se Vám údaje o platbě, kterou potvrďte kliknutím na POKRAČOVAT.
    7. V té chvíli proběhne platba, o jejímž výsledku Vás informuje došlá SMS zpráva.
    Pro úspěšnou realizaci platby je nutné mít aktivní službu „M-peněženka“. Služba je většinou aktivní automaticky, takže není třeba nejdřív nic aktivovat.

    Nápověda pro zákazníky T-mobile:

    1. Vyplňte Vaše číslo na mobil, zvolte jako operátora T-mobile a klikněte na POTVRDIT.
    2. Dojde k přesměrování na T-mobile portál, potvrďte zde svůj souhlas s podmínkami platby.
    3. Pokud máte na T-zones účet, přihlaste se a pokračujte bodem 7.
    4. Pokud účet na T-zones nemáte, vepište do formuláře svoje mobilní číslo a klikněte na ODESLAT ČÍSLO.
    5. Přijde Vám SMS zpráva s kódem.
    6. Vepište kód jako heslo do formuláře a klikněte na PŘIHLÁSIT.
    7. Objeví se Vám údaje o platbě, které potvrďte kliknutím na tlačítko ZAPLATIT.
    8. V té chvíli proběhne platba, o jejímž výsledku Vás informuje došlá SMS zpráva.
    Pro úspěšnou realizaci platby je nutné mít aktivní službu „M-platba“. Služba je většinou aktivní automaticky, takže není třeba nejdřív nic aktivovat.
  2. Platit kartou 38 Kč

    Platba kartou. Pro započetí platebního procesu prosím vyplňte kontrolní kód a stiskněte tlačítko "Zaplatit"

    Po proběhnutí platby budete přesměrováni zpět na tuto stránku, kde najdete odkaz ke stažení práce.


    Po odeslání kontrolního kódu budete přesměrováni do platební brány ČSOB, kde zadáte údaje potřebné pro platbu. Platbu dokončíte stisknutím tlačítka "ZAPLATIT".

    Akceptované karty: VISA, VISA Electron, V PAY, MasterCard, Maestro.

  3. Koupit za kredity - 35 Kč >>> ZVÝHODNĚNÁ CENA!
    Jedním stiskem tlačítka, obratem a za výhodnou cenu!
    JEN PRO REGISTROVANÉ UŽIVATELE
    Cena za stažení je pouze 630 kreditů (=35Kč).
  4. SMS platba (Slovensko) - 1,70€
    Stahovací kód k této práci získáte do několika minut se službou mobilního operátora Premium Rate SMS.
    Zašlete SMS zprávu ve tvaru: SEMmezera19119
    - na telefonní číslo: 8877
    Cena jedné SMS je 1,70€ včetně DPH. Pro využití SMS platby je třeba mít aktivovanou službu Premium Rate SMS. Službu technicky zajišťuje Advanced Telecom Services, s. r. o.
    SMS musí být ve formátu TEXT, bez diakritiky a bez formátování (tj. základní velikost a typ písma). Stahovací kód je použitelný pouze pro tuto práci a je platný až do uzavření okna internetového prohlížeče.
    Stahovací kód přijde obratem na mobil, je platný 24 hodin a lze jej zadat celkem dvakrát.
    Pro stažení této práce zadejte stahovací kód (bez uvozovek):


Důležité informace: Provedením mobilní platby, odesláním SMS, platbou kredity, platbou kartou nebo převodem z účtu souhlasíte s Podmínkami stahování.
Veškeré informace o platbách si můžete přečíst zde.
Máte při placení nebo stahování práce problém? Odpovědi na časté problémy najdete zde nebo kontaktujte naší podporu.

Diskuse