Programování v jazyku C/C++

Tento výukový kurz (tutoriál) je pro ty, kteří nevědí o programování nic, ale chtěli by. Pokud vám tedy bude cokoliv ze zde probírané látky jen trochu nejasné, napište mi.

O programování se můžete zajímat z mnoha důvodů. Pro někoho je to příprava na budoucí povolání, někdo to má „za trest“ ve škole a pro někoho je to skvělý koníček. Já se počítám do té třetí skupiny a rád bych zlákal k programování i vás. Vše, co potřebujete znát a mít, se dozvíte v prvních kapitolách.

Zde najdete výukový kurz jazyka C. Při výuce budou zmíněny některé rozdíly oproti programovacímu jazyku C++, který je nástupcem jazyka C. Při psaní tohoto kurzu jsem se snažil dát důraz především na srozumitelnost výkladu pro úplné začátečníky (a možná ne vždy se mi to podařilo, tak se ptejte) a také na reálné problémy spojené s programováním v jazyku C, především pak přenositelnost zdrojových kódů mezi různými operačnímy systémy, normy jazyka C atp.

Stáhněte si zdrojové kódy.

Tento tutoriál je dostupný na iTunes (zdarma). Je to už starší, ale pořád dobrá verze (obsahuje ale pár chybiček), ke které najdete zdrojové kódy zde.

Vítejte u nového, aktualizovaného a rozšířeného vydání kurzu o programování v C. Sice jsem pár chybiček vymýtil, ale je možné, že jsem nové vymyslil. Pokud se vám něco nebude zdát, nestyďte se kliknout na brouka na konci stránky :-).

Obsah

Programování

  1. Úvod
    Co budete potřebovat, proč právě C/C++.
  2. Základní pojmy
    Číselné soustavy, OS, programy.
  3. Jak vzniká program
    Programovací jazyky, návrhy programu, historie C a C++.
  4. Vývojová prostředí
    Přehled a popis vývojových prostředí a překladačů pro Windows i Linux.

Jazyk C

  1. Struktura programu
    První program, odsazování, knihovny, funkce, komentáře.
  2. Datové typy
    Datové typy, bloky, definice, deklarace, ukazatele.
  3. Klíčová slova, konstanty, řetězce
    Práce s textovými řetězci, escape sekvence v řetězcích ('\0','\t' atp.).
  4. Standardní vstup a výstup
    Funkce printf() a scanf().
  5. Práce s typy dat
    Přetypovávání, ASCII tabulka.
  6. Pole a ukazatele
    Další práce s ukazateli a řetězci, přetypovávání, ukazatele na ukazatele.
  7. Operátory a výrazy
    Sčítání, odčítání, podmíněný (ternární) operátor a tak podobně.
  8. Preprocesor
    Definice maker, standardní makra, podmíněný překlad, užití knihoven.
  9. Podmínky a cykly
    Cykly for, do, while, přepínač switch, podmínka if-else příkaz goto.
  10. Funkce
    Definice a deklarace funkcí, rekurze, funkce s proměnlivým počtem argumentů.
  11. Funkce II
    Argumenty příkazové řádky, lokální a globální proměnné, statické proměnné, uživatelské knihovny.
  12. Vytváření typů
    Struktury a typedef.
  13. Vytváření typů II
    Výčtový typ enum, union, funkce rand() a srand().
  14. Ukazatele na funkce
    Ukazatele na funkce, přehled deklarací a opakování (příklad).
  15. Dynamická alokace paměti
    Jak získat paměť, kterou nemám.

