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: 7365
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Začátka programování

Příspěvekod faraon » 07 dub 2013 08:56

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)

Reklama
funnyman
nováček
Příspěvky: 33
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

Re: Začátka programování

Příspěvekod funnyman » 10 dub 2013 15:54

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: 7365
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Začátka programování

Příspěvekod faraon » 13 dub 2013 22:05

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: březen 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod funnyman » 16 dub 2013 16:43

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: 7365
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod faraon » 16 dub 2013 19:36

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: březen 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod funnyman » 17 dub 2013 16:42

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: 7365
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod faraon » 17 dub 2013 18:47

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: březen 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod funnyman » 23 dub 2013 16:34

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: 7365
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod faraon » 24 dub 2013 20:37

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: březen 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod funnyman » 26 dub 2013 16:24

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: 7365
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod faraon » 27 dub 2013 15:38

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: březen 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod funnyman » 29 dub 2013 17:29

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... :)


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Jak změnit jazyk na virtuálním PC? Příloha(y)
    od Peťa » 01 kvě 2024 10:12 » v Windows 11, 10, 8...
    4
    1053
    od petr22 Zobrazit poslední příspěvek
    02 kvě 2024 13:59
  • Výběr repasovaného notebooku na programování
    od HelFix » 13 bře 2024 10:59 » v Rady s výběrem hw a sestavením PC
    5
    2012
    od Zivan Zobrazit poslední příspěvek
    20 bře 2024 10:51
  • Programování pro žáky zš - záverečná práce
    od AlastorM » 20 dub 2024 21:19 » v Vše ostatní (z oblasti IT)
    0
    4035
    od AlastorM Zobrazit poslední příspěvek
    20 dub 2024 21:19
  • Vhodné materiály pro výuku programování
    od Zakk » 31 říj 2023 16:24 » v Programování a tvorba webu
    1
    1898
    od Gerete Zobrazit poslední příspěvek
    31 říj 2023 17:40
  • 2x 27" IPS vs 34" VA . programování, webdesign
    od Hakosuka » 26 úno 2024 13:12 » v Rady s výběrem hw a sestavením PC
    0
    1311
    od Hakosuka Zobrazit poslední příspěvek
    26 úno 2024 13:12

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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů