Začátky programování - jaký jazyk zvolit?

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7410
Registrován: 23 pro 2010 09:23

Re: Začátka programování

Příspěvek od faraon »

Ten HLEDEJ-DOMOV funguje pěkně, možná by šel ještě trochu optimalizovat, ale tím se zatím netrap. Akorát to ukončení příkazem STOP je trochu nepříjemné, program by měl skončit sám a nechtít po uživateli nějaké kliknutí.

Ale JAKO-KŮŇ se zacyklí, protože pokračuje i na poli kde už značka je - bylo navštívené! Z něj se musíš vrátit do výchozí pozice a zkusit další z osmi možných polí.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
funnyman
nováček
Příspěvky: 33
Registrován: 23 bře 2013 14:25

Re: Začátka programování

Příspěvek od funnyman »

zkusil jsem v kódu přepsat toto:

Kód: Vybrat vše

KDYŽ JE DOMOV
  STOP
KONEC, JINAK
na toto:

Kód: Vybrat vše

DOKUD NENÍ DOMOV
ale nefunguje to - Karel narazí do zdi. Nerozumím proč.
1.jpg
udělal jsem koně. proskáče většinu pole, ale pak se někde v rohu zacyklí a skáče pořád na ta samá pole. přitom by se podlě mě měl otočit postupně na všechny strany a vyzkoušet tak všech osm možností.

Kód: Vybrat vše

ZAČÁTEKKONĚ
  POLOŽ
  KŮŇ
KONEC

Kód: Vybrat vše

KŮŇ
  VLEVO-VBOK
  SKOKL
KONEC

Kód: Vybrat vše

SKOKL
  KDYŽ NENÍ ZEĎ
    KROK
    KDYŽ NENÍ ZEĎ
      KROK
      VLEVO-VBOK
      KDYŽ NENÍ ZEĎ
        KROK
        KDYŽ NENÍ ZNAČKA
          POLOŽ
          KŮŇ
        KONEC, JINAK
          ČELEM-VZAD
          KROK
          VPRAVO-VBOK
          KROK
          KROK
          ČELEM-VZAD
          SKOKR
        KONEC
      KONEC, JINAK
        VLEVO-VBOK
        KROK
        KROK
        ČELEM-VZAD
        SKOKR
      KONEC
    KONEC, JINAK
      ČELEM-VZAD
      KROK
      ČELEM-VZAD
      KŮŇ
    KONEC
  KONEC, JINAK
    KŮŇ
  KONEC
KONEC

Kód: Vybrat vše

SKOKR
  KDYŽ NENÍ ZEĎ
    KROK
    KDYŽ NENÍ ZEĎ
      KROK
      VPRAVO-VBOK
      KDYŽ NENÍ ZEĎ
        KROK
        KDYŽ NENÍ ZNAČKA
          POLOŽ
          KŮŇ
        KONEC, JINAK
          ČELEM-VZAD
          KROK
          VLEVO-VBOK
          KROK
          KROK
          ČELEM-VZAD
          KŮŇ
        KONEC
      KONEC, JINAK
        VPRAVO-VBOK
        KROK
        KROK
        ČELEM-VZAD
        KŮŇ
      KONEC
    KONEC, JINAK
      ČELEM-VZAD
      KROK
      ČELEM-VZAD
      KŮŇ
    KONEC
  KONEC, JINAK
    KŮŇ
  KONEC
KONEC
děkuju za pomoc a ochotu s mojí výukou zde :)


dpolněno: aha, tak to vypadá, že se Karel dostane do místa, z kterého se prostě nedá nikam jít - a podle zadání nesmí navštívit jedno pole dvakrát, takže se ani nemůže vrátit...
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7410
Registrován: 23 pro 2010 09:23

Re: Začátka programování

Příspěvek od faraon »

Když se Karel dostane na pole ze kterého není možné pokračovat, tak se musí vrátit o úroveň zpět, a samozřejmě ještě předtím pole "odznačit", aby bylo možné ho použít znovu při skocích odjinud, takže zvednout z něj značku.

