Tyto stránky již nejsou udržovány. Obsah je postupně přesouván/aktualizován na adrese chytrosti.marrek.cz.

4/4

Céčko

Tato stránka slouží jako podpora výuky jazyka C na SPŠe Olomouc. Tento kurz by měl prostřednictvím jazyka C studenty uvést do programování.

Obsah

| navigace |

Domácí úkoly

Pokud se chcete naučit programovat musíte prostě programovat: zkoušet, experimentovat, variovat, vymýšlet. Proto jsou tu domácí úkoly.

Zadání aktuálních a řešení minulých domácích úkolu si každá třída může najít na samostatné stránce:

L4
aktuální zadání
řešení předchozích úloh

Domácí úkoly jsou povinné a je nutné je splnit v zadaném termínu. Zároveň jich budu používat při zkoušení. Pokud máte k řešení úkolů jakékoli dotazy, kontaktujte mě nejlépe osobně nebo pomocí konference Nejen o elektrotechnice. Pokud to bude jen trochu možné budu se vám věnovat.

Zásady pro odevzdávání domácích úkolů

Posílejte mi zásadně zdrojový kód a ne spustitelné binární soubory. Práce mi zašlete emailem podle obecného návodu. Je bezpodmínečně nutné aby vámi poslaný zdrojový kód bylo možné zkompilovat. Kompilace by měla proběhnout bez varovných hlášení. Dále je nutné aby byl zdrojový kód čitelný, tj. aby vnoření do bloků, podmínek a cyklů bylo vyjádřeno odsazením a aby byl patřičně okomentován.

Při odsazování je vhodné používat místo tabulátorů mezery. Odsazení je tak čitelné a nezávisle na tom, jak má který uživatel nastavenou šířku tabulátoru. Každý rozumný textový editor by měl umožňovat nastavit šířka tabulátoru a také vkládat při stisku tabulátoru místo znaku tabulátor, patřičný počet mezer. Pokud používáte program indent doporučuji přidat parametr --no-tabs.

| navigace |

Než začneme

Jazyk C je od svého vzniku nerozlučně spojen s operačním systémem Unix. Domnívám se, že pro začínající programátory a techniky je právě Unix tou nejlepší platformou. V dnešní době je asi nejpopulárnějším Unix-like operačním systémem Linux. Začínající programátor má v Linuxu vše jako na dlani, nemusí nic nikde pracně hledat nebo shánět a hlavně filozofie Unixu a přístup k programování ve světě kolem Un*xu vás vede k získaní správných programátorských návyků.

Pokud chcete s Linuxem začít a nevíte kde a jak, začněte na stránce proc.linux.cz. Hodně se také jistě naučíte, když si budete chtít ochočit Hrocha.

Skupiny Google
Přihlásit odběr skupiny Konference nejen o elektrotechnice
E-mail:
Navštívit tuto skupinu

Vše co se týká elektrotechniky, programování a souvisejících témat můžete prodiskutovat v konferenci na Google groups.

| navigace |

Co, kde, jak?

Na tomto místě bych se měl rozepsat o tom, jak a v čem psát zdrojové kódy, kde sehnat kompilátor a také o dalších užitečných nástrojích, které vám život s Cčkem usnadní. Naštěstí to dělat nemusím, protože to všechno za mě udělal David Martinek. Ten odvedl opravdu skvělou práci, takže nebudu vymýšlet vymyšlené a prostě vás odkážu na jeho stránky o programování v C. Doporučuji podrobně si je přečíst. Najdete zde vše, co pro začátek potřebujete. Já se zde dál zmíním jen o pár IMHO nejdůležitějších věcech.

Textový editor

Opravdu dobrý a výkonný textový editor může hodně usnadnit práci, nezávisle na tom, který používáte operační systém. Je dobré vybrat si ten svůj a pořádně si ho nastavit. Já už vim, který textový editor je pro mě nejlepší. Naučil jsem se ho používat a náležitě jsem si ho přizpůsobil. Další skvělou volbou je jistě editor Emacs. Záleží, co vám více vyhovuje. Na Windows je velice oblíbeným a užitečným editorem PSPad.

Překlad zdrojového kódu

