****** Sbírka_úloh_z_jazyka_C ****** Celková_koncepce_programu [UP Logo] Katedra informatiky Univerzity Palackého v_Olomouci ****** ASCII Art ****** Téma: Celková koncepce programu Procvičované učivo: celková koncepce programu, dynamická práce s pamětí, funkce Napište v jazyku C jednoduchou knihovnu funkcí pro vykreslování obrázků pomocí znaků (tzv. ASCII art). Knihovna by měla mít tyto vlastnosti: * Obrázky se budou vykreslovat pomocí plátna - dvojrozměrné matice, která bude obsahovat jednotlivé znaky. * Vykreslování se tedy neprovádí přímo na výstupu, ale pouze dochází ke změně daného plátna (struktura canvas). * Je možné pracovat současně s několika plátny. * Je možné "vykreslovat" i za hranicí kreslící plochy, tyto body se ale nebudou při zobrazení plátna vykreslovat. Jinými slovy, při pokusu o kreslení mimo plátno nedojde k vyjímce při běhu programu. * Knihovna by měla být samostatným modulem, bude tedy tvořena jedním zdrojovým a jedním hlavičkovým souborem. V knihovně vytvořte strukturovaný datový typ canvas a dále definujte tyto funkce: /* vytvori platno */ canvas *canvas_create(int x, int y); /* nastavi dany bod na zadanou hodnotu */ void canvas_set_point(canvas *c, int x, int y, char character); /* vrati znak daneho bodu */ int canvas_get_point(canvas *c, int x, int y); /* nakresli obdelnik */ void canvas_draw_rect(canvas *c, int x, int y, int width, int height, char ch); /* vycisti platno */ void canvas_clear(canvas *c); /* vykresli obsah platna na standardni vystup */ void canvas_print(canvas *c); /* vykresli obsah platna do souboru */ void canvas_output(canvas *c, FILE *f); Jednotlivé funkce ve vytvořené knihovně poté otestujte z modulu hlavní funkce. Příklad výstupu: xxxxxxx x x x *********** x * x * x * x * x * x * x *********** x x x x xxxxxxx Příklad výstupu: *********** * * * o o * * | * * * * \___/ * * * *********** Povolené knihovny: stdio.h, stdlib.h =============================================================================== [Creative_Commons_License] Sbírka_úloh_z_jazyka_C. © Katedra_informatiky Univerzity_Palackého_v_Olomouci, 2009. Projekt byl vytvořen za podpory grantu FRVŠ 2061/2009/G1.