Kdo by mě naučil základy programování?

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

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

Re: Kdo by mě naučil základy programování?

Příspěvek od faraon »

Nápad se značkami není špatný, ale co když už se cestou nějaké značky povalují? To by Karla mohly zavést někam jinam.

To kouzlo kterým se to dá provést se jmenuje rekurze. Volat jiné příkazy už umíš, ale napadlo tě co by se stalo kdyby příkaz zavolal sám sebe? Zkusíme si to na příkazu KE-ZDI, ten už umíš řešit cyklem DOKUD, ale teď vytvoříme cyklus pomocí rekurze:

Kód: Vybrat vše

KE-ZDI
  KDYŽ NENÍ ZEĎ
    KROK
    KE-ZDI
  KONEC
KONEC
Když není zeď, Karel udělá krok a zavolá příkaz KE-ZDI, a když není zeď... Ale když je zeď, tak neudělá krok a nic nezavolá, naopak příkaz skončí a program se vrátí do předchozího příkazu, a tak pořád dokola tolikrát kolikrát do té rekurze vstoupil.

Pozor na jednu věc, rekurze se dá velmi snadno zacyklit, takže si musíš ohlídat aby vždy byla možnost se z ní dostat! Nikdy nesmíš použít rekurzi bez nějaké podmínky, nebo vytvoříš nekonečnou smyčku, ta způsobí že program přestane reagovat, postupně zaplní celou paměť a spadne!

A teď se koukni jak by vypadal ten rekurzivní příkaz TAM-A-ZPĚT:

Kód: Vybrat vše

TAM-A-ZPĚT
  KDYŽ NENÍ ZEĎ
    KROK
    TAM-A-ZPĚT
    KROK
  KONEC, JINAK
    ČELEM-VZAD
  KONEC
KONEC
Rekurze existují dva druhy, přímá, kdy tvůj příkaz volá přímo sám sebe, a nepřímá neboli vzájemná, kde se dva příkazy volají navzájem. Dva nebo víc, aby to nebylo tak jednoduché.

Zkus si nejdřív vymyslet příkaz který pomocí rekurze vysbírá všechny značky na políčku kde Karel stojí, a pak zapřemýšlej jak by se dal udělat ten rekurzivní TAM-A-ZPĚT.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
flushed
Level 1
Level 1
Příspěvky: 78
Registrován: 15 dub 2012 11:01

Re: Kdo by mě naučil základy programování?

Příspěvek od flushed »

Proč je vrchol v 25 letech? To jako že pak už to půjde z kopce?
staclu
Level 3
Level 3
Příspěvky: 642
Registrován: 22 lis 2012 15:15

Re: Kdo by mě naučil základy programování?

Příspěvek od staclu »

Kód: Vybrat vše

ZNAČKY
  DOKUD JE ZNAČKA
    ZVEDNI
    ZNAČKY
  KONEC
KONEC
--- Doplnění předchozího příspěvku (21 Bře 2013 20:11) ---

Do poloviny se můžu dostat takhle nebo to myslíš jinak?

Kód: Vybrat vše

PŮL
  KEZDI
  ČELEMVZAD
  OPAKUJ 4-KRÁT
    KROK
  KONEC
KONEC
Když chci poradit ohledně svého PC vždy mám na mysli tento počítač v podpisu
OS : Windows 7 64-bit
ZDROJ : MaxPower 500 W
CPU : AMD Phenom II x4 925 2,8 GHz
RAM : 4x1 GB
GPU : Gigabyte HD 7850 OC 2GB
MB : MSI KA790GX
funnyman
nováček
Příspěvky: 33
Registrován: 23 bře 2013 14:25

Re: Kdo by mě naučil základy programování?

Příspěvek od funnyman »

vložím se do vaší výuky:

existuje příkaz nebo možnost takový příkaz vytvořit, který dělá "dokud se na políčko vejde značka, polož ji"?
Uživatelský avatar
CrazyC0de
Level 3
Level 3
Příspěvky: 517
Registrován: 02 pro 2012 20:25
Kontaktovat uživatele:

Re: Kdo by mě naučil základy programování?

Příspěvek od CrazyC0de »

funny, co ty by jsi chtěl v budoucnu tvořit ?
Vtípek

Alenka v říši divů : <div> <div><div><div><div>ALENKA</div> </div> </div> </div></div>
funnyman
nováček
Příspěvky: 33
Registrován: 23 bře 2013 14:25

