Seminární skupina Stančík IB111 Úvod do programování

6. domácí úkol

Práca s textovým súborom (15 bodov)

Stiahnite si súbory s databázmi: Prvý súbor obsahuje počet jmen narodených v danom roku (podľa hlavičky prvého riadku).
Druhý súbor obsahuje datum, kedy má dané meno svátek v ČR.
Napíšte 5 funkcií. Premenná osoby je dobrovoľná, zaleží ako budete uchovávať údaje o mene.
  1. trend_jmen(osoby,zac_rok,kon_rok) - funkcia vypíše 5 mien s najvačším prírastkom medzi zadanými rokmi.
  2. ubytek_jmen(osoby,zac_rok,kon_rok, datum) - funkcia vypíše 5 mien s najvačším úbytkom medzi zadanými rokmi a súčasne bude mať meno svátek vzdialené maximálne 50 dní od zadaného dátumu.
    Pre jednoduchosť počítajte, že mesiac ma 30 dní a teda dátum 12. 7. je => 7*30+12 => 222. deň v roku. Ak meno nemá svátek, tak mu rozdiel nastavte na 360 dní a nevypisujte ho.
  3. jmeno_svatek(osoby,rok, datum) - funkcia vypíše 5 mien s najvačším počtom v zadanom roku a súčasne bude mať meno svátek vzdialené minimálne 70 dní od zadaného dátumu.
    Teda ak sa nájde meno Martin a bude datum 11.12. meno sa nevypíše (rozdiel len 30 dní)
  4. Dve funkcie si vymyslite a naprogramujte podľa seba. Mali by to byť štatistické funkcie, nad jedným, alebo oboma súbormi.

TIP:
Bolo by vhodné, načítať údaje do štruktúry osoba (Meno, pocet_v_roku, svatek), pocet_v_roku ako premenná typu slovník. Následne ukladať osoby do containera štruktúr.
Tato implementácia však nie je nutná, ak budú implementované požadované funkcie.

Práca s obrázkami (10 bodov)

Vašou úlohou je budú 2 funkcie, ktoré budú transformovať obrázok. Pre prvú úlohu predpokladajte obrázok vo veľkosti 1200x1200 pixelov, napr. si stiahnite túto fotku.
  1. out_mask(filename,mask) - funkcia transformuje obrázok na základe masky.
    filename - je meno obrázka; mask - meno súboru obrázka masky (Predpokladá sa rovnaká veľkosť masky i obrázka)
    Ak maska obsahuje na danom pixely čiernu (0,0,0) pixel sa nemení. Naopak ak bielu, pixel sa zmení na bielu. Ak obsahuje inú farbu sýtosť farby sa zníži.
    Príklad maska nad obrázkom vyššie -> výsledok
  2. zmensi_obrazek(filename) - funkcia zmenší obrázok. Minimálne o polovicu (je možné i o viac), ale zachová pomer strán. Algoritmus je na vás, napríklad vykreslovať každý druhý pixel. Aplikácia ponúkne uživateľovi možnosť zvoliť názov zmenšeného súboru. Príklad: zmenšený súbor

Bonus

Ako bonus skúste naprogramovať použitie masky i na vačšie obrázky ako je daná maska.
Prípadne skúste zkonvertovat obrázok svojim naprogramovaným filtrom. Nejaká zaujímavá kombinácia inverzie farieb, či ich vynechanie, alebo nahradenie inou, nech hipsteri závidia :-)

Odovzdávanie úloh

Úlohy odovzdávajte do konca roka 31. 12. 2016.
Ak by niekto potreboval viac času, je možné termín predĺžiť po e-mailovej dohode, maximálne však 2 dni pred skúškou.

Odevzdávárna

Následující