Cim zacit v C

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
forbidden
Příspěvky: 9442
Registrován: 14 úno 2005, 00:00
Bydliště: Brno (JN89GF)
Kontaktovat uživatele:

#16 Příspěvek od forbidden »

Souhlasím, že to asi není ideální na začátek, taky jsem měl spousty nejasností a otázek, když jsem ten seriál projížděl. Ale prostě jsem zkoušel, projížděl fóra, google a časem se začalo vyjasňovat. Myslím, že právě tím zkoušením se člověk naučí dost věcí. Chce to jen čas. Momentálně zvládnu to, co jsem potřeboval, tj, komunikovat s COM portem, práci se soubory a samozřejmě nějaký ty věci okolo. Vše přes WinAPI. Zbytek se budu učit, jak nastane potřeba to umět. Jediný, co jsem zatím vzdal jsou okna. Pro mý potřeby mi stačí příkazovej řádek a zrovna práce s okny mi přijde celkem složitá.
Uživatelský avatar
Panda38
Příspěvky: 725
Registrován: 21 lis 2012, 00:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#17 Příspěvek od Panda38 »

rnbw píše:Treba si uvedomit, ze C a C++ su dva rozne jazyky a nespajat ich dokopy. Ze sa mnoho programov v C da skompilovat kompilatorom C++ na tom nic nemeni.
A naopak - mnoho lidí si neuvědomuje, že "objektově" se dá psát i v základním C. Jen namísto class používat struktury, při dědění vložit strukturu rodiče na začátek struktury potomka, konstruktor a destruktor je nutné volat explicitně (funkce mohou být také virtuální, jako ukazatele ve struktuře), funkce se musí odlišovat jménem a musí se jim předávat ukazatel na objekt. Je to jen trochu víc zápisu, ale funkčnost se dá zajistit stejná a naopak má programátor větší kontrolu nad kódem.
Uživatelský avatar
rnbw
Příspěvky: 37417
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#18 Příspěvek od rnbw »

Nieco podobne sa pouziva aj v Linuxe - v jadre, ktore je cele napisane v C. Kod je vacsinou prehladny a pekne citatelny.
Uživatelský avatar
mtajovsky
Příspěvky: 3728
Registrován: 19 zář 2007, 00:00
Bydliště: Praha

#19 Příspěvek od mtajovsky »

rnbw << "To je pravda, ale částečně i není. FORTRAN a ALGOL60 jsou dva jiné jazyky. C a C++ dávají jiné .obj výstupy, C++ komolí jména a tak dále, ale většina syntaxních konstrukcí z C je použita i v C++. Z hlediska syntaxe a učení je možno zjednodušeně říci, že C++ je nadstavba. I když programátor musí mít na vědomí, že C++ přistupuje ke spoustě věcí v kódu s rozšířenými pravidly a tím nastávají efekty v holém C neznámé." ;

:)

Panda38 píše:A naopak - mnoho lidí si neuvědomuje, že "objektově" se dá psát i v základním C.
Ano, to je dotaženo v COM téměř k dokonalosti. :twisted: No, ale pohoda skutečného objektového jazyka to není.
Uživatelský avatar
Celeron
Příspěvky: 20510
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#20 Příspěvek od Celeron »

mtajovsky píše:I na netu je mnoho stravitelnějších seriálů.


Bohuzel, ten serial ma jen asi 5 pokracovani a od roku 2006 ani carka...
Jirka
Uživatelský avatar
hfechs
Příspěvky: 24
Registrován: 06 srp 2011, 00:00

#21 Příspěvek od hfechs »

Pro naučení C doporučuju tento serial http://www.linuxsoft.cz/article.php?id_article=370. Podle něj jsem se kdysi C dobře naučil. Má v názvu sice C/C++, ale k C++ se dostavá až od 31 kapitoly a C++ je tam jen načaté. Ale to nevadí, část o C je dokončena a ucelená.

Jinak netřeba se bát, že se zabyvá céčkem v jeho přirozeném prostředí unixu (Linux), stačí odstavce o překladači, editorech a podobně přeskočit (takže asi začít číst od 2 kapitoly), jinak je to samozřejmě stejné. Jinak jako překladač pro windows bych místo devcpp doporučoval vyzkoušet codeblocks, Devcpp se už nevyvíjí..

