Kdo by mě naučil základy programování?
Re: Kdo by mě naučil základy programování?
Té chyby jsem si taky všiml. Ty jednodušší úlohy bych bral. Mohl bys mi ještě vysvětlit podrobně jak a proč funguje příkaz TAM-A-ZPĚT - proč se vrátí přesně o ten počet míst. Koukal jsem se taky na tu Javu a pochopil prvních 5 lekcí a pak už toho bylo moc. Ale umím program HelloWorld. Pascal jsem zkoušel taky ale ten mi nejde na sedmičkách a na xpéčka se mi to přepínat moc nechce.
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
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
Re: Kdo by mě naučil základy programování?
Tak nejdřív je potřeba vědět jak probíhá volání příkazů (podprogramů). Když Karel narazí na název jiného příkazu, tak si (třeba do notýsku, říká se mu zásobník) poznamená místo kde se to stalo, a skočí na ten jiný příkaz. Po jeho skončení se zase vrátí přesně na to místo které si poznamenal, z notýsku ten zápis vymaže, a pokračuje následujícím řádkem programu:
Rekurze probíhá úplně stejně, jen s tím rozdílem že se znovu začne provádět od začátku ten příkaz, ze kterého se volá, a po jeho skončení se zase vrátí tam odkud se volal a pokračuje se v předchozí práci. Takže když Karel bude stát na třetím poli od zdi, stane se tohle:
Příkaz COUVNI jsem už nerozepisoval, takhle je to přehlednější.
A teď ty jednodušší úlohy, hned na tu první bys už měl být rozcvičený:
Jestli jsi zkoušel šestnáctibitový Turbo Pascal, tak ten už rozjedeš jenom přes DOSBox, ale zato na celou obrazovku a i s grafikou! Dvaatřicetibitový Free Pascal by v sedmičkách měl fungovat, i když jen v okně.
Jen pro zajímavost, podívej co se učí ve vietnamských školách:
Kód: Vybrat vše
+--------------+
| COUVNI |
| | +--------------+
| ČELEM-VZAD |---->| ČELEM-VZAD |
| | | VLEVO-VBOK |
| | | VLEVO-VBOK |
| |<----| KONEC |
| | +--------------+
| |
| | +-----------------+
| ?KROK |---->| ?KROK |
| | | KDYŽ NENÍ ZEĎ |
| | | KROK |
| | | KONEC |
| |<----| KONEC |
| | +-----------------+
| |
| | +--------------+
| ČELEM-VZAD |---->| ČELEM-VZAD |
| | | VLEVO-VBOK |
| | | VLEVO-VBOK |
| |<----| KONEC |
| | +--------------+
| KONEC |
+--------------+
Rekurze probíhá úplně stejně, jen s tím rozdílem že se znovu začne provádět od začátku ten příkaz, ze kterého se volá, a po jeho skončení se zase vrátí tam odkud se volal a pokračuje se v předchozí práci. Takže když Karel bude stát na třetím poli od zdi, stane se tohle:
Kód: Vybrat vše
+-----------------+ ZEĎZEĎZEĎ
| TAM-A-ZPĚT | ZEĎZEĎZEĎ
| KDYŽ NENÍ ZEĎ | ZEĎZEĎZEĎ
| KROK | +-----------------+ ZEĎZEĎZEĎ
| TAM-A-ZPĚT |---->| TAM-A-ZPĚT | ZEĎZEĎZEĎ
| | | KDYŽ NENÍ ZEĎ | ZEĎZEĎZEĎ
| | | KROK | +-----------------+ ZEĎZEĎZEĎ
| | | TAM-A-ZPĚT |---->| TAM-A-ZPĚT | ZEĎZEĎZEĎ
| | | | | KDYŽ NENÍ ZEĎ | ZEĎZEĎZEĎ
| | | | | KROK | ZEĎZEĎZEĎ
| | | | | TAM-A-ZPĚT | ZEĎZEĎZEĎ
| | | | | COUVNI | ZEĎZEĎZEĎ
| | | | | KONEC | ZEĎZEĎZEĎ
| | | |<----| KONEC | ZEĎZEĎZEĎ
| | | | +-----------------+ ZEĎZEĎZEĎ
| | | COUVNI | ZEĎZEĎZEĎ
| | | KONEC | ZEĎZEĎZEĎ
| |<----| KONEC | ZEĎZEĎZEĎ
| | +-----------------+ ZEĎZEĎZEĎ
| COUVNI | ZEĎZEĎZEĎ
| KONEC | ZEĎZEĎZEĎ
| KONEC | ZEĎZEĎZEĎ
+-----------------+ ZEĎZEĎZEĎ
Příkaz COUVNI jsem už nerozepisoval, takhle je to přehlednější.
A teď ty jednodušší úlohy, hned na tu první bys už měl být rozcvičený:
- Koně
Naučte Karla pohybovat se jako šachový kůň (všechny čtyři možnosti).
Ve dvojicích si můžete zahrát hru. Každý hráč dostane dva koně (dva příkazy). Pohybujte Karlem tak, aby soupeř byl donucen narazit do zdi. - Čtyři zdi
Karel jde neustále rovně a u zdi udělá vlevo vbok. Postavte čtyři zdi tak, aby ušel co nejdelší trasu, než dojde na pole, kde již byl. - Valčík
Karel obejde město libovolných rozměrů a na každém poli se jedenkrát otočí. - Sběrač
Ve městě bez vnitřích zdí jsou rozházeny značky. Karel má za úkol je všechny vysbírat. - Úhlopříčky
Karlovo město je libovolný čtverec. Položte na úhlopříčky po jedné značce. - Svislá zeď
Město je přehrazeno svislou zdí v níž je otvor. Přejděte z levého dolního rohu do pravého horního rohu. - Domů
Město je bez vnitřních zdí. Karel stojí na libovolném poli, libovolně natočen.
Naučte Karla dojít "domů" - do levého dolního rohu a tam se natočit na východ. - Míč - 1
Město je bez značek a může obsahovat vnitřní zdi. Karel je na libovolném poli libovolně natočen.
Karel má za úkol běhat ve městě šikmými směry a odrážet se od zdí jako míč. - Míč - 2
Upravte předchozí variantu míče tak, aby program nezkolaboval po přeplnění zásobníku. - Najdi 2 značky
Ve městě bez vnitřních zdí libovolných rozměrů jsou rozházeny značky. Jen na jednom poli jsou právě dvě.
Karel toto pole najde a zůstane na něm stát. Značky ve městě musí zůstat neporušeny. - Bludiště
V Karlově městě je ze zdí vytvořeno bludiště. Cesty je široká jedno pole. Dojděte na konec bludiště. - Kroky
Udělejte s Karlem tolik kroků, kolik je na políčku značek. Naražení do zdi neuvažujte. - Otoč město o 180°
Karlovo město má tvar libovolného obdélníku. Nemá vnitřní zdi. Jsou v něm libovolně rozházeny značky. Otočte obsah města o 180°.
Jestli jsi zkoušel šestnáctibitový Turbo Pascal, tak ten už rozjedeš jenom přes DOSBox, ale zato na celou obrazovku a i s grafikou! Dvaatřicetibitový Free Pascal by v sedmičkách měl fungovat, i když jen v okně.
Jen pro zajímavost, podívej co se učí ve vietnamských školách:
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
Re: Kdo by mě naučil základy programování?
To mám všechno udělat rekurzí? Díky tomu zásobníku sem to pochopil, dík.
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
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
Re: Kdo by mě naučil základy programování?
Většinou vystačíš s cykly, ale některé věci se dají řešit cykly i rekurzí, tam bys mohl zkusit oba způsoby. Rekurze je sice pomalejší, ale výsledný program bývá jednodušší a univerzálnější.
Ale musí se s ní zacházet opatrně, protože zásobník zabírá paměť a může se přeplnit, což je pro program rozsudek smrti! Hlavně je potřeba udělat volání rekurze vždy jen v nějaké podmínce, jinak následuje nekonečná smyčka a pád programu...
A ještě jeden školní obrázek z Vietnamu:
Ale musí se s ní zacházet opatrně, protože zásobník zabírá paměť a může se přeplnit, což je pro program rozsudek smrti! Hlavně je potřeba udělat volání rekurze vždy jen v nějaké podmínce, jinak následuje nekonečná smyčka a pád programu...
A ještě jeden školní obrázek z Vietnamu:
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
- proofer
- Level 4
- Příspěvky: 1421
- Registrován: listopad 12
- Bydliště: Zlínský kraj
- Pohlaví:
- Stav:
Offline
Re: Kdo by mě naučil základy programování?
@faraon A když bych si tímhle vším podstoupil a naučil se to ovládat co bych pak byl schopný vytvořit?
Intel Core i3-4150| GIGABYTE GA-B85-HD3 |Kingston HyperX Fury Blue 4GB DDR3 1600+/2x/Transcend JetRam 2GB DDR3 1333 /8GB/ |Seagate Barracuda 7200.14 - 1TB |EVGA 500B |MSI R9 270X GAMING 2G@1180/1500 |CoolerMaster K350 |Benq VW2245Z |A4Tech Bloody V8
- Žbeky
- Moderátor
-
Guru Level 13
- Příspěvky: 22288
- Registrován: květen 08
- Bydliště: Vsetín - Pardubice
- Pohlaví:
- Stav:
Offline
Re: Kdo by mě naučil základy programování?
Byl bys schopný programově přemýšlet. Jazyk a syntaxe je už to poslední
V SZ řeším jen záležitosti týkající se fóra. Na prosby a žádosti o technickou podporu nereaguji. Díky za pochopení.
HiJackThis + návod - HW Monitor - Jak označit příspěvek za vyřešený - Pravidla fóra
HiJackThis + návod - HW Monitor - Jak označit příspěvek za vyřešený - Pravidla fóra
Re: Kdo by mě naučil základy programování?
To co se učí ve vietnamu je plánováni trasy nebo tak něco?
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
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
- domitea
- Tvůrce článků
-
Level 4.5
- Příspěvky: 1971
- Registrován: červen 09
- Bydliště: Královehradecký kraj
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: Kdo by mě naučil základy programování?
Ty cesty je pouhá vizualizace. Ve výsledku to může být třeba hromada matic nebo pouhé trasování něčeho společného. Tady jde o to to správně pochopit a používat. 