Zkus si také zmenšit plochu kterou má Karel proskákat, při velikosti 5x5 se výsledku (úplného vyplnění) dočkáš během chvilky.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
funnyman
nováček
Příspěvky: 33
Registrován: 23 bře 2013 14:25

Re: Začátky programování - jaký jazyk zvolit?

Příspěvek od funnyman »

pokusil jsem se o rekurzi, tedy pokud se nepodaří pokračovat příkazu dál, vrátí se o úroveň zpět, kde příkaz pokračuje dál zvednutím značky a návratem do předchozí polohy. Protože jde (pokud ve skutečnosti nejde, tak jsem to tak zamýšlel) o rekurzi, měl by se Karel, pokud by se nedalo pokračovat dál, teoreticky vracet zpět nekonečněkrát, dokud nedosáhne výchozí polohy, ze které se vydá jiným směrem (jen teoreticky, prakticky by mělo stačit návrat zpět o maximálně několik poloh).

Ovšem nefunguje to. Karel se zasekne v rohu a rekurze jako by nebyla (vůbec se nepokouší zvedat značky, takže ten kus kódu není nikdy použit?).

zvýraznil jsem tu "rekurzi", ještě jsem provedl menší změny, aby příkaz začal startovacím příkazem a pak se prohazovaly ony dva hlavní příkazy bez jednoho nadřazeného.

Kód: Vybrat vše

KŮŇ
  POLOŽ
  SKOKL
KONEC

Kód: Vybrat vše

SKOKL
  KDYŽ NENÍ ZEĎ
    KROK
    KDYŽ NENÍ ZEĎ
      KROK
      VLEVO-VBOK
      KDYŽ NENÍ ZEĎ
        KROK
        KDYŽ NENÍ ZNAČKA
          POLOŽ
          SKOKL
          [b]ZVEDNI
          ČELEM-VZAD
          KROK
          VPRAVO-VBOK
          KROK
          KROK
          čelem-vzad
          SKOKR[/b]
        KONEC, JINAK
          ČELEM-VZAD
          KROK
          VPRAVO-VBOK
          KROK
          KROK
          ČELEM-VZAD
          SKOKR
        KONEC
      KONEC, JINAK
        VLEVO-VBOK
        KROK
        KROK
        ČELEM-VZAD
        SKOKR
      KONEC
    KONEC, JINAK
      ČELEM-VZAD
      KROK
      ČELEM-VZAD
      SKOKR
    KONEC
  KONEC, JINAK
    SKOKR
  KONEC
KONEC

Kód: Vybrat vše

SKOKR
  KDYŽ NENÍ ZEĎ
    KROK
    KDYŽ NENÍ ZEĎ
      KROK
      VPRAVO-VBOK
      KDYŽ NENÍ ZEĎ
        KROK
        KDYŽ NENÍ ZNAČKA
          POLOŽ
          SKOKL
          [b]ZVEDNI
          ČELEM-VZAD
          KROK
          VLEVO-VBOK
          KROK
          KROK
          VPRAVO-VBOK
          SKOKL[/b]
        KONEC, JINAK
          ČELEM-VZAD
          KROK
          VLEVO-VBOK
          KROK
          KROK
          ČELEM-VZAD
          VLEVO-VBOK
          SKOKL
        KONEC
      KONEC, JINAK
        VPRAVO-VBOK
        KROK
        KROK
        ČELEM-VZAD
        VLEVO-VBOK
        SKOKL
      KONEC
    KONEC, JINAK
      ČELEM-VZAD
      KROK
      ČELEM-VZAD
      VLEVO-VBOK
      SKOKL
    KONEC
  KONEC, JINAK
    VLEVO-VBOK
    SKOKL
  KONEC
