Zápočet 22.1.2014

Základní kurs objektově orientovaného programování v C++. Třídy a objekty, zapouzdření, metody, plymorfismus. Abstraktní datové typy, přetěžování. Kontejnery, iterátory, algoritmy. Šablony, generické programování, kompilační polymorfismus. Výjimky. Bezpečné a přenositelné programování, vazby na OS.
cvutak
Matfyz(ák|ačka) level I
Příspěvky: 13
Registrován: 12. 6. 2013 11:55
Typ studia: Informatika Bc.

Zápočet 22.1.2014

Příspěvek od cvutak »

Dnes Yaghob zadal tento úkol: Máte data ve formátu FITS http://en.wikipedia.org/wiki/FITS, což je pradávný standard jakýchsi astronomických dat.

Soubory jsou binární, ale bloky mají textové hlavičky. Všechno je zarovnané na 2880B a jednotlivé záznamy v hlavičkách mají pevnou šířku 80 znaků. Hlavička má 10 znaků jména (space paddded), mezera, =, 78 znaků hodnoty (možná to není úplně přesně). Hodnota může být v řádku kdekoliv, whitespace nevadí. Hodnoty můžou být integer, float (i v scientific notation), string ohraničený apostrofy (escape sekvence apostrofu jsou dva za sebou), nebo bool s hodnotamy 'T' nebo 'F'.

Dál kdekoliv na řádku může být lomítko - všechno za ním je komentář. Potom jsou řádky začínající COMMENT (a nějaké další), které taky ignorujeme. Hlavička končí řádkem 'END' (+73 mezer).

Fun fact: 80 proto, že to je délka děrného štítku.

A konečně zadání: Vyzobat ze souboru data z hlaviček, zhruba ve formátu ukázkových txt (odpustil typy, nemuselo to být přesně na písmeno). Čas 3 hodiny. Vstupy a normu jsem přiložil.

Já jsem měl vlastně hotovo za necelou hodinu, ale dobře další hodinu jsem ladil zákeřný ifstream.ignore kterému, pozor, když dáte moc velké číslo, tak přeskočí jenom část vstupu (do konce bufferu?). Docela jsem se navztekal. Odcházel jsem druhý, myslím.
https://gist.github.com/PJK/59be9c6036e7f2a22cbb
Přílohy
test3.zip
(5.27 MiB) Staženo 241 x
Odpovědět

Zpět na „NPRG041 Programování v C++“