Programování
#1
Posted 09 December 2013 - 04:36 PM
#2
Posted 09 December 2013 - 06:15 PM
Pro zacatek by sis mohl predstavit, ze chces k tomu stejnemu donutit nejakeho robota. Pocitace ale jak znamo myslet neumi, takze pokyny musi byt co nejvic presne. Kdybych mu rekl to co je uvedeno vejs, tak by urcite nastala jedna zasadni chyba - robot by se nevratil protoze jsem mu nerekl ze se vratit ma. (a to jeste predpokladam ze by robot vedel jak koupit rohliky a vejce a rohliky v obchode opravdu byly...). Kdybych to chtel rozepsat detailne, tak by to mohlo vypadat nejak takhle:
opakuj dokud neni splnena podminka "jsi v obchode" { otoc se smerem k obchodu udelej krok } spocitej sklenice a zapamatuj si jejich pocet jako POCETSKLENIC opakuj dokud plati "POCETSKLENIC je vetsi nez 0"{ vezmi sklenici z batohu poloz sklenici na pult odecti od POCETSKLENIC jednotku a nove cislo si zapamatuj jako POCETSKLENIC } ..... (tady by se podobnym zpusobem udelalo nakupovani rohliku a vajec atd) ..... opakuj dokud neni splnena podminka "jsi doma" { otoc se smerem k domovu udelej krok }
A uplne stejne to funguje v programovani. Pocitac neumi nic sloziteho. Pocitaci zadavas co nejjednodussi prikazy, ktere dokaze udelat. Rozhodne ale nejde cekat, ze si pocitac sam vymysli, co vlastne chces.
No a ted k praxi - kdyz chces zacit programovat, je potreba se rozmyslet - co, proc a jak. Existuje spousta programovacich jazyku a kazdy je vhodny na neco jineho. PHPcko na webove stranky na serveru, Javascript na webove stranky na pocitaci, Cecko na normalni programy na pocitaci, visualbasic/delphi/atd na jednodussi okynkovy aplikace, java na multiplatformni aplikace .....
Bez tohodle rozhodnuti vazne netusim, jakym smerem te popostrcit a co ti ukazat/vysvetlit. V podstate se ale vsecko toci okolo toho stejneho - umet popsat, to co chci udelat pomoci jednoduchych pokynu (tomu se rika algoritmizace) a nasledne tyto pokyny v konkretnim jazyce napsat (to je samotne programovani - prevod algoritmu do syntaxe daneho jazyka). I kdyz si mnoho lidi mysli, ze se nasprtaj prikazy a to je vse, tak je opak pravdou - zakladem je algoritmizace a to, jak to napises je uz pak jen encyklopedicka znalost, kterou si muzes kdykoliv dohledat na webu nebo v manualech. Spravny algoritmus ale nikde nenajdes a musis ho vymyslet vzdy sam :)
takze shrnuto a podtrzeno - mas prvni ukol - rozhodnout se co by jsi chtel delat. (ne, nerikej prosim "trojrozmernou hru na styl wowka". vymysli si neco opravdu jednoduchyho). I kdyz je zaklad v algoritmizaci, porad musim vedet, jakym jazykem zacit, abys mel na cem trenovat.
#3
Posted 09 December 2013 - 09:36 PM
Ruznych navodu je na internetu kvadrilion. Skoro kazdy ti zacne "Hello world" a konci..ok, to nevim, jeste jsem na konec nedosel :D .
Upozorneni: priprav si hodne nervu. Jsou treba casto a ve velke mire :D .
#4
Posted 09 December 2013 - 09:42 PM
#5
Posted 10 December 2013 - 09:28 AM
#6
Posted 10 December 2013 - 01:07 PM
No a potom jsem zkoušel přepisovač realmlistů podle http://www.cprogramm...al/lesson1.html, pokud umíš anglicky, tak by to neměl být problém. Podle návodu jsem si nastavil Code Blocks: http://www.cprogramm...om/code_blocks/, prokousal se těma 10 lessons a byla to zábava vytvořit si smysluplnej, ale zároveň jednoduchej program. Můžeš to zkusit taky. ;)
#7
Posted 10 December 2013 - 03:44 PM
Tobě už jsem to poslal, pompere.
#8
Posted 10 December 2013 - 04:03 PM
#9
Posted 10 December 2013 - 04:43 PM
Rozdily na prvni pohled jsou pri vypisovani a skenovani. Pak pri vypisovani knihoven, ale to je malickost.
Skenovani
C - scanf("%d",&neznama);
C++ - cin>>neznama;
Tisk
C - printf("Neznama je %d", neznama);
C++ - cout<<"Neznama je "<<neznama;
Parafrazuju naseho ucitele, ktery nas uci C++ a slysel, ze na zkousce je C: "Nechapu, proc musite programovat v C, kdyz tam je milion nepodstatnych picovin, na kterych se muzete vysekat." Narazel na to, ze u C# ti staci zapomenout definovat, o jakou neznamou se jedna, zapomenes & u skenovani apod a uz jsi v haji, navic kdyz ti nejaky zastaraly program ukazuje chybu na jinem radku (treba BCI, s kterym jsme museli delat my na stredni).
#10
Posted 10 December 2013 - 06:43 PM
#11
Posted 10 December 2013 - 06:50 PM
#12
Posted 10 December 2013 - 11:52 PM
Umíš-li C++, tak umíš i 90% Javy a naopak. Každopádně si troufnu říct, že jestli se tím chceš do budoucna nějak živit, tak Java je moudřejší volba, protože Java cápky chtějí prostě všude a jsou i líp placený. Nemluvě o tom, že pak můžeš pohodlně přejít na vývoj Android appek ve kterých je a bude spousta peněz.
Navíc pokud umíš anglicky, tak se mi Java zdá i víc intuitivnější než C++. V hlavě se zamyslíš nad problémem co se snažíš vyřešit, dekompozituješ ho na menší podproblémy a už to tam jenom sázíš.
enableControls();
mediaPlayer.play();
prostě jenom říkáš co to má dělat :D
A jako bonus u Javy si nemusíš dělat starosti s uvolňováním paměti, což je kolikrát celkem vopruz, protože tu funguje Garbage collector.
Je sice pravda, že když napíšeš jeden a ten samej program v C++ a v Javě, tak Java ti sežere víc paměti, ale v dnešní době 8+GB pamětí...who cares.
This post has been edited by Mr.Manik: 10 December 2013 - 11:53 PM
#14
Posted 11 December 2013 - 09:04 AM
#16
Posted 11 December 2013 - 05:16 PM
#17
Posted 17 December 2013 - 08:24 PM
ano, je pravda, že c++ se tváří lehčí kvůli syntaxi, ale nemyslím,že je dobrý rovnou začínat v c++, to rovnou člověk může začít v javě a ignorovat pointry(ukazatele) atd... Rozhodně bych začal se základy C, pochopit, jak vůbec programování funguje, jak se to ukládá všechno do paměti, atd. (takže začít s proměnýma, přes cykly, funkce, pole, dynamickou/statickou alokaci paměti přejít až ke strukturám). Mno a po těhle základech přejít na C++, kde začneš s menšími rozdíly mezi C a C++ (jako výše zmíněný vstup a výstup) a potom pokračovat s třídama (což je hlavní rozdíl mezi C a C++), přetěžovat operátory, a postupně se propracovat až k dědičnosti.
S maníkem musím nesouhlasit - ano, java je neefektivní ať už z hlediska paměti, tak z hlediska rychlosti. Když umíš C++, tak umíš 90% javy, ano, ale zpětně to tak nefunguje. Pro C/C++ je ta práce s pamětí nesmířně důležitá a i když se může zdát zezačátku složitá, tak ve výsledku je to silná stránka C/C++, které jako programátor můžeš využít (a osobně si nedokážu představit programování bez ukazatelů :D ). Krom toho C (potažmo C++) dokáže nahradit téměř jakýkoli jiný programovací jazyk. A i když obecně mají programátoři v jave o něco málo vyšší plat, daleko víc záleží na tom, jak svoje schopnosti dokážeš prodat a kde budeš dělat.
#18
Posted 17 December 2013 - 09:17 PM
Kazdopadne ukazatele jsou presne to co me prvne od programovani odradilo...nez sem na ne narazil, tak pohoda...a pak zasek :D
#19
Posted 17 December 2013 - 11:48 PM
#20
Posted 18 December 2013 - 02:18 AM