Deprecated: Function set_magic_quotes_runtime() is deprecated in /DISK2/WWW/lokiware.info/mff/wakka.php on line 35 Matfiz : Objektově Orientované Programování / Zápočet ZS 2007 - 8
Přihlášení:  Heslo:  
Matfiz: ObjektověOrientovanéProgramování/ZápočetZS2007-8 ...
Hlavní Stránka | Seznam Stránek | Poslední Změny | Poslední Komentované | Uživatelé | Registrace |

Objektově orientované programování — zápočet ZS 2007–8


Obsah

Projekt

Odkazy

Zadání 13.2. 10:00

Zadaval Kofron.
Ukolem bylo nacist a vyhodnotit nekolik tabulek ze souboru, pricemz v bunkach tabulek mohla byt cisla, odkazy na jina policke teze tabulky, odkazy na jina policka jinych tabulek a jednoduche aritmeticke vyrazy (o velikosti jednoho binarniho operatoru a jeho operandu – hodnot nebo odkazu). V pripade, kdy by vyhodnocovani vedlo k zacykleni, melo mit policko hodnotu "#error". Odkazy mely formu “A1”, “B7”, ..., maximalne “Z99”. Vstupni soubor s tabulkou mohl vypadat treba takto:

Tabulka je zadana neuplne, vsechna explicitne nedefinovana policka maji hodnotu nula. Mohli jsme pocitat s tim, ze zadani je korektni.
Dostali jsme tri vstupni soubory, meli jsme vyhodnotit tabulku v prvnim z nich (linkovala do dalsich dvou). Pri kontrole spravnosti cvicici zmenil jednu hodnotu v tabulce, aby se objevila cyklicka chyba, kterou jsme meli mit spravne poresenou. Mne to trvalo celych tri a pul hodiny a nakonec jsem byl rad, ze mi to bezi. Jinak co jsem si tak vsiml, tak kdyz jsem odchazel, vetsina ostatnich tam jeste byla. h.

Zadání 25. 1. 14:00

http://forum.matfyz.info/viewtopic.php?f=171&t=4100
nardew

Zadání 25. 1. 10:00

Zadával Mikle.
Na vstupu dostanu název vstupního souboru, název Vrcholu a Hloubku (číslo). V souboru z parametru 1 je reprezentace grafu – na řádku může být buď samotný vrchol (string), nebo dvojice vrcholů oddělená mezerou, ta symbolizuje hranu. Výstupem má být seznam vrcholů, dostupných ze zadaného Vrcholu cestou o max. délce Hloubka, společně s délkou minimální cesty do nich. Takže jen načtu (korektní) vstup, a následně projdu graf do šířky ze zadaného vrcholu, pamatuju si, kde jsem byl, abych nějaký vrchol nevypsal dvakrát. Celkem jednoduché zadání, byl jsem venku za hoďku a půl a nebyl jsem zdaleka první... Přístup zamítnut-TH-

Zadání 22. 1. 10:00

Na vstupu dostanete výraz zapsaný v postfixu. Výraz obsahuje celá čísla, identifikátory z alfanumerických znaků (libovolného počtu) a operátory sčítání, odčítání, násobení, dělení a unární mínus (symbol %, v postfixové notaci se totiž musí lišit od operátoru odčítání). Vaším úkolem je vypsat výraz ve standartní, čili infixové, notaci. Ovšem s tou podmínkou, že výstup nebude obsahovat žádné nadbytečné závorky a pochopitelně nebudou žádné chybět.
Úlohu zadával Bednárek. Vyhradil tři hodiny a jestli nastavoval to nevím.

Zadání 18. 1. 14:00


Celkom easy, na vstupe subor so zoznamom susedov grafu vo formate
#charakteristika matfyzaka, divny komentar, bla
matfyzak:pivo,pc,kvasinky
pivo:kvasinky


a na vystupe matica susednosti (v subore, bez ciarociek a tak)
matfyzakpivopckvasinky
matfyzak0111
pivo0001
pc0000
kvasinky0000

