Staonův svět - Zápočet z OOP - 16. ledna, 2007, 12:30

Tak nám začíná opět zkoušková a zápočtová sezóna. Přináším dnešní zadání zápočtové písemky.

Úkolem bylo přečíst ze vstupního souboru soubor s kaskádovými styly (CSS) a do výstupního souboru vyplivnout stejné CSSko, ale hezky naformátované. Požadavky na formátování byly:

  • každý atribut na jedné řádce,
  • za každým atributem, kromě posledního, měl být středník,
  • pokud atribut obsahoval několik hodnot (např. seznam jmen fontů) oddělených čárkou, čárka následovala okamžitě za hodnotou a za čárkou byla jedna mezera,
  • pokud hodnoty byly v závorkách, po otevírací závorce měla být mezera a ukončovací ihned za hodnotou. Pokud uvnitř závorek bylo víc hodnot, opět platily mezery kolem čárek.
  • Atributy byly seřazené podle abecedy,
  • za názvem atributu ihned dvojtečka a za ní jedna mezera,
  • pokud k jednomu stylu bylo přiřazeno více tagů (selektorů), opět měly být mezery za čárkou. Navíc měly být seřazeny podle abecedy a to ještě s tím, že tečka, dvojtečka a kriminál se považovaly za oddělovače, tedy se řadilo jakoby podle více sloupců.

Vstup se mohl předpokládat syntakticky správně. Program si musel přečíst jméno vstupního a výstupního souboru z parametrů na příkazové řádce.

Už jsem skoro nevěřil, že to stihnu, ale nakonec se program rozeběhl. Ale musím konstatovat, že to je asi nejzprasenější program, jaký jsem za posledních pět let napsal :)

Ondra

update – odpovědi na doplňující otázky

  1. Byly na to 3 hodiny. Od čtyř byl další test, takže se asi neprodlužovalo.
  2. Já jsem odcházel po zhruba dvou a půl hodině a byl jsem druhý. NIcméně druhý ze šesti, takže říct, jaká byl úspěšnost není příliš snadné. Když jsem odcházel, nevypadalo to, že by se ostatní chýlili ke konci.

Jak jsem na to šel

Měl jsem udělaný objekt, který v sobě měl seznam tagů a seznam objektů atributů. Jeden objekt atributu v sobě měl jméno atributu a seznam hodnot. Každý styl jsem naparsoval do těhle objektů a pak je vypsal. Přičemž jsem před výpisem sortoval, co bylo potřeba pomocí STL funkce sort – musel jsem si udělat funktor pro sortování dle těch „sloupců“ tagu a pro sortování podle jmen atributů.

No, nevím, jestli to je jasné, snad aspoň trošku.

Matfyz | 16.1.2007 Út 16:19 | <<< trvalý odkaz >>> | tisk | 4 komentáře

Komentáře k textu

Rss komentářů tohoto textu

[1] reaguj
Tiboh 16.1.2007 Út 16:26

No ty jo, tak to bych za dve hodky asi nerozchodil… Doufam, ze budu mit neco lehciho :o)

[2] reaguj
Ještě pár doplňujících otázek:
nAS mejl web 16.1.2007 Út 16:27
  1. Kolik na to bylo času?
  2. Jaká byla úspěšnost?
  3. Jak jsi na to šel? Jenom nástin.

Díky, Martin.

[3] reaguj
Staon mejl web 16.1.2007 Út 16:30

[1] Tiboh : Taky jsem na to docela zíral. Skoro dvě hodiny jsem psal jenom parser toho vstupního CSSka a pak jsem fofrem za půl hoďky udělal naformátovaný výstup. Nškdo nade mnou držel ochrannou ruku, protože jsem si tam nikam nezapletl nějakou mizernou chybu, kterou bych v debugeru hledal hodinu.

[4] reaguj
nAS mejl web 16.1.2007 Út 20:49

Díky za odpovědi. No, hezký. To jsem teda na sebe zvědavej…

Přidej komentář!

  Gravatar povolen.

Příspěvěk je formátován Texy! syntaxí. Není povoleno HTML, odkazy se převádějí automaticky.
Kolik je 3 x 5?
Odpověd: 237 nevím, ale násobení na reálných číslech tvoří komutativní grupu.

Autor vzhledu: Staon. Stránky jsou postaveny na redakčním systému RS2 (verze RC2).