User Tools

Site Tools


izp:start

[IZP] Základy programování

Termíny

  • St od 16:00 do 17:50 [N103] (tpl 21)
  • St od 18:00 do 19:50 [N103] (tpl 24)
  • Čt od 10:00 do 11:50 [N104] (tpl 29)
  • Body ze cvik budu zadávat do systému WIS nejpozději v pátek.

1. Vývojové nástroje

  • Obsah cvičení na IZP Wiki Lab1 … moje SLIDES
  • Obsah: přihlášení k počítačům, informační systém, kontrola přihlášení, seznámení s počítačovou sítí, vývojové nástroje
  • jednoduchá práce v terminálu linuxu:
Prace_v_terminalu.sh
pwd  # print working directory - vypíše absolutní cestu, kde jsem
ls  # list directory - vypíše obsah aktuální složky
mkdir <novaslozka>  # make directory - vytvoření nové složky
cd <novaslozka>  # change directory - vlezu do složky
cd ..  # vylezu ze složky (zpět nahoru)
nano <main.c>  # textový editor Nano (uložení Ctrl+x, y, Enter)
vim <main.c>  # textový editor VIM (začátek psaní "i", uložení ESC -> :wq -> Enter)

2. Proměnné a řídící konstrukce

3. První užitečnější programy, práce se soubory

  • Obsah cvičení na IZP Wiki Lab3
  • Zopakování práce s argumenty programu
  • Práce se soubory (čtení a zápis)
  • Společné vypracování většího programu …

Kartotéka
Vytvořte program, který načítá osobní údaje pacientů a ukládá je do souborů (jeden pacient ⇒ jeden soubor). Soubor pojmenuje podle rodného čísla pacienta ve formátu PAC_RR.txt (kde RR představuje rodné číslo pacienta). Název souboru vytvořte např. pomocí funkce sprintf. Všechny vstupy stačí načítat po slovech jako “řetězec” a rovnou je zapisovat do souboru, tedy stačí jedna proměnná.

# Příklad vstupů:
$ ./kartoteka
Zadejte rodne cislo: 1234569876
Zadejte jmeno pacienta (ukoncene teckou): Zaphod Beeblebrox .
Zadejte bydliste (ukoncene teckou): Planeta Betelgeuse .
Zaznam ulozen.
Zadejte rodne cislo: 0123459999
Zadejte jmeno pacienta (ukoncene teckou): Fort Prefect .
Zadejte bydliste (ukoncene teckou): Somewhere in the galaxy .
Zaznam ulozen.
Zadejte rodne cislo: .
$ 

4. Datové typy, funkce, čas

  • Obsah cvičení na IZP Wiki Lab4
  • Proměnné, výrazy, práce s řetězci
  • Definice & deklarace vlastních funkcí
  • Knihovna pro práci s časem <time.h> - tohle musíte sami

5. Základní znalosti Céčka - bodované cviko [0-2b]

  • Základní informace k proj1
  • jeden bod za teorické znalosti
  • jeden bod za zpracování jednoduchého algoritmu
  • Připravte se! Projděte a zaprogramujte si příklady z minulých cvičený!!! (podívat se na kód nestačí, musíte si sami vyřešit problém)

6. Řídicí struktury, datové struktury

  • Obsah cvičení na IZP Wiki Lab6
  • Cykly: převody, varianty, chyby
  • Datové struktury
  • Úkoly ze cvika:
    • TaskA: Převeďte cyklus na wiki z while na for, a pak napiš verzi bez break, continue, goto, return.
    • TaskB: Vytvoření datové struktury reprezentujícího pacienta v nemocnici
    • TaskC: Co vypíše zadaný kód?
    • TaskD: Funkce na prohození dvou hodnot (předávání hodnot přes ukazatele)
  • Domácí úkol: Projít si a pochopit kód v části Příklady k procvičení

7. Alokace paměti, použití struktur - bodované cviko [0-2b]

  • Dynamické alokování paměti (malloc && free)
  • Bodované vypracování úkolu

8. Obhajoba 1.projektu

  • Bude se hodnotit tvoje obhajoba - tvůj krátký slovní výklad jak projekt řešíš a zodpovězení jednoduchých dotazů.
  • Očekává se, že příjdeš s (téměř) hotovým projektem! (jinak nemáš co obhajovat)
  • Můžeš přijít se svým notebookem pro rychlejší vysvětlení kódu, i tak chci vidět funkčnost i na merlinovi.
  • Obhajoba projektu: 0.0 - 2.5 bodů (tvoje vysvětlení)
  • Funkčnost projektu: 0.0 - 2.5 bodů (testovací scripty)
  • Ve WISu musíš mít odevzdaný proj1.c (v jakkémkoliv stavu) do 17.11.2019, jinak máš 0 bodů!!

9. Iterační výpočty, vektory, matice

  • Obsah cvičení na IZP Wiki Lab7 a Lab8
  • Zadán 2.projekt, odevzdání finálního řešení do 01.12.2019, obhajoby příští týden!!

10. Obhajoba 2.projektu

  • Hodnotí se tvoje obhajoba - krátký slovní výklad jak projekt řešíš a zodpovězení jednoduchých dotazů.
  • Očekává se, že příjdeš s (téměř) hotovým projektem! (jinak nemáš co obhajovat)
  • Obhajoba projektu: 0.0 - 3.5 bodů (tvoje vysvětlení)
  • Funkčnost projektu: 0.0 - 3.5 bodů (testovací scripty)
  • Ve WISu musíš mít odevzdaný proj2.c (v jakkémkoliv stavu) do 01.12.2019, jinak máš 0 bodů!!
  • !! Ve skupině tpl_21 ve středu od 16-18h mě zastupuje Ing.Tinka

11. Ukazatel a práce s pamětí - bodované cviko [0-2b]

  • Je zadán 3.projekt - Průchod bludištěm, odevzdání finálního řešení do 15.12.2019, obhajoby příští týden!!
  • Obsah cvičení na IZP Wiki Lab9
    • Stáhni si kostru z IZP Wiki nebo zde (Lab9-kostra.zip)
    • Upravuj pouze soubory *.c
    • Struktury jsou již definované v *.h souborech
    • Jak budeš implementovat, postupně odkomentovávej bloky kódu v main.c pro otestování
    • Neopisujte!
    • 1.bod za správně napsanou a funkční struct.c část, 2.bod za většinově rozpracovaný array.c

12. Obhajoba 3.projektu

13. Práce se seznamem - bodované cviko [0-2b]

  • Je zadán poslední projekt Dokumentace zdrojových kódů, deadline 22.12.2019
    ssh merlin
    ls proj4
    # Doxyfile Proj3.h
    doxygen Doxyfile
  • Obsah cvičení na IZP Wiki Lab10, slides Ing.Veigenda
    wget https://www.fit.vutbr.cz/~isakin/izp/lab10.zip
    unzip lab10.zip
    # ... dopis prazdne funkce ...
    valgrind ./lab10
  • Zhodnoť mě a cvika: Dotazník
izp/start.txt · Last modified: 2019/12/19 10:18 by sakin