Výuka


PB071 (jaro 2014)

Náhradní cvičení II - POSIX II.

  • Zdrojový kód programu, který nespadne na segfault (užitečné při psaní virů).
  • Zdrojový kód programu, který na stisk CTRL+C vyvolá jinou rutinu, než nezbytně ukončení.
  • Zdrojový kód programu, který se nezasekne na čekání na načtení uživatelského vstupu.

Náhradní cvičení I - POSIX I.

  • Zdrojový kód krátké ilustrace, jak procházet adresáře a odchytávat chyby.

10. cvičení

  • Zdrojový kód ze cvičení, ukazující jak pomocí ukazatelů na funkce mít 1 měřící funkci jak pro případ kdy měříme výkon nad polem, tak pro měření nad jednosměrně spojeným seznamem.
  • 1b - Napište program, který bude splňovat následující:
    • Struktura snd_driver, která bude obsahovat ukazatele na callbacky (prototypy: void set_volume(int mixer, unsigned int), int get_volume(int mixer), int get_mixers()), dále pak ukazatel void * private_data (zde si můžete uchovávat například hlasitosti mixérů).
    • Alespoň 2 funkce pro každý callback; jejich efekt krom splnění návratového typu
    • V závislosti na argumentu příkazové řádky vytvořte ovladače 2 různých síťových karet a odpovídající privátní struktury; pak pomocí struktury snd_driver zavolejte alespoň 1x každý callback.
    Detaily chování jsou na Vás, důležité je abyste si procvičili ukazatele na funkce. Mixer = zvukové zařízení - např. sluchátka, reproduktor, mikfrofon aj.

9. cvičení

  • Zdrojový kód ilustrující použití funkce gettimeofday k měření času
    Nezapomeňte že využívá norem POSIX, tedy nemusí jít zkompilovat pod Visual Studiem. Pokud se chcete podívat na optimalizace, vyzkoušejte co udělají přepínače -O0, -O2, -funroll-loops (gcc).
  • 0,5b - na pixel (jehož index získáte součtem cifer svého uča) v obrázku a.bmp ve zdrojových souborech k zadání HW04 zapište své učo. Ke kódování každých dvou cifer použijte samostatný byte - učo 359687 tak bude reprezentováno právě jedním pixelem (byte 0x35, 0x96, 0x87). Můžete použít například editor hexedit či si napsat malý program, který tyto hodnoty zapíše za Vás.
  • 1b - napište program, který bude vypisovat obsah souboru ve stejném formátu, jako příkaz "hexump -C soubor". Pozn. v pravém sloupci jsou grafické znaky zobrazeny jako znak, jinak je vypsána tečka.

8. cvičení

Domácí úloha č. 3


PB071 (jaro 2013)

2. cvičení


PB161 (podzim 2012)

1. cvičení

2. cvičení

3. cvičení

4. cvičení

5. cvičení

6. cvičení

  • V pátek 26. října cvičení nejsou, náhradní termíny jsou Po 22. října 20:00-22:00 v B130 a Út 30. října 20:00-22:00 v B130. Vzhledem k tomu že se jedná o přesun normálního termínu cvičení je účast povinná. Alternativně můžete jít do jiné skupiny.

9. cvičení

  • Odmocina (příklad s výjimkou, právem friend a funktory)

11. cvičení

  • Dělička pomocí šablon (specializace šablony)
  • Návod na kombinování přátel a šablon (součást dokumentace ke kompilátoru IBM AIX)

13. cvičení - zápočtový příklad

  • Zadání (předpřipravený kód + zdrojová data)
  • Řešení (referenční implementace)

PB071 (jaro 2012)

1. cvičení

2. cvičení

3. cvičení

5. cvičení

7. cvičení

10. cvičení

Binutils je sada jednoduchých programů pro elementární zpracování textových souborů na UNIXech. Vaším úkolem je replikovat chování některých z nich. Blíže viz jednotlivé příklady. Řešení dám k dispozici během neděle nebo pondělí.

11. cvičení

Chtěli jste bonusový bodovaný úkol... tak tady jeden máte. 8b bez bonusu, 12b s bonusem. Pripadne nejasnosti diskutujte na foru sve seminarni skupiny. Odevzdávat můžete dokud neuzavřete předmět.

PB161 (podzim 2011)

1. cvičení

2. cvičení

3. cvičení

4. cvičení

5. cvičení

6. cvičení

7. cvičení

8. cvičení

9. cvičení

10. cvičení

11. cvičení

© Lukáš Ručka 2014