Re: Kdo by mě naučil základy programování?
proofer píše:@faraon A když bych si tímhle vším podstoupil a naučil se to ovládat co bych pak byl schopný vytvořit?
Byl bys schopný vytvořit všechno co se v Karlovi dá udělat. A také by ses bez problémů mohl začít učit nějaký skutečný programovací jazyk, a protože základy strukturovaného programování a základní techniky už bys uměl z Karla, tak by ses vyhnul spoustě začátečnických problémů a šlo by ti to mnohem rychleji. Tedy aspoň v první půlce, než bys narazil na vlastnosti dané hardwarem počítačů, jako počet bitů v bajtu, ale to jsou věci které se musíš naučit jinde, tady se s nimi naopak vůbec nezatěžuješ, protože je toho strašně moc a nedá se to zvládnout všechno najednou.
Karel tě prostě naučí základům programátorského myšlení a strukturovaného programování. Na Stanford University si s ním vysokoškoláci hrají skoro dva měsíce, než přejdou na Javu.
A jak už jsem tu kdysi napsal v charakteristice různých programovacích jazyků:
Karel: Plyšový medvídek. Úžasná hračka, sice se s ním nedá vůbec nic udělat, ale s trochu fantazie může být čímkoliv, jako výuková pomůcka ideální. A nejde si tím ublížit! Pro mě je to dost návyková hračka, dokonce má i schopnosti akrobatického letadla, pokud si vystačíš s prostorem velikosti akvária.
Nebo můžeš začít tím že si prostuduješ ten kód co mám na mém avataru vepsaný kolem toho tučňáka, je to totiž funkční program v jazyce C. Ale protože to je velmi těžký jazyk, a ten prográmek je záměrně napsaný (spíš naprasený) dost nečitelně, tak to bude mít za následek nejspíš to, že na programování navždy zanevřeš