KONEC
je alespoň princip správný, nebo uvažuji úplně špatným směrem? Nenapadá mě, jak jinak zjistit, zda se karel vydal vlevo nebo vpravo (a má se tudíž vrátit jednou anebo tou druhou cestou), než rekurzivně přímo v tom příkazu SKOKL nebo SKOKR.
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7410
Registrován: 23 pro 2010 09:23

Re: Začátky programování - jaký jazyk zvolit?

Příspěvek od faraon »

Já bych na to šel malinko jinak, ale i tvůj způsob může vést k funkčnímu řešení. Je to tak jak píšeš, vracet se musíš zase v tom skoku který jsi provedl, neexistuje jiný způsob jak zjistit ve které části postupu se právě nacházíš.

Ale ještě jednou se nad tím zamysli: příkaz KŮŇ položí značku a začne skákat, ale co když na tomhle poli už značka je? To by znamenalo že se z něj už skákalo a dostal by ses do nekonečného cyklu!

A další věc - z každého pole můžeš skočit na osm jiných, takže ty tvoje SKOKL a SKOKR lze provést do čtyř různých směrů. Mohl bys to zjednodušit tím, že je oba spojíš do jednoho písmene T, které pak v cyklu provedeš čtyřikrát, třeba takhle:

Kód: Vybrat vše

    ┌─────>2
8  1<─┐ ┌─┘ 3
^─┐   │ │   ^─┐
│ └───┘^└───┘ │
│ ┌───┐K┌───┐ │
└─v   │ │   └─v
  7 ┌─┘ └─>5  4
   6<─────┘
Na místě každé té číslice, pokud se na to pole dá dostat a není už obsazené, znovu zavoláš skákání, a opět se odtamtud bude skákat na osm dalších polí...
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
funnyman
nováček
Příspěvky: 33
Registrován: 23 bře 2013 14:25

Re: Začátky programování - jaký jazyk zvolit?

Příspěvek od funnyman »

zkusil jsem to přepsat do přibližné podoby nákresu, přičemž provede 1, pak 2 a pak se vrátí zpět do výchozí pozice, kde ho cyklus "opakuj 4-krát" vždy nasměruje o jednu světovou stranu vlevo (měl jsem tam "vpravo-vbok", tedy dle nákresu, ale protože je to vlastně trojnásobek "vlevo-vbok", karel se zbytečně otáčel, takhle tam už nerotuje) a pokusí se o další T.

Kód: Vybrat vše

SKOK
  OPAKUJ 4-KRÁT
    VLEVO-VBOK
    KDYŽ NENÍ ZEĎ
      KROK
      KDYŽ NENÍ ZEĎ
        KROK
        VLEVO-VBOK
        KDYŽ NENÍ ZEĎ
          KROK
          KDYŽ NENÍ ZNAČKA
            POLOŽ
            SKOK
            ZVEDNI
            ČELEM-VZAD
            KROK
            KDYŽ NENÍ ZEĎ
              KROK
              KDYŽ NENÍ ZNAČKA
                POLOŽ
                SKOK
                ZVEDNI
                ČELEM-VZAD
                KROK
                VLEVO-VBOK
                KROK
                KROK
                ČELEM-VZAD
              KONEC, JINAK
                ČELEM-VZAD
                KROK
                VLEVO-VBOK
                KROK
                KROK
                ČELEM-VZAD
              KONEC
            KONEC, JINAK
              VPRAVO-VBOK
              KROK
              KROK
              ČELEM-VZAD
            KONEC
          KONEC, JINAK
            ČELEM-VZAD
            KROK
            VPRAVO-VBOK
            KROK
            KROK
            ČELEM-VZAD
          KONEC
        KONEC, JINAK
          VLEVO-VBOK
          KROK
          KROK
          ČELEM-VZAD
        KONEC
      KONEC, JINAK
        ČELEM-VZAD
        KROK
        ČELEM-VZAD
      KONEC
    KONEC
  KONEC
