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

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod faraon » 21 bře 2013 19:46

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)

Reklama
flushed
Level 1
Level 1
Příspěvky: 78
Registrován: duben 12
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod flushed » 21 bře 2013 20:03

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: listopad 12
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod staclu » 21 bře 2013 20:04

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

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

Příspěvekod funnyman » 23 bře 2013 14:27

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: prosinec 12
Pohlaví: Muž
Stav:
Offline
Kontakt:

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

Příspěvekod CrazyC0de » 23 bře 2013 16:00

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

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

Příspěvekod funnyman » 23 bře 2013 16:14

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: prosinec 12
Pohlaví: Muž
Stav:
Offline
Kontakt:

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

Příspěvekod CrazyC0de » 23 bře 2013 19:20

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

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

Příspěvekod faraon » 24 bře 2013 00:44

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: listopad 12
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod staclu » 24 bře 2013 09:23

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

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

Příspěvekod faraon » 24 bře 2013 10:36

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: prosinec 12
Pohlaví: Muž
Stav:
Offline
Kontakt:

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

Příspěvekod CrazyC0de » 24 bře 2013 14:22

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: listopad 12
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod staclu » 24 bře 2013 19:58

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


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 8 hostů