staclu píše:To co se učí ve vietnamu je plánováni trasy nebo tak něco?
To je hledání DOMOVa v bludišti (tvoje úloha číslo 11), v Karlovi by to, co má ten kluk na obrazovce, vypadalo takhle:
Rozdíl je v tom, že ten jejich program má plochu jen 8x8, a ovlává se myší, místo abys příkazy psal, tak si je nataháš a sestavíš z těch "lístků" co máš v prostředním okně. Jinak je tam totéž jako v Karlovi, KROK, VLEVO-VBOK, KDYŽ, DOKUD, OPAKUJ...
Ten český Karel je inspirovaný původním, jak vypadal a fungoval na osmibitových počítačích v osmdesátých letech:
"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
- proofer
- Level 4
- Příspěvky: 1421
- Registrován: listopad 12
- Bydliště: Zlínský kraj
- Pohlaví:
- Stav:
Offline
Re: Kdo by mě naučil základy programování?
No já právě myslel co bych vytvořil až bych uměl nějaký ten jazyk co by se s tím dalo vytvořit.
Intel Core i3-4150| GIGABYTE GA-B85-HD3 |Kingston HyperX Fury Blue 4GB DDR3 1600+/2x/Transcend JetRam 2GB DDR3 1333 /8GB/ |Seagate Barracuda 7200.14 - 1TB |EVGA 500B |MSI R9 270X GAMING 2G@1180/1500 |CoolerMaster K350 |Benq VW2245Z |A4Tech Bloody V8
Re: Kdo by mě naučil základy programování?
Třeba kalkulačku nebo program, který ti vypíše dělku přepony když zadáš a a b podle pythagorovy věty apod.
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
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
Re: Kdo by mě naučil základy programování?
proofer píše:No já právě myslel co bych vytvořil až bych uměl nějaký ten jazyk co by se s tím dalo vytvořit.
Vzhledem k tomu že veškeré programy jsou vytvořené v nějakém programovacím jazyku, tak potom dokážeš vytvořit úplně cokoliv, na co tvoje schopnosti stačí. Většinou je ale potřeba umět mnohem víc než jen programovat, třeba program na účetnictví nemůže psát člověk, který o účtování vůbec nic neví, musí se pro to stejně naučit aspoň základy daného problému. Stejně tak letecký simulátor těžko naprogramuje někdo, kdo propadal z fyziky.
Například Linux je napsaný v C, Windows a většina špičkových her v C++, Android a spousta mobilních aplikací v Javě. Webový prohlížeč Firefox je směs C, C++ a JavaScriptu, Safari zase C++ a Objective-C. Weby jako je tenhle se zase programují v PHP. Ve vědeckotechnických výpočtech už od padesátých let kraluje Fortran, i když dnes už většinou jen na superpočítačích, bankovní operace na nejvyšší úrovni stále obstarávají programy ve stejně starém jazyce Cobol, ale to jsou věci se kterými se pravděpodobně nikdy nesetkáš. Spíš narazíš na spoustu jiných jazyků, jako Pascal, Python, Ruby, Perl, Lisp, Smalltalk, Scratch, občas historický BASIC, a desítky jiných...
No a syntaxe většiny moderních jazyků vychází právě ze zásad strukturovaného programování, které tě učí Karel. Když je zvládneš v Karlovi, budeš je moci (s nepatrnými odlišnostmi) uplatnit ve kterémkoliv z těch dnes používaných jazyků, až na pár výjimek určených pro speciální účely, jako je třeba Prolog vyvinutý pro programování umělé inteligence.
Zatím si můžeš programováním pomoci například se školními úkoly, já jsem si třeba při řešení rovnic kontroloval jestli jsem neudělal nějakou nesmyslnou úpravu. Zadal jsem rovnici do počítače v původním tvaru, a pak po každé úpravě, a po spuštění programu mi musel vyjít vždy stejný výsledek. Pokud se poslední lišil, znamenalo to že jsem provedl něco nepřípustného, takže jsem na chybu přišel okamžitě, a ne o dvacet řádků později při zkoušce

"Král Lávra má dlouhé oslí uši, král je ušatec!
(pravil K. H. Borovský o cenzuře internetu)
(pravil K. H. Borovský o cenzuře internetu)
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 0 hostů