KONEC
vypadá to pěkně funkčně, Karel tam poskakuje, když je v úzkých, tak se vrací a sbírá značky zpět. Co je špatně, je to, že není schopný splnit úkol :) vždycky dohopsá do pole, kde začal, a má hotovo.
dělá to ať ho spouštím příkazem SKOK, nebo startovacím příkazem ZAČÁTEKKONĚ...

Kód: Vybrat vše

ZAČÁTEKKONĚ
  POLOŽ
  SKOK
KONEC

edit:aha, je tam chyba, jdu ji opravit:
vypadá to, že už funguje (alespoň na poli 5x5, víc se mi nechtělo čekat :) )
přidal jsem tam komentáře a zalamovače řádků, abych se v tom při opravování té chyby vyznal

Kód: Vybrat vše

SKOK
  ;krok rovně: A, krok vlevo: B, krok vpravo:C. Tedy kůň doleva=AAB, doprava=AAC.
  
  OPAKUJ 4-KRÁT
    VLEVO-VBOK
    
    KDYŽ NENÍ ZEĎ
      KROK
      ;jsme na A
      
      KDYŽ NENÍ ZEĎ
        KROK
        ;jsme na AA
        
        VLEVO-VBOK
        KDYŽ NENÍ ZEĎ
          KROK
          ;jsme na AAB
          
          KDYŽ NENÍ ZNAČKA
            POLOŽ
            SKOK
            ;nepovedlo se odtud dokončit úlohu, vracíme se a pokračujeme směrem doprava:
            ZVEDNI
            ČELEM-VZAD
            KROK
            ;jsme na AA
            
            KDYŽ NENÍ ZEĎ
              KROK
              ;jsme na AAC
              
              KDYŽ NENÍ ZNAČKA
                POLOŽ
                SKOK
                ZVEDNI
                ČELEM-VZAD
                KROK
                VLEVO-VBOK
                KROK
                KROK
                ČELEM-VZAD
                
              KONEC, JINAK
                ČELEM-VZAD
                KROK
                VLEVO-VBOK
                KROK
                KROK
                ČELEM-VZAD
              KONEC
              
            KONEC, JINAK
              VPRAVO-VBOK
              KROK
              KROK
              ČELEM-VZAD
            KONEC
            
          KONEC, JINAK
            ČELEM-VZAD
            KROK
            KDYŽ NENÍ ZEĎ
              KROK
              ;jsme na AAC
              
              KDYŽ NENÍ ZNAČKA
                POLOŽ
                SKOK
                ZVEDNI
                ČELEM-VZAD
                KROK
                VLEVO-VBOK
                KROK
                KROK
                ČELEM-VZAD
                
              KONEC, JINAK
                ČELEM-VZAD
                KROK
                VLEVO-VBOK
                KROK
                KROK
                ČELEM-VZAD
              KONEC
              
            KONEC, JINAK
              VPRAVO-VBOK
              KROK
              KROK
              ČELEM-VZAD
            KONEC
          KONEC
          
        KONEC, JINAK
          ;nepovedlo se nám jít na AAB, zkusíme AAC
          ČELEM-VZAD
          KDYŽ NENÍ ZEĎ
            KROK
            KDYŽ NENÍ ZNAČKA
              POLOŽ
              SKOK
              ;nepovedlo se odtud dokončit úlohu, vracíme se do úůvodní pozice
              
              ZVEDNI
              ČELEM-VZAD
              KROK
              VLEVO-VBOK
              KROK
              KROK
              ČELEM-VZAD
            KONEC, JINAK
              ČELEM-VZAD
              KROK
              VLEVO-VBOK
              KROK
              KROK
              ČELEM-VZAD
            KONEC
          KONEC, JINAK
            VPRAVO-VBOK
            KROK
            KROK
            ČELEM-VZAD
          KONEC
          
        KONEC
        
      KONEC, JINAK
        ČELEM-VZAD
        KROK
        ČELEM-VZAD
      KONEC
      
    KONEC
  KONEC