Jako překladač budeme používat GCC. Při překladu našich programů budeme používat několik parametrů: -Wall -std=c99 -pedantic, které říkají, že se mají zobrazovat všechna varování a že překladač má používat a vyžadovat dialekt jazyka C podle standardu ANSI C99. Pokud bude potřeba použít debuger přidáme ještě -g. Výstupní soubor je dán parametrem -o.

Celé volání překladače tedy může vypadat následovně:

$ gcc -Wall -std=c99 -pedantic -lm -o tabukla tabulka.c

Budu vyžadovat aby kompilace vašich programů proběhla bez varovných hlášení.

Ve Windows...

Nejčastější dotazy se zatím objevují v souvislosti s vývojem ve Windows. Myslím, že pro začátek je nejlepší Cygwin, který obsahuje překladač, ladící a vývojové nástroje i textové editory. Díky Cygwin můžete využívat všech výhod a pohodlí Unixu přesto, že pracujete na Windows. Další možností je připojit se na Hrocha a dělat vše vzdáleně přes SSH. Pokud v příkazové řádce opravdu moc trpíte a pláčete po nějakém IDE vyzkoušejte Code::Blocks (David Martinek napsal hezký návod).

GNU Indent

Nástrojem, který bych dále doporučil na výsluní vašeho zájmu je Indent. (Je i součástí Cygwin.) Ten umožňuje velice pohodlně formátovat a správně odsazovat zdrojový kód. Informace o něm získáte snadno příkazem man indent. (Předpokládám, že máte indent nainstalovaný.) Stačí si zvolit svůj styl odsazování, parametry zapsat na příkazový řádek nebo do souboru ~/.indent.pro a můžete programu Indent předhodit svůj zdrojový kód.

$ indent  program.c
$ indent --k-and-r-style --no-tabs -bad -bap -bbb program.c

A protože používám VIm, přidal jsem si do startovacích souborů následující definici malého makra, takže můžu indent volat přímo z textového editoru.

map ,in :w<Enter> :!indent %<Enter> :e<Enter>

Malá pomůcka

Ještě předtím, než se naučíte používat program Make a než si řádně přizpůsobíte svůj textový editor, bude se vám možná líbit následující skript pro příkazové prostředí, který vám usnadní stále znovu se opakující kompilaci a spouštění právě zkompilovaného programu.

Stačí ho stáhnout do adresáře ~/bin a přidat si tento adresář do seznamu cest, které se prohledávají při spuštění programů. To můžete provést například v souboru ~/.profile nebo ~/.bash_profile:

# přidá ~/bin do seznamu adresářů prohledávaných při spouštění příkazů
if [ -d ~/bin/ ] ; then
    PATH=~/bin/:"${PATH}"
    export PATH
fi

Zdrojové texty z výuky

Pokud jste zameškali výuku nebo jste něco ve škole nestihli můžete si stáhnout zdrojové soubory, které jsem vytvářel ve výuce.

| navigace |

Odkud se učit a kde hledat Dokumentaci

V knihách
Pavel Herout: Učebnice jazyka C -- Klasika. Doporučuji.
Pavel Herout: Učebnice jazyka C -- 2 dil
Brian W. Kernighan, Dennis M. Ritchie: Programovací jazyk C -- Kniha od tvůrců jazyka C
Umění programování v Unixu -- Kniha neučí žádný konkrétní jazyk ale pojednává o programování obecně. Je to nelehké, ale strhující čtení. Pokud se chcete programováním více zabývat (nejen v Unixu), knihu si jistě pořiďte. Originál knihy je dostupný online.
Na Google
Google.com
Google.cz
Na webech zabývajících se programováním a IT
Seriál na builder.cz
C/C++ na linuxsoft.cz
Korespondenční seminář programování -- Můžete se učit a u toho soutěžit. Doporučuji.
Sallyx: Programování v jazyku C/C++
V dokumentaci ke standardním knihovnám
The GNU C Library Reference Manual
The C Library Reference Guide
The Open Group Base Specifications Issue 6
The GNU C Library Manual
The GNU C Library Manual -- seznam funkcí
The GNU C Library Manual -- seznam datových typů
The GNU C Library Manual -- seznam konstant a proměnných
The GNU C Library Manual -- seznam hlavičkových souborů
The GNU C Library Manual -- ke stažení

| navigace |

Licence Creative Commons Valid XHTML 1.0 Strict Valid CSS! Antispam.er.cz Blog: Tlapicka.net