Jinak na C++ radím teď zapomenout a naučit se pořádně C. C je totiž jednoduchý a univerzální jazyk, C++ komplikovaný moloch. Myslím že objektově programovat umím slušně, ale C++ jsem neměl nikdy motivaci se učit, pracuji s jinými jazyky. Také doporučuju odolat pokušení, že budu psát v C, ale přeložím to C++ překladačem, abych semtam mohl použít z C++ nějakou vychytávku (třeba string). To je podle mě prasení.

A poté nejde ani tak o jazyk, jako o pochopení základních konstrukcí a schopnosti algoritmizovat (rozložit problém na podproblémy). Když už vím, jak tvořit program a jaké konstrukce používat, je většinou naučení nového jazyka pro základní programování chvilka (samozřejmě nemluvím o extrémech jako skok z procedurálního jazyka do funkcionálního), déle pak trvá naučit se používat různé vychytávky.

Další problém je, že samotný jazyk je jen prostředek, ale pokud má program něco smysluplného dělat, ne jen vypisovat "Hello world" do konsole, je potřeba naučit se i knihovny, ve windows třeba pro tvorbu okýnek a gui blbostí, u mikroprocesoru pro nějaké VV rozhrání, převodníky, atd.. a tohle trvá obvykle mnohem déle než zvládnutí jazyka, jako příklad dám třeba knihovnu OpenGL pro 3D grafiku :). Navíc se knihovny narozdíl od jazyka pořád mění a nedá se to všechno udržet v hlavě, takže věčná práce s googlem / manuálem.
Uživatelský avatar
Panda38
Příspěvky: 725
Registrován: 21 lis 2012, 00:00
Bydliště: Most, Praha, Lanžhot
Kontaktovat uživatele:

#22 Příspěvek od Panda38 »

Možná je dobré si před C udělat ještě malou odbočku. :-) Jako je skládačkový vizuální progamovací nástroj, kde není třeba se učit nějaké syntaxe, ale dají se tam snadno pochopit základní programovací techniky (jako je cyklus, podmínka) a pak už je mnohem snazší přecházet k vyšším programovacím nástrojům: http://petr.hostuju.cz/ (případně pokračovat dál např. směrem k 3D grafice, která je tu velmi snadná)
Uživatelský avatar
Celeron
Příspěvky: 20510
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#23 Příspěvek od Celeron »

to hfechs: Dik za rady. Nakonec jsem sehnal nekolik knih C, co kdysi vydala Tesla Eltos pro MS-DOS. Mam Popis jazyka, Prirucku uzivatele, Knihovny funkci a Programovaci techniky. Je toho asi 1400 celkem vyzivnych a pro me docela srozumitelnych stran. Jasne, je to stary, pujde to jen z prikazovyho radku, ale to mi zatim staci.
Otazka je, jestli nekde splasim to vlastni C, pro ktery to bylo kdysi napsany. Dokonce jsem vse kdysi mel na 5,25 disketach ale ty jsou uz nekde v panu. V knihach je popsany, co potrebuju za soubory a k cemu ktery presne slouzi. Tak se uvidi.
Jirka
Uživatelský avatar
Niki31
Zablokován
Zablokován
Příspěvky: 131
Registrován: 05 črc 2008, 00:00

#24 Příspěvek od Niki31 »

Take stare sracky radsej zahod.Nainstaluj si Visual studio 2010 a
programuj v sucasnych C++ alebo C# .Knih je k tomu mraky.
Zo starych verzii jazykov sa prechadza na nove velmi zle.

Este dodam na ULOZTO.cz sa da stiahnut BORLAND C do MS-DOS
ak chces.
Uživatelský avatar
hfechs
Příspěvky: 24
Registrován: 06 srp 2011, 00:00

#25 Příspěvek od hfechs »