KONEC
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7410
Registrován: 23 pro 2010 09:23

Re: Začátky programování - jaký jazyk zvolit?

Příspěvek od faraon »

No, je to strašně komplikované (není divu že se v tom ztrácíš), a první značku bys měl položit už na poli odkud program startuje, to je vlastně číslo 1, ale jinak už se blížíš :smile:
Zkoušel jsem to na ploše 5x5, za chvíli program vyplnil všechna pole, jenže potom při hledání dalšího možného řešení Karel vrazil do zdi!

Komentáře jsou dobrý nápad, a do budoucna ti určitě hodně pomůžou, zvlášť až budeš opravovat nebo upravovat program který jsi napsal před pár měsíci (natož lety)...

Zkus si vytvořit to "téčko" samostatně, místo volání rekurze jen polož značku ať vidíš že tam Karel byl, a spouštěj ho z různých míst, jak ve volném prostoru, tak i různě daleko od zdi, abys vyzkoušel všechny možnosti kde Karel může narazit. A když na konci vracení se Karel zatočí, tak se ti celá činnost kterou musíš provést na volném poli zjednoduší na jeden cyklus:

Kód: Vybrat vše

POLOŽ
OPAKUJ 4-KRÁT
  TÉČKO
KONEC
ZVEDNI
Pak záleží jen na tobě jestli budeš dál používat přímou rekurzi a ten rozskok vepíšeš dovnitř cyklu, nebo použiješ vzájemnou rekurzi, kde SKOK bude volat TÉČKO, a TÉČKO zase SKOK (tady už stačí nepodmíněně, protože podmínku přerušující rekurzi - značku - máš v tom SKOKu).
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
funnyman
nováček
Příspěvky: 33
Registrován: 23 bře 2013 14:25

Re: Začátky programování - jaký jazyk zvolit?

Příspěvek od funnyman »

prosím o pomoc, nedaří se mi pochopit, proč se Karel pokouší zvedat značku tam, kde není:

Kód: Vybrat vše

técko
	;otáčíme se o jedna vpravo
	vpravo-vbok
	
	;jdeme o jeden krok vpřed
	když není zeď
		krok
		
		;jdeme o jeden krok vpřed
		když není zeď
			krok
			
			;jdeme vlevo
			vlevo-vbok
			když není zeď
				krok
				
				;je-li značka, polož a jdi odtud dál
				když není značka
					koník
				konec, jinak
					;je značka, jdeme zpet
					čelem-vzad
					krok
					vpravo-vbok
					krok
					krok
					čelem-vzad
				konec
					
			konec, jinak
				vlevo-vbok
				krok
				krok
				čelem-vzad
			konec
		
		konec, jinak
			čelem-vzad
			krok
			čelem-vzad
		konec
	konec
	
	;jdeme o jeden krok vpřed
	když není zeď
		krok
		
		;jdeme o jeden krok vpřed
		když není zeď
			krok
			
			;jdeme vpravo
			vpravo-vbok
			když není zeď
				krok
				
				;je-li značka, polož a jdi odtud dál
				když není značka
					koník
				konec, jinak
					;je značka, jdeme zpet
					čelem-vzad
					krok
					vlevo-vbok
					krok
					krok
					čelem-vzad
				konec
					
			konec, jinak
				vpravo-vbok
				krok
				krok
				čelem-vzad
			konec
		
		konec, jinak
			čelem-vzad
			krok
			čelem-vzad
		konec
	konec
konec

Kód: Vybrat vše

koník
	POLOŽ
	OPAKUJ 4-KRÁT
		TÉČKO
	KONEC
	ZVEDNI
konec
strávil jsem tím teď už drahnou dobu a ne a ne na to přijít. Zjednodušil jsem program na dvě části; poprvé půjde karel dva kroky rovně a pak doleva, pokud to nepůjde, vrátí se zpět, a zkusí to stejnou cestou, ale doprava.
četl jsem to po sobě snad dvacetkrát, a prostě tam tu chybu nevidím :/
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7410
Registrován: 23 pro 2010 09:23

