Topic outline

  • A2B37CPP - Programovací jazyk C/C++

    Úkolem předmětu je zajistit potřebnou znalost jazyka C a základních rysů jazyka C++ jako v současné době jednoho z dominantních programovacích jazyků v mnoha oborech vědy a techniky, jako je např. programování mikroprocesorů, numerická matematika apod. Dovednosti v jazyce C/C++ jsou tedy nezbytné pro práci studentů v nejrůznějších formách projektové výuky a pro splnění zadání mnohých závěrečných prací. Předmět navazuje na základní výuku programování a algoritmizace v první fázi studia realizovanou především na bázi programovacího jazyka Java. Znalost syntaxe mnohých rysů jazyka Java (které byly převzaty v jazyka C) je tedy výhodou pro studium tohoto předmětu. Osnova se tedy v první fázi zaměřuje na výklad odlišností jazyka C od jazyka Java a zároveň se tímto způsobem takto přirozeně stručně projde přehled syntaxe základních rysů jazyka C. Další přednášky jsou již věnovány specifickým rysům jazyka C jako jsou především ukazatele, adresová aritmetika apod. Následuje výklad práce se strukturami a jejich poli a přehled standardních knihoven jazyka C. Předmět je zakončen výkladem nových rysů jazyka ve standardech C99 a C++. V úvodu této části předmětu jsou definovány nové datové typy, nové typy vstupů a výstupů a dynamická alokace polí. Následuje výklad základních rysů objektového programování v C++, práce s třídami, s konstruktory a destruktory. Výklad je zakončen hierarchií tříd a odvozenými třídami a praktickým využitím přetížení operátorů (např. komplexní aritmetika). Cvičení jsou laboratorní s využitím volně šířených vývojových prostředí jako je např. systém OpenWatcom. 
    Výsledek studentské ankety předmětu je zde: A2B37CPP 

  • 1. týden (20.2.2018)

    Sestavení programu. Primitivní datové typy, konverze, operátory.

    Přednáška: google

    Příklady přenáška: github zip

    Příklady cvičení: github

    Nastaveni pro textovy editor gedit:

    wget https://cw.fel.cvut.cz/old/_media/courses/b0b36prp/labs/setup_gedit.zip
    unzip setup_gedit.zip
    ./setup_gedit.sh
    • 2. týden (27.8.2018)

      Přiřazení. Operátory. Řídící struktury.

      Přednáška: google

      Příklady k přednášce: zip

      • Týden 5

        • Výčtový typ
        • Typ union
        • Standardní knihovna
        • Práce se soubory

        Přednáška: google

        Cviceni: github

        • Týden 6

          • Existující algoritmy v standarní knihovně C
          • Organizace větších projektů
          • Spojové struktury

          Přednáška: google

          Samostatná úloha:
          Vytvořte frontu (buffer) dynamické délky pomocí spojovéhoseznamu (jednosměrného, nebo obousměrného).
          Funkce:
              push() - zapíše data na začátek ("head") fronty
              pop() - vyčte data z konce seznamu a vymaže hodnotu z fronty.