Re: Kdo by mě naučil základy programování?

Příspěvek od funnyman »

to nevím - to záleží, co mě bude bavit. Udělal jsem několik webů v dobách, kdy nebylo CMS, teď jsem schopný si opravit šablonu ve wordpressu, ale nic víc - vlastně tomu ani nerozumím, ale s pomocí dokumentace na to nějak metodou pokus-omyl přijdu.

Používám linux, umím to už relativně obstojně spravovat. Začal jsem se učit Python3 podle přeložených knih a různých průvodců na webu.
Teď jsem tu našel Karla a je to docela dobrá logická průprava...
Uživatelský avatar
CrazyC0de
Level 3
Level 3
Příspěvky: 517
Registrován: 02 pro 2012 20:25
Kontaktovat uživatele:

Re: Kdo by mě naučil základy programování?

Příspěvek od CrazyC0de »

A vsázíš teda na tvoření webů, nebo na programy(desktop x konzole)...

Budouncost je ve webech..
Vtípek

Alenka v říši divů : <div> <div><div><div><div>ALENKA</div> </div> </div> </div></div>
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7415
Registrován: 23 pro 2010 09:23

Re: Kdo by mě naučil základy programování?

Příspěvek od faraon »

funnyman píše:existuje příkaz nebo možnost takový příkaz vytvořit, který dělá "dokud se na políčko vejde značka, polož ji"?
Ne, neexistuje. Ale Turbo Karel měl podmínku MÍSTO, tam se dalo udělat tohle:

Kód: Vybrat vše

DOKUD JE MÍSTO
  POLOŽ
KONEC
V tom webovém Karlovi tahle podmínka není, a na každé políčko se vejde maximálně osm značek!
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
staclu
Level 3
Level 3
Příspěvky: 642
Registrován: 22 lis 2012 15:15

Re: Kdo by mě naučil základy programování?

Příspěvek od staclu »

Do poloviny se můžu dostat takhle nebo to myslíš jinak?

Kód: Vybrat vše

PŮL
  KEZDI
  ČELEMVZAD
  OPAKUJ 4-KRÁT
    KROK
  KONEC
KONEC
Když chci poradit ohledně svého PC vždy mám na mysli tento počítač v podpisu
OS : Windows 7 64-bit
ZDROJ : MaxPower 500 W
CPU : AMD Phenom II x4 925 2,8 GHz
RAM : 4x1 GB
GPU : Gigabyte HD 7850 OC 2GB
MB : MSI KA790GX
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7415
Registrován: 23 pro 2010 09:23

Re: Kdo by mě naučil základy programování?

Příspěvek od faraon »

Ne, myslel jsem tím celočíselné dělení. Když ti například ke zdi zbývají čtyři kroky, tak výsledný posun bude o dva, když tři, výsledek bude jedna, zbytek po dělení ignoruj.

Kód: Vybrat vše

 kroků   výsledný
ke zdi    posun
-----------------
   9        4
   8        4
   7        3
   6        3
   5        2
   4        2
   3        1
   2        1
   1        0
   0        0
Napadá tě jak to provést? Napovím ti že jsem k tomu použil příkaz COUVNI, ale šlo by to i s ČELEM-VZAD.
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)
Uživatelský avatar
CrazyC0de
Level 3
Level 3
Příspěvky: 517
Registrován: 02 pro 2012 20:25
Kontaktovat uživatele:

Re: Kdo by mě naučil základy programování?

Příspěvek od CrazyC0de »

Faraon : zrozen býti učitelem. xD
Vtípek

Alenka v říši divů : <div> <div><div><div><div>ALENKA</div> </div> </div> </div></div>
staclu
Level 3
Level 3
Příspěvky: 642
Registrován: 22 lis 2012 15:15

Re: Kdo by mě naučil základy programování?

Příspěvek od staclu »

Tak mě nic nenapadá asi budu potřebovat další nápovědu :?
Když chci poradit ohledně svého PC vždy mám na mysli tento počítač v podpisu
OS : Windows 7 64-bit
ZDROJ : MaxPower 500 W
CPU : AMD Phenom II x4 925 2,8 GHz
RAM : 4x1 GB
GPU : Gigabyte HD 7850 OC 2GB
MB : MSI KA790GX
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
    6807 Zobrazení
    Poslední příspěvek od petr22

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