Re: Začátky programování - jaký jazyk zvolit?

Příspěvek od faraon »

Teda, řeknu ti že jsi pořádný grafoman, máš to TÉČKO na 61 řádek, když jsem vyházel komentáře a prázdné řádky. Já jsem se vešel na 27, ale vypomohl jsem si cyklem.

Někdy nestačí jen číst, je potřeba také malovat. Jestli ses ještě nenaučil vývojové diagramy, tak teď je ta správná chvíle s nimi začít:
tecko.jpg
Mě pouhé čtení také nestačilo, musel jsem si to projít prstem a ještě navrch krokovat, abych věděl co se tam přesně děje. Takže to vezmeme bod po bodu:
  1. VPRAVO-VBOK je dobrý nápad, ale spíš bych se točil doleva, ve výsledku mi tak proběhnou 4 VLEVO-VBOK, zatímco tobě 12. Já jsem to prováděl až na konci celého příkazu, ne hned na začátku, ale výsledek je stejný.
  2. A tady to začíná. všimni si že tam máš dvakrát rozepsaný téměř identický program, lišící se jen v detailech. První půlku cesty (kde jsou podmínky 1, 2, 5 a 6) totiž stačí ujít jen jednou, stejně jako návrat z ní, a samostatně je třeba řešit jen odbočky na vršku toho T. Takže veškeré duplikované příkazy máš zvýrazněné červeně.
  3. Když se nad těmi odbočkami trochu zamyslíš, tak zjistíš že se vlastně také jedná o dvě shodné činnosti, lišící se jen směrem do kterého je Karel na jejich začátku otočený, proto věci které se dají provést v cyklu jsou zvýrazněné zeleně.
  4. Teď se dostáváme k problému, který ti způsobuje podivné chování Karla. A je to docela velká chyba. Platí totiž pravidlo (viz níže) že z rekurze se musíš vždy vracet ve stejném stavu v jakém jsi do ní vstoupil, to znamená že Karel by měl v každém případě po rekurzi stát na stejném poli a otočený do stejného směru. A co tvůj program dělá? Když je na cílovém poli značka, tak se Karel vrátí na výchozí pole, jenže když tam značka není, zavolá KONÍK a po návratu z něj zůstane stát na místě! Potom se vrátí do předchozího provádění KONÍK a pokusí se vyzkoušet další TÉČKO v dalším směru, ale z úplně jiného místa než předchozí...
    Takže ta červeně škrtnutá čára musí vést jinam, protože i po té rekurzi je nutné vrátit se na výchozí pozici.
  5. A když už jsme u toho zjednodušování, všimni si závěru druhého, třetího a čtvrtého sloupce (ale až po tom co opravíš tu chybnou spojnici v pátém sloupci!). Ve třetím a čtvrtém je sekvence
    KROK
    KROK
    ČELEM-VZAD

    kterou mají společnou. Takže jí můžeš celou přesunout až za KONEC třetí podmínky, tedy za spoj obou větví ve třetím sloupci.
    To samé v tu chvíli platí pro druhý a třetí sloupec, kde je společná sekvence
    KROK
    ČELEM-VZAD

    se kterou můžeš provést totéž, přesunout jí za spojnici obou větví podmínky ve druhém sloupci. Tím se celý příkaz zkrátí o pět zbytečných řádků.
Ještě k tomu pravidlu o vracení: platí pro tenhle typ úloh, ve kterých něco procházíš a vracíš se zase zpět. Druhý typ úloh je takový, že naopak rekurze provádí jednosměrnou činnost, například když má Karel popojít o tolik polí, kolik je na místě kde stojí značek. V takovém případě se toho pravidla samozřejmě držet nemůžeš ;-)
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
funnyman
nováček
Příspěvky: 33
Registrován: 23 bře 2013 14:25