Řešení: file:maticovanie.cpp (Tohle jsem teda “odevzdal”. Dostal jsem za to zápočet, ale i tak je to bez záruky) — Pepe

Zadání 16. 1. 14:00

Viz http://forum.matfyz.info/viewtopic.php?f=171&t=4013

Zadání 16. 1. 10:00


Jednoduché formátování tabulky, jedno ze snažších zadání. Dokonce jsme mohli předpokládat korektnost vstupu. Šlo si ušetřit práci kontejnery (konkrétně vectorem), žádné velké přemýšlení nad mechanismem implementace netřeba. Mně se to dokonce za méně než ty tři vyhrazené hodiny podařilo napsat v čistém C (viz níže), tedy bez kontejnerů, proudů apod., to už to ale měla asi polovina lidí hotovo. Aspoň jsem si to ale udělal zábavnější:)


Zadání:


Řešení: file:ftable.c (Tohle jsem teda “odevzdal”. Dostal jsem za to zápočet, ale i tak je to bez záruky. Konkrétně třeba spoléhám na korektnost, co se týče počtu sloupců.) — Adam
file:formattable.cpp – Zkoušel jsem si to doma. Je to odladěné, tak by to mohlo fungovat. — Bohouš


Zadání 14. 1. 14:00

Viz http://forum.matfyz.info/viewtopic.php?f=171&t=3994

Zadání 14. 1. 10:00

Zdroj: http://forum.matfyz.info/viewtopic.php?f=171&t=3991


Na vstupu je popsána scéna, kterou máme vykreslit na výstup. Scéna je mřížka ASCII znaků a je tvořena obdélníky (rovnoběžnými s osami), na kterých navíc může být potřeba provést tyto operace:



Obdélníky jsou zadávány takto: RECTANGLE('%', x, y, šířka, výška, z-výška), kde první argument říká, jakým znakem se má obdélník vyplnit, a ty další jsou celé kladné souřadnice. Z-výška určuje pořadí vykreslování, tzn. co má být vidět, když se dva obdélníky překrývají (mohli jsme si určit sami, jestli má být vidět ten s menší nebo ten s větší).


Operace se zadávají jako jméno operace velkými písmeny a pak ve složených závorkách argumenty. Argument může být buď obdélník, nebo další operace a její argumenty.


První řádek má tvar SCENE('%', šířka scény, výška scény), kde ten znak v prvním argumentu je pozadí.


Takže celý vstup může být třeba takto:


...a výstup by pak měl vypadat takhle:


Žádný motivační vstup s hezkým ascii obrázkem jsme nedostali Takže co si kdo napsal, to předváděl.


To zanořování operací muselo fungovat logicky úplně správně, takže třeba Difference ( Union ( A, B ), C ) muselo dát body buď (v C a ne v A a ne v B) nebo (ne v C a (v A nebo v B)) a tak podobně.


Scéna se vešla do paměti celá, STL povoleno, vstup jsme původně měli kontrolovat, ale když ani po dvou hodinách nikdo neodevzdal, tak jsme se mohli na korektnost vstupu spolehnout. Celkově se mi to zdálo jako jeden z těžších příkladů a ve spolek lidem nejspíš taky – já jsem odcházel po třech hodinách a jestli jsem nebyl první úspěšný, tak nanejvýš druhý nebo třetí. Tou dobou už pár lidí raději odešlo s nepořízenou, ostatní ještě seděli a chlapík už se poptával, kdo to tak do čtvrt hodiny dodělá. Jak to nakonec dopadlo, nevím. — Chjoodge?


Adamovo řešení: file:zapocet200801141000.c (bez záruky, nebyl jsem tam, jen jsem si to zkusil napsat doma)


 
Soubory [Skrýt soubory (formulář)]
2008-01-17 17:59:38    (5 KB)  ftable.c  
2008-01-18 19:27:29    (5 KB)  maticovanie.cpp  
2008-01-14 20:10:20    (7 KB)  zapocet200801141000.c  
Na stránce nejsou žádné komentáře. [Zobrazit komentáře (formulář)]