Je to vyřešení úkolu pomocí programu.
Program je seznam příkazů (instrukcí).
Dělá to samé, jen se omezuje na PC.
Program se píše v programovacím jazyku, který je potřeba se naučit. Je to jako učení cizího jazyka.
Opakované spouštění programu by mělo mít vždy stejný výsledek za předpokladu?, že jsou stejné výchozí podmínky.
Každý jazyk má své příkazy, které zná, ale logika programování je všude stejná (opakování, podmínky, atd).
Některé příkazy dělají vždy to samé, jiné se dají přizpůsobovat pomocí parametrů:
Najdete ho online na stránce http://karel.oldium.net/
Okno Karla má 3 části:
Abychom nemuseli vždy psát programy od začátku, umí Karel uložit aktuální slovník a poté jej znovu načíst. Slovník se ukládá jako textový řetězec začínající slovem "Karel" a končící slovem "KONEC".
Načtení slovníku je možné kliknutím na ikonku načtení slovníku (obrázek šluté složky se šipkou) a vložení textu slovníku. Vložení je nutné potvrdit.
Na konci každé hodiny vložím text slovníku s příkazy, které jsme ten den vytvořili.
V programu můžeme používat již vytvořené programy tak, že napíšeme jejich jméno, jako u základních příkazů.
Vytvoříme si tři nové příkazy
VPRAVO-VBOK
VLEVO-VBOK
VLEVO-VBOK
VLEVO-VBOK
KONEC
CELEM-VZAD
VLEVO-VBOK
VLEVO-VBOK
KONEC
KROK-ZPET
CELEM-VZAD
KROK
CELEM-VZAD
KONEC
Programy mohou volat i samy sebe tím, že se v programu zopakuje název programu.
MARATON
KROK
MARATON
KONEC
Karel umí poznat:
Podmínky se zapisují takto:
KDYŽ JE ZNAČKA
ZVEDNI
KONEC
Případně pokud má udělat i něco jiného pak je zápis:
KDYŽ JE ZNAČKA
ZVEDNI
KONEC, JINAK
POLOŽ
KONEC
OPATRNY-KROK
KDYŽ NENI ZEĎ
KROK
KONEC
KONEC
Slovník s příklady z hodiny pro načtení do Karla:
Karel1.0%0AP%0A14%0AVPRAVO-VBOK%097%2C7%2C7%2C1%0ACELEM-VZAD%097%2C7%2C1%0AKROK-ZPET%0911%2C6%2C11%2C1%0AOPATRNY-KROK%092%20-1%2C6%2C1%2C1%0AMARATON%0913%2C14%2C1%0AKONEC
V případě obyčejné podmínky se příkazy vykonávají pokud podmínka platí, ale můžeme chtít aby se vykonali jiné příkazy, pokud podmínka neplatí. V takovém případě podmínku "KDYŽ - KONEC" doplníme o ", JINAK - KONEC"
ZKUS-JIT
KDYŽ NENÍ ZEĎ
KROK
KONEC, JINAK
KROK-ZPET
KONEC
KONEC
VYMEN
KDYŽ JE ZNAČKA
ZVEDNI
KONEC, JINAK
POLOŽ
KONEC
KONEC
NECH-JEDNU
KDYŽ JE ZNAČKA
ZVEDNI
NECH-JEDNU
KONEC, JINAK
POLOŽ
KONEC
KONEC
NA-VYCHOD
KDYŽ NENÍ VÝCHOD
VLEVO-VBOK
NA-VYCHOD
KONEC
KONEC
Slovník s příklady z hodiny pro načtení do Karla:
Karel1.0%0AP%0A18%0AVPRAVO-VBOK%097%2C7%2C7%2C1%0ACELEM-VZAD%097%2C7%2C1%0AKROK-ZPET%0911%2C6%2C11%2C1%0AOPATRNY-KROK%092%20-1%2C6%2C1%2C1%0AMARATON%0913%2C14%2C1%0AZKUS-JIT%092%20-1%2C6%2C0%2C12%2C1%2C1%0AVYMEN%092%202%2C9%2C0%2C8%2C1%2C1%0ANECH-JEDNU%092%202%2C9%2C17%2C0%2C8%2C1%2C1%0ANA-VYCHOD%092%20-4%2C7%2C18%2C1%2C1%0AKONEC
Po hodině jsme s některými probírali, jak složité by bylo napsat program, pomocí kterého Karel projde celé bludiště ze zdí a zastaví se na konci doma.
Složité ti není a stačí na to jen příkazy, které už známe. Slovník s příkazem bludiště přikládám:
Karel1.0%0AP%0A19%0AVPRAVO-VBOK%097%2C7%2C7%2C1%0ACELEM-VZAD%097%2C7%2C1%0AKROK-ZPET%0911%2C6%2C11%2C1%0AOPATRNY-KROK%092%20-1%2C6%2C1%2C1%0AMARATON%0913%2C14%2C1%0AZKUS-JIT%092%20-1%2C6%2C0%2C12%2C1%2C1%0AVYMEN%092%202%2C9%2C0%2C8%2C1%2C1%0ANECH-JEDNU%092%202%2C9%2C17%2C0%2C8%2C1%2C1%0ANA-VYCHOD%092%20-4%2C7%2C18%2C1%2C1%0ABLUDISTE%092%20-1%2C6%2C10%2C2%20-3%2C19%2C0%2C18%2C1%2C0%2C7%2C2%20-3%2C19%2C0%2C18%2C1%2C1%2C1%0AKONEC
STRANA
KDYŽ NENÍ ZEĎ
KROK
POLOŽ
STRANA
KONEC, JINAK
POLOŽ
POLOŽ
POLOŽ
POLOŽ
POLOŽ
VLEVO-VBOK
KONEC
KONEC
HRAD
STRANA
KDYŽ NENÍ DOMOV
HRAD
KONEC
KONEC
HRAD2
KDYŽ NENÍ ZEĎ
POLOŽ
KROK
HRAD2
KONEC, JINAK
VLEVO-VBOK
POLOŽ
POLOŽ
POLOŽ
POLOŽ
POLOŽ
KDYŽ NENÍ DOMOV
HRAD2
KONEC
KONEC
KONEC
KE-ZDI
KDYŽ NENÍ ZEĎ
KROK
KE-ZDI
KONEC
KONEC
SKRZ-ZED
KDYŽ JE ZEĎ
VLEVO-VBOK
KROK
VPRAVO-VBOK
SKRZ-ZED
KONEC, JINAK
KROK
KONEC
KONEC
PROJDI
KE-ZDI
SKRZ-ZED
KE-ZDI
VLEVO-VBOK
KE-ZDI
KONEC
Slovník s příklady z hodiny pro načtení do Karla:
Karel1.0%0AP%0A25%0AVPRAVO-VBOK%097%2C7%2C7%2C1%0ACELEM-VZAD%097%2C7%2C1%0AKROK-ZPET%0911%2C6%2C11%2C1%0AOPATRNY-KROK%092%20-1%2C6%2C1%2C1%0AMARATON%0913%2C14%2C1%0AZKUS-JIT%092%20-1%2C6%2C0%2C12%2C1%2C1%0AVYMEN%092%202%2C9%2C0%2C8%2C1%2C1%0ANECH-JEDNU%092%202%2C9%2C17%2C0%2C8%2C1%2C1%0ANA-VYCHOD%092%20-4%2C7%2C18%2C1%2C1%0ABLUDISTE%092%20-1%2C6%2C10%2C2%20-3%2C19%2C0%2C18%2C1%2C0%2C7%2C2%20-3%2C19%2C0%2C18%2C1%2C1%2C1%0AHRAD2%092%20-1%2C8%2C6%2C20%2C0%2C7%2C8%2C8%2C8%2C8%2C8%2C2%20-3%2C20%2C1%2C1%2C1%0ASTRANA%092%20-1%2C6%2C8%2C21%2C0%2C8%2C8%2C8%2C8%2C8%2C7%2C1%2C1%0AHRAD%0921%2C2%20-3%2C22%2C1%2C1%0AKE-ZDI%092%20-1%2C6%2C23%2C1%2C1%0ASKRZ-ZED%092%201%2C7%2C6%2C10%2C24%2C0%2C6%2C1%2C1%0APROJDI%0923%2C24%2C23%2C7%2C23%2C1%0AKONEC
Cyklus provádí příkaz, nebo řadu příkazů dokud není ukončen.
Díky cyklu je možné přestat používat rekurze – opakované volání programu z vlastního kódu.
Rozlišujeme dva typy cyklu:
Zapisuje se takto:
OPAKUJ počet–KRÁT
příkazy
KONEC
PODLAHA
OPAKUJ 5-KRÁT
POLOŽ
KROK
KONEC
KONEC
Cyklus může obsahovat ve svém kódu další cyklus.
PLOT
OPAKUJ 4-KRÁT
OPAKUJ 5-KRÁT
POLOŽ
KROK
KONEC
VLEVO-VBOK
KONEC
KONEC
HRAD3
OPAKUJ 4-KRÁT
OPAKUJ 9-KRÁT
KROK
POLOŽ
KONEC
OPAKUJ 4-KRÁT
POLOŽ
KONEC
VLEVO-VBOK
KONEC
KONEC
Slovník s příklady z hodiny pro načtení do Karla:
Karel1.0%0AP%0A29%0AVPRAVO-VBOK%097%2C7%2C7%2C1%0ACELEM-VZAD%097%2C7%2C1%0AKROK-ZPET%0911%2C6%2C11%2C1%0AOPATRNY-KROK%092%20-1%2C6%2C1%2C1%0AMARATON%0913%2C14%2C1%0AZKUS-JIT%092%20-1%2C6%2C0%2C12%2C1%2C1%0AVYMEN%092%202%2C9%2C0%2C8%2C1%2C1%0ANECH-JEDNU%092%202%2C9%2C17%2C0%2C8%2C1%2C1%0ANA-VYCHOD%092%20-4%2C7%2C18%2C1%2C1%0ABLUDISTE%092%20-1%2C6%2C10%2C2%20-3%2C19%2C0%2C18%2C1%2C0%2C7%2C2%20-3%2C19%2C0%2C18%2C1%2C1%2C1%0AHRAD2%092%20-1%2C8%2C6%2C20%2C0%2C7%2C8%2C8%2C8%2C8%2C8%2C2%20-3%2C20%2C1%2C1%2C1%0ASTRANA%092%20-1%2C6%2C8%2C21%2C0%2C8%2C8%2C8%2C8%2C8%2C7%2C1%2C1%0AHRAD%0921%2C2%20-3%2C22%2C1%2C1%0AKE-ZDI%092%20-1%2C6%2C23%2C1%2C1%0ASKRZ-ZED%092%201%2C7%2C6%2C10%2C24%2C0%2C6%2C1%2C1%0APROJDI%0923%2C24%2C23%2C7%2C23%2C1%0AZNA%u010CKA%091%0APLOT%094%204%2C28%2C7%2C1%2C1%0APODLAHA%094%205%2C8%2C6%2C1%2C1%0AHRAD3%094%204%2C4%209%2C6%2C8%2C1%2C4%204%2C8%2C1%2C7%2C1%2C1%0AKONEC
POLOZ-5
OPAKUJ 5-KRÁT
POLOŽ
KONEC
KONEC
UHLOPRICKA
OPAKUJ 9-KRÁT
POLOZ-5
KROK
VLEVO-VBOK
KROK
VPRAVO-VBOK
KONEC
POLOZ-5
KONEC
KRIZ
UHLOPRICKA
VPRAVO-VBOK
KE-ZDI
CELEM-VZAD
UHLOPRICKA
CELEM-VZAD
KE-ZDI
VLEVO-VBOK
KONEC
VLAK
NAKRESLI-KOLEJE
JEZDI-PO-KOLEJICH
KONEC
NAKRESLI-KOLEJE
VLEVO-VBOK
OPAKUJ 4-KRÁT
KROK
KONEC
VPRAVO-VBOK
KOLEJ
VLEVO-VBOK
KROK
VLEVO-VBOK
KOLEJ
VLEVO-VBOK
KROK
VLEVO-VBOK
KONEC
KOLEJ
OPAKUJ 9-KRÁT
POLOZ-5
KROK
KONEC
POLOZ-5
KONEC
JEZDI-PO-KOLEJICH
OPAKUJ 9-KRÁT
KROK
KONEC
VLEVO-VBOK
KROK
VLEVO-VBOK
JEZDI-PO-KOLEJICH
KONEC
Slovník s příklady z hodiny pro načtení do Karla:
Karel1.0%0AP%0A38%0AVPRAVO-VBOK%097%2C7%2C7%2C1%0ACELEM-VZAD%097%2C7%2C1%0AKROK-ZPET%0911%2C6%2C11%2C1%0AOPATRNY-KROK%092%20-1%2C6%2C1%2C1%0AMARATON%0913%2C14%2C1%0AZKUS-JIT%092%20-1%2C6%2C0%2C12%2C1%2C1%0AVYMEN%092%202%2C9%2C0%2C8%2C1%2C1%0ANECH-JEDNU%092%202%2C9%2C17%2C0%2C8%2C1%2C1%0ANA-VYCHOD%092%20-4%2C7%2C18%2C1%2C1%0ABLUDISTE%092%20-1%2C6%2C10%2C2%20-3%2C19%2C0%2C18%2C1%2C0%2C7%2C2%20-3%2C19%2C0%2C18%2C1%2C1%2C1%0AHRAD2%092%20-1%2C8%2C6%2C20%2C0%2C7%2C8%2C8%2C8%2C8%2C8%2C2%20-3%2C20%2C1%2C1%2C1%0ASTRANA%092%20-1%2C6%2C8%2C21%2C0%2C8%2C8%2C8%2C8%2C8%2C7%2C1%2C1%0AHRAD%0921%2C2%20-3%2C22%2C1%2C1%0AKE-ZDI%092%20-1%2C6%2C23%2C1%2C1%0ASKRZ-ZED%092%201%2C7%2C6%2C10%2C24%2C0%2C6%2C1%2C1%0APROJDI%0923%2C24%2C23%2C7%2C23%2C1%0AZNA%u010CKA%091%0APLOT%094%204%2C28%2C7%2C1%2C1%0APODLAHA%094%205%2C8%2C6%2C1%2C1%0AHRAD3%094%204%2C4%209%2C6%2C8%2C1%2C4%204%2C8%2C1%2C7%2C1%2C1%0AVLEV-VBOK%091%0AKROK-VPRAVO-VBOK%091%0AKRIZ%0934%2C10%2C4%209%2C6%2C1%2C11%2C34%2C11%2C4%209%2C6%2C1%2C7%2C1%0APOLOZ-5%094%205%2C8%2C1%2C1%0AUHLOPRICKA%094%209%2C33%2C6%2C7%2C6%2C10%2C1%2C33%2C1%0AKOLEJ%094%209%2C33%2C6%2C1%2C33%2C1%0ANAKRESLI-KOLEJE%097%2C4%204%2C6%2C1%2C10%2C35%2C7%2C6%2C7%2C35%2C7%2C6%2C7%2C1%0AJEZDI-PO-KOLEJICH%094%209%2C6%2C1%2C7%2C6%2C7%2C37%2C1%0AVLAK%0936%2C37%2C1%0AKONEC
Cyklus s podmínkou se používá pro případy, kdy chceme, aby se opakování provádělo, dokud platí nějaká podmínka.
Zapisuje se:
DOKUD podmínka
příkazy
KONEC
KE-ZDI
DOKUD NENÍ ZEĎ
KROK
KONEC
KONEC
SKRZ-ZED
DOKUD JE ZEĎ
VLEVO-VBOK
KROK
VPRAVO-VBOK
KONEC
KROK
KONEC
ZVEDNI-POLE
DOKUD JE ZNAČKA
ZVEDNI
KONEC
KONEC
UKLID-RADU
DOKUD NENÍ ZEĎ
ZVEDNI-POLE
KROK
KONEC
ZVEDNI-POLE
CELEM-VZAD
KE-ZDI
VPRAVO-VBOK
KONEC
UKLID
DOKUD NENÍ JIH
UKLID-RADU
KDYŽ NENÍ ZEĎ
KROK
VPRAVO-VBOK
KONEC, JINAK
CELEM-VZAD
KE-ZDI
KONEC
KONEC
NA-VYCHOD
KONEC
Slovník s příklady z hodiny pro načtení do Karla:
Karel1.0%0AP%0A39%0AVPRAVO-VBOK%097%2C7%2C7%2C1%0ACELEM-VZAD%097%2C7%2C1%0AKROK-ZPET%0911%2C6%2C11%2C1%0AOPATRNY-KROK%092%20-1%2C6%2C1%2C1%0AMARATON%0913%2C14%2C1%0AZKUS-JIT%092%20-1%2C6%2C0%2C12%2C1%2C1%0AVYMEN%092%202%2C9%2C0%2C8%2C1%2C1%0ANECH-JEDNU%092%202%2C9%2C17%2C0%2C8%2C1%2C1%0ANA-VYCHOD%092%20-4%2C7%2C18%2C1%2C1%0ABLUDISTE%092%20-1%2C6%2C10%2C2%20-3%2C19%2C0%2C18%2C1%2C0%2C7%2C2%20-3%2C19%2C0%2C18%2C1%2C1%2C1%0AHRAD2%092%20-1%2C8%2C6%2C20%2C0%2C7%2C8%2C8%2C8%2C8%2C8%2C2%20-3%2C20%2C1%2C1%2C1%0ASTRANA%092%20-1%2C6%2C8%2C21%2C0%2C8%2C8%2C8%2C8%2C8%2C7%2C1%2C1%0AHRAD%0921%2C2%20-3%2C22%2C1%2C1%0AKE-ZDI%093%20-1%2C6%2C1%2C1%0ASKRZ-ZED%093%201%2C7%2C6%2C10%2C1%2C6%2C1%0APROJDI%0923%2C24%2C23%2C7%2C23%2C1%0AZNA%u010CKA%091%0APLOT%094%204%2C28%2C7%2C1%2C1%0APODLAHA%094%205%2C8%2C6%2C1%2C1%0AHRAD3%094%204%2C4%209%2C6%2C8%2C1%2C4%204%2C8%2C1%2C7%2C1%2C1%0AKRIZ%0932%2C10%2C4%209%2C6%2C1%2C11%2C32%2C11%2C4%209%2C6%2C1%2C7%2C1%0APOLOZ-5%094%205%2C8%2C1%2C1%0AUHLOPRICKA%094%209%2C31%2C6%2C7%2C6%2C10%2C1%2C31%2C1%0AKOLEJ%094%209%2C31%2C6%2C1%2C31%2C1%0ANAKRESLI-KOLEJE%097%2C4%204%2C6%2C1%2C10%2C33%2C7%2C6%2C7%2C33%2C7%2C6%2C7%2C1%0AJEZDI-PO-KOLEJICH%094%209%2C6%2C1%2C7%2C6%2C7%2C35%2C1%0AVLAK%0934%2C35%2C1%0AUKLID%093%20-7%2C39%2C2%20-1%2C6%2C10%2C0%2C11%2C23%2C1%2C1%2C18%2C1%0AZVEDNI-POLE%093%202%2C9%2C1%2C1%0AUKLID-RADU%093%20-1%2C38%2C6%2C1%2C38%2C11%2C23%2C10%2C1%0AKONEC
Když zavoláme rekurzi, program nemusí skončit, ale jakmile rekurzi vykoná, vrátí se zpět.
BALONEK
KDYŽ JE ZEĎ
CELEM-VZAD
KONEC, JINAK
KROK
BALÓNEK
KROK
KONEC
KONEC
KORALKY
KDYŽ JE ZNAČKA
ZVEDNI
KORALKY
KROK
POLOŽ
KONEC
KONEC
STEHUJ
KDYŽ NENÍ ZNAČKA
KROK
KONEC, JINAK
ZVEDNI
STEHUJ
POLOŽ
KONEC
KONEC
Slovník s příklady z hodiny pro načtení do Karla:
Karel1.0%0AP%0A42%0AVPRAVO-VBOK%097%2C7%2C7%2C1%0ACELEM-VZAD%097%2C7%2C1%0AKROK-ZPET%0911%2C6%2C11%2C1%0AOPATRNY-KROK%092%20-1%2C6%2C1%2C1%0AMARATON%0913%2C14%2C1%0AZKUS-JIT%092%20-1%2C6%2C0%2C12%2C1%2C1%0AVYMEN%092%202%2C9%2C0%2C8%2C1%2C1%0ANECH-JEDNU%092%202%2C9%2C17%2C0%2C8%2C1%2C1%0ANA-VYCHOD%092%20-4%2C7%2C18%2C1%2C1%0ABLUDISTE%092%20-1%2C6%2C10%2C2%20-3%2C19%2C0%2C18%2C1%2C0%2C7%2C2%20-3%2C19%2C0%2C18%2C1%2C1%2C1%0AHRAD2%092%20-1%2C8%2C6%2C20%2C0%2C7%2C8%2C8%2C8%2C8%2C8%2C2%20-3%2C20%2C1%2C1%2C1%0ASTRANA%092%20-1%2C6%2C8%2C21%2C0%2C8%2C8%2C8%2C8%2C8%2C7%2C1%2C1%0AHRAD%0921%2C2%20-3%2C22%2C1%2C1%0AKE-ZDI%093%20-1%2C6%2C1%2C1%0ASKRZ-ZED%093%201%2C7%2C6%2C10%2C1%2C6%2C1%0APROJDI%0923%2C24%2C23%2C7%2C23%2C1%0AZNA%u010CKA%091%0APLOT%094%204%2C28%2C7%2C1%2C1%0APODLAHA%094%205%2C8%2C6%2C1%2C1%0AHRAD3%094%204%2C4%209%2C6%2C8%2C1%2C4%204%2C8%2C1%2C7%2C1%2C1%0AKRIZ%0932%2C10%2C4%209%2C6%2C1%2C11%2C32%2C11%2C4%209%2C6%2C1%2C7%2C1%0APOLOZ-5%094%205%2C8%2C1%2C1%0AUHLOPRICKA%094%209%2C31%2C6%2C7%2C6%2C10%2C1%2C31%2C1%0AKOLEJ%094%209%2C31%2C6%2C1%2C31%2C1%0ANAKRESLI-KOLEJE%097%2C4%204%2C6%2C1%2C10%2C33%2C7%2C6%2C7%2C33%2C7%2C6%2C7%2C1%0AJEZDI-PO-KOLEJICH%094%209%2C6%2C1%2C7%2C6%2C7%2C35%2C1%0AVLAK%0934%2C35%2C1%0AUKLID%093%20-7%2C39%2C2%20-1%2C6%2C10%2C0%2C11%2C23%2C1%2C1%2C18%2C1%0AZVEDNI-POLE%093%202%2C9%2C1%2C1%0AUKLID-RADU%093%20-1%2C38%2C6%2C1%2C38%2C11%2C23%2C10%2C1%0ABAL%D3NEK%092%201%2C11%2C0%2C6%2C40%2C6%2C1%2C1%0AKORALKY%092%202%2C9%2C41%2C6%2C8%2C1%2C1%0ASTEHUJ%092%20-2%2C6%2C0%2C9%2C42%2C8%2C1%2C1%0AKONEC