Re: Začátky programování - jaký jazyk zvolit?

Příspěvek od funnyman »

Ahoj, děkuji za tak rozsáhlou odpověď, nechceš si zřídit online výuku základů programování na coursera.org či podobných, nebo na vlastním webu? Za tohle už by měl náležet nějaký revanš :)

O programování nevím téměř nic, začal jsem s tím asi týden předtím, než jsem začal psát sem, jsou mi tedy cizí i vývojové diagramy. Chtěl jsem začít pythonem, půjčil jsem si na to i knihu, ale myslím, že bych si měl první sehnat nějakou obecnější, kde je shrnuto v podstatě to, co mě tu teď učíš ty. Neznáš nějakou vhodnou?

tu zásadní chybu jsem tam udělal nedopatřením, v minulé verzi, která měla zas jiné chyby, jsem tohle vyřešil správně. Tady jsem na to zřejmě zapomněl a při hledání chyby mě to nějak nenapadlo...
Myslím, že jsem se vypořádal se všemi námitkami:

Kód: Vybrat vše

koník
	POLOŽ
	OPAKUJ 4-KRÁT
		skript_koně
	KONEC
	ZVEDNI
konec

Kód: Vybrat vše

skript_koně
	vlevo-vbok
	když není zeď
		krok
		když není zeď
			krok
			;jsme na vrcholu tecka, jdeme vlevo, pak vpravo, jinak zpet
			vlevo-vbok
			test_koně
			test_koně
			vlevo-vbok
			krok
			krok
			čelem-vzad			
		konec, jinak
			čelem-vzad
			krok
			čelem-vzad
		konec
	konec
konec

Kód: Vybrat vše

test_koně
	když není zeď
		krok
		když není značka
			koník
			čelem-vzad
			krok
		konec, jinak
			čelem-vzad
			krok
		konec
	konec, jinak
		čelem-vzad
	konec
konec
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7410
Registrován: 23 pro 2010 09:23

Re: Začátky programování - jaký jazyk zvolit?

Příspěvek od faraon »

Román za román, ne? Ale je fakt že když se rozjedu, tak nevím kdy zastavit :lol:

Tak tenhle program vypadá že dělá přesně to co má, takže bych řekl že rekurzí ses úspěšně prokousal. Ještě bys to mohl zkusit složit do jednoho co nejjednoduššího příkazu, ale to už by neměl být větší problém. Až budu mít chvíli čas tak si ho ještě rozkreslím a kdyžtak napíšu nějaké připomínky.

Loni jsem měl v ruce nějakou učebnici algoritmizace, ta mi připadala docela dobrá, i když v ní nebyl ani jediný příkaz žádného programovacího jazyka. Popisovala všechno čistě teoreticky, takže se podle ní dalo programovat v čemkoliv strukturovaném. Ale mrkni na uloz.to nebo zagoogli, snadno najdeš na základy algoritmizace skripta, to je lepší než spousta knížek a určitě lepší než nějaký tutoriál na netu!
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
funnyman
nováček
Příspěvky: 33
Registrován: 23 bře 2013 14:25

Re: Začátky programování - jaký jazyk zvolit?

Příspěvek od funnyman »

kdyby sis vzpomněl na název té učebnice, tak bych ti byl vděčný :)

půjčil jsem si WIRTH, Niklaus. Algorithms + data structures=programs a PŠENČÍKOVÁ, Jana. Algoritmizace.
obě knihy se mi zdají dobré. Akorát tu Pšeničkovou čtu nějak rychle, za tři hodiny jsem už v půlce, včetně programování příkladů v Pythonu... :)
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Pomoc s výběrem ntb na programování v .NET 25k
    od Kubasky » » v Rady s výběrem hw a sestavením PC
    1 Odpovědi
    4215 Zobrazení
    Poslední příspěvek od petr22

Zpět na „Programování a tvorba webu“