Celeron: C se skoro nemění. Nepřekládej to žadnými starými překladači, použij třeba codeblocks (je založený na překladači gcc, moderní překladač z unixu). Je to dokonce lepší než visual studio, protože to na C kašle a tuším že neumělo/neumí pořad normu stdc99. Zapomeň na C++ a C#, to s C nemá nic společného kromě názvu. Mikroprocesory se programujou pouze v C. Že to je jen konsolové je plus, ten můj seriál co jsem ti poslal taky je. Ono dokud nebudeš zvládat konsolové věci, je využívání knihoven nesmysl. A pak je ten princip pořád stejný, jenom místo aby ti to ten faktorial vypsalo do konsole ti ho vykreslí do okýnka ;-). Takže míst printf("Vysledek faktorialu: %i\n", value); budeš dělat nějaké

sprintf(buf, "%s", value);
SetDlgItemText( hwnd, ControlID, buf);

což tě jen odvede od původního problému.

A k těm tvým knížkám, proč ne. Ale i když jsem psal, že se C skoro nemění, jisté změny nastaly. Ty knížky budou pravděpodobně pro první normu a tam se trošku jinak zapisovaly hlavičky funkcí (to void main() { }), jinak to bude +/- stejné. A ty odlišné věci konzultuj s tím mým seriálem.

Ono vlastně není vůbec špatné učit se z více zdrojů, o tom celé to programování je ;-). Umět najít a pochopit informace a pracovat s nima.
Uživatelský avatar
Celeron
Příspěvky: 20510
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#26 Příspěvek od Celeron »

Niki31 píše:Take stare sracky radsej zahod.Nainstaluj si Visual studio 2010 a
programuj v sucasnych C++ alebo C# .Knih je k tomu mraky.
Zo starych verzii jazykov sa prechadza na nove velmi zle.

Este dodam na ULOZTO.cz sa da stiahnut BORLAND C do MS-DOS
ak chces.


Kdybys sledoval vlakno od zacatku, tak bys vedel, ze to chci na jednocipy a ty se programuji ve "starych srackach" tedy C bez zadnejch krizku...
Ale na Borlanda se kouknu, dik.
Jirka
Uživatelský avatar
mtajovsky
Příspěvky: 3728
Registrován: 19 zář 2007, 00:00
Bydliště: Praha

#27 Příspěvek od mtajovsky »

Pokud Borland pro MS-DOS, který se bude provozovat v konsolovem okně, tak Turbo C 2.0. Borland C++ 2.0 a pozdější (3.0 a 3.1) už pro slušný běh pužívaly extendní paměť v protected módu, pro kterou měly vlastního manažera, který není spustitelný v konsoli Windows.
Uživatelský avatar
Niki31
Zablokován
Zablokován
Příspěvky: 131
Registrován: 05 črc 2008, 00:00

#28 Příspěvek od Niki31 »

Tak pardon. Ja som myslel ze ked cech napise: "Jde mi o praci na Woknech" tak mysli programovanie pod Windows.

Ak planujes programovat mikrokontrolery potom potrebujes prekladac
ktory podporuje konkreetny jednocip.Vacsina IDE prostredi pre MCU obsahuje prekladac jazyka C.Staci si vybrat.

Co sa tyka Turbo C,Borland C tieto pokial viem nepodporuju mikrokontrolery.

Pre tu 51 je vhodny kompilator a simulátor ANSI-C pre MCU od firmy IAR Systems.
Pre Z80 neviem.
Wolfik
Příspěvky: 1079
Registrován: 28 črc 2009, 00:00

#29 Příspěvek od Wolfik »

myslím, že tenhle dotaz se sem hodí...
S jakýma mcu je dneska nejperspektivnější začínat?
Před 2 roky jsem dělal maturitní práci s atmegou a od té doby jsem na to nekoukl a chci s tím zase začít.
Uživatelský avatar
Celeron
Příspěvky: 20510
Registrován: 02 dub 2011, 00:00
Bydliště: Nový Bydžov

#30 Příspěvek od Celeron »

To Niki31: Mas pravdu, napsal jsem to blne, myslel jsem co pouzit aby to bylo podobny a pouzitelny jak pro mikrocipy, tak pro naky jednoduchosti pro PC pod Woknama. No vychazi mi z toho zakladni C a pak se uvidi.
Dokazes porovnat IAR 51 s Kiel 51?
Jirka
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“