Jazyk C – Základy programování (C1)

Programování, C, C++

Programovací jazyk C vznikl na začátku sedmdesátých let v Bellových laboratořích zásluhou Dennise Ritchieho. Byl navržen jako nízkoúrovňový, přenosný a extrémně efektivní jazyk pro implementaci operačních systémů, zejména Unixu. C se stal základem téměř všech moderních platforem.

Céčko je i po půlstoletí své existence průmyslovým standardem v oblasti operačních systémů i embedded software a stále definuje společné rozhraní mezi programovacími jazyky. Zároveň i interpretované jazyky jako Python stojí na pevném základu v C.

Kurz je aktualizovaný na standard C23. Jde o univerzální seznámení s jazykem bez ohledu na konkrétní nasazení.

TOTO ŠKOLENÍ VÁM POMŮŽE:

  • Ovládnout syntaxi a strukturu programů v jazyce C
  • Seznámit se s toolchainem a standardní knihovnou
  • Přidat programovací jazyk C do svého repertoáru

KDO BY SE MĚL KURZU ZÚČASTNIT?

  • Začínající programátoři s obecnou znalostí programování
  • Budoucí vývojáři embedded systémů a firmware
  • Studenti a zájemci o kořeny současného softwarového vývoje

Privátní školení a termíny na míru

Tento kurz nabízíme pouze jako uzavřené privátní školení. Obsah, délka a termíny kurzů budou vytvořeny podle vašich specifických potřeb. Specifičnost tohoto školení a nízký zájem jednotlivců neumožňuje pro tento kurz vypisovat veřejné termíny.

Cenovou nabídku vám rádi připravíme na základě vašich požadavků a cílů zaslaných e-mailem nebo zadaných prostřednictvím poptávkového formuláře. Cena privátního školení vychází z náročnosti požadované obsahové náplně školení, časového rozsahu a celkového počtu přihlášených osob.

KDE A KDY KURZ PROBÍHÁ?

Kontaktujte nás

S námi máte na výběr: Přijďte na kurz osobně do naší učebny, nebo se ke kurzu připojte online. Pokud preferujete online formu, uveďte prosím do poznámky v objednávce "Připojím se virtuálně".
Více informací k hybridní formě školení naleznete zde.

Náplň kurzu:

Skrýt detaily
  • Seznámení s programovacím jazykem C
    1. Jazyk a knihovna podle C23 a POSIX.1-2024
    2. Historická perspektiva C a UNIXu
    3. Současné průmyslové aplikace
  • Práce s toolchainem
    1. Sestavování programů
    2. Volby kompilátoru a linkeru
    3. Řešení chyb při kompilaci
  • Základní vstup a výstup
    1. Formátovaný výstup přes printf
    2. Vstupní a výstupní proudy
    3. Čtení pomocí scanf a fgets
  • Proměnné a výrazy
    1. Lokální proměnné a konstanty
    2. Číselné typy a operace
    3. Výrazy a operátory
  • Strukturované datové typy
    1. Pole pevné velikosti
    2. Jednoduché struktury
    3. Inicializace proměnných
  • Strukturované programování
    1. Cykly a větvení kódu (while, if)
    2. Procházení datových struktur (for)
    3. Skoky z cyklů (break, continue)
  • Členění programu do funkcí
    1. Definice a volání funkcí
    2. Argumenty a návratová hodnota
    3. Předávání strukturovaných dat
  • Výčtové typy a větvení kódu
    1. Větvení podle výčtové hodnoty (switch)
    2. Anonymní výčty a konstanty
    3. Používání výčtů pro flagy
  • Základní ošetření chyb
    1. Ošetřování návratových hodnot
    2. Návratové hodnoty a chybové kódy
    3. Různé druhy reakcí na chybu
  • Pole a buffery
    1. Výpočet velikosti statického pole (sizeof)
    2. Použití výčtů pro indexování polí
    3. Statická pole ukončená zarážkou
  • Praktické aplikace polí
    1. Textové řetězce ve formě statických polí
    2. Zpracování argumentů příkazové řádky
    3. Pole struktur a vícerozměrná pole
  • Práce s textem
    1. Řetězce v C (char pole)
    2. Kódování a textové soubory
    3. Řetězcové operace a standardní funkce
  • Binární data
    1. Strukturovaná data a offsety
    2. Čtení a zápis binárních souborů
    3. Reprezentace paketů a zpráv
  • Alokace paměti
    1. Paměť vyhrazená už při kompilaci (static)
    2. Proměnné na zásobníku (stack)
    3. Dynamická alokace pomocí malloc (heap)
  • Práce s ukazateli a poli
    1. Poskytování bufferů pro data
    2. Předávání a ukládání ukazatelů
    3. Životnost objektů a ukazatelů
  • Abstraktní datové typy
    1. Struktury pro související data
    2. Sada metod ve formě funkcí
    3. Dokumentováno jako jeden objekt
  • Integrace s operačním systémem (POSIX)
    1. Proměnné prostředí a argumenty příkazové řádky
    2. Práce se soubory a souborovými systémy
    3. Čekání a práce s časovými údaji
  • Bonus: Knihovny a rozhraní
    1. Psaní znovupoužitelného kódu
    2. Udržování jednoduchého rozhraní
    3. Práce s hlavičkovými soubory
Předpokládané znalosti:
Zkušenost s programováním v jiném jazyce
Doporučený předchozí kurz:
Úvod do programování (PRG)
Doporučený následný kurz:
C++ – Základy programování v moderním C++ (CPP1)
Časový rozvrh:
3 dny (9:00hod. - 17:00hod.)

Prostředí:

Doporučené:

  • Linux: Některá z aktuálních distribucí
  • Administrátorský přístup a připojení k internetu
  • GCC: Pokud možno v aktuální verzi
  • Oblíbený programátorský editor
  • Knihovny: SDL

Alternativy:

  • Kurz lze přizpůsobit práci v jiném prostředí
  • Leccos lze vyzkoušet online na compiler exploreru

Vybrané zákaznické reference

Wittmann Battenfeld CZ spo. s.r.o, Aleš B.
Jazyk C – Základy programování ( C1)
"Spokojen, školení splnilo očekávání."
Kooperativa pojišťovna, a.s., Vienna Insurance Group, David J.
Jazyk C – Základy programování ( C1)
"Kurz podle sylabu obsahoval vše co měl. Velká využitelnost při správě modelů pojišťoven."
APATOR METRA s.r.o., Václav K.
Jazyk C – Základy programování ( C1)
"Celkově hodnotím kurz jako přínosný. Nižší hodnocení v některých je dáno tím, že jako začátečník v C/C++ bych uvítal důkladnější procvičení, které by ale zřejmě bylo nad rámec kurzu."
Správa železnic, státní organizace, Libor B.
Jazyk C – Základy programování ( C1)
"Kurz byl pro mne přínosný - doplnil jsem si znalosti o jazyku C."
IMI International s.r.o., Miroslav K.
Jazyk C – Základy programování ( C1)
"Přístup na školení je velmi individuální. Celkově "palec nahoru"."