Standardní funkce a knihovny

  1. Knihovna string.h
    Funkce pro práci s řetězci.
  2. Knihovna time.h
    Funkce pro práci s časem.
  3. Knihovna math.h
    Standardní matematické operace.
  4. Knihovna stdlib.h
    Převody řetězců a čísel, ukončování programu, třídění pomocí qsort(), funkce abs(), div(), systémová volání atp.
  5. Knihovny stdarg.h a limits.h
    Funkce s proměnlivým počtem argumentů, limitní hodnoty celočíselných typů.
  6. Knihovna signal.h
    Zasílání a odchytávání signálů, funkce signal().
  7. Knihovna errno.h
    Jak zjistit některé chyby v programu; globální proměnná errno.
  8. Knihovna string.h II
    Práce s pamětí, funkce memset() atp. Funkce snprintf() a sscanf().
  9. Knihovna stdio.h
    Funkce getchar(), gets(), getc() atp., výčet všech funkcí.
  10. Knihovna stdbool.h
    Datový typ _Bool (bool), true a false (pravda a nepravda).
  11. Knihovna locale.h
    Změna chování funkcí dle národního prostředí (setlocale).
  12. Knihovna wchar.h
    Knihovana je popsána v kapitole o konverzi znakových sad.

Další knihovny můžete nalézt na wikipedii C standard library.

Vstupně výstupní operace (práce se soubory)

  1. Práce se soubory (a stdio.h)
    O vstupu a výstupu; přímý přístup k soborům versus struktura FILE.
  2. Datové proudy
    Otevření a uzavření souboru, vyprázdnění datového proudu.
  3. Práce s textovými soubry a kontrola chyb
    Čtení a zápis textových souborů (fprintf(), fscanf(), feof() atd.), kontrola chyb v souborovém proudu (feof() atd.).
  4. Práce s binárními soubry a pohyb v souborech
    Posun ukazatele do souboru (v textových i binárních souborech), zjištění velikosti souboru (Funkce fseek(), fgetpos() atp.).
  5. Adresářová struktura
    Vytváření adresářů, přístupová práva, změna aktuálního adresáře, mazání souborů.
  6. Přímý přístup na disk
    Rychlejší, avšak méně přenositelný způsob práce se soubory.
  7. Znakové sady
    Popis znakových sad (kódové stránky), k čemu jsou, popis ASCII, iso-8859-2, win-1250 a UTF-8 a jejich porovnání. Funkce pro práci s UTF-8 řetězci.
  8. Konverze znakových sad
    Prostředky jazyka C pro konverzi znakových sad. Popis knihovny <wchar.h>, typu wchar_t a jeho použití, načítání „dlouhých“ znaků a řetězců.

Zajímavé funkce a algoritmy

  1. Spouštění programů
    Volání system() a funkce typu exec*.
  2. Algoritmy třídění
    Funkce qsort(), algoritmy bubble sort a quick sort.

A to je konec …

A to je o programování v jazyce C vše. Samozřejmě to není zdaleka vše, co se v jazyce C dá naučit, ale je toho dost, abyste se mohli začít učit z nápověd, manuálových stránek, nebo studiem zdrojových kódů od jiných programátorů. Můžete také začít s programováním v Linuxu. Nebo se můžete začít učit programovat v jazyce C++. Doufám, že až si jednou jako programátoři vyděláte svůj první milión, tak si na mě vzpomenete :-).

Odkazy, literatura, ke stažení

The C Library Reference Guide
 
Výklad standardu C99 PDF
 
wxWidgets Book PDF
Kniha v angličtiě o programování s wxWidgets
Allegro
Multiplatformní grafická knihovna pro programování her
The GNU C Reference Manual
Reference jazyka C k překaldači gcc
Free Programming
Stránka o free nástrojích a knihovnách pro programování
Zajímavá přednáška o C
V angličtině
Komentář Hlášení chyby
Vytvořeno: 29.8.2003
Naposledy upraveno: 10.8.2014
Tato stánka používá ke svému běhu cookies, díky kterým je možné monitorovat, co tu provádíte (ne že bych to bez cookies nezvládl). Také vás tu bude špehovat google analytics. Jestli si myslíte, že je to problém, vypněte si cookies ve vašem prohlížeči, nebo odejděte a už se nevracejte :-). Prohlížením tohoto webu souhlasíte s používáním cookies. Dozvědět se více..
Experimentální nastavení barev:
COLOR
GS
LB
RC
BG