[zap], historicky prvni, 30.5. 05 9:00

mys_not_logged_in at 2005-05-30 11:51:40

Tak mam tu cest vas seznamit s prvnim zapichem tohohle semestru. Cas je shora omezen 2:30.
Zadani: Mate dany textovy soubor, delka neomezena, delka radku max. 1000zn. Je to plain text, mimo radek vypadajicich nasledovne:

#define SLOVO neconeconeco co obsahuje uplne  cokoliv

... pokud takovyto radek naleznete, zapamatujete si tuto definici (mozne i redefinovani predchozich definic). Pocet techto maker neni omezen. Ostatni radky takto nezacinajici normalne vypisujete, ale pokud v nich narazite na SLOVO, tak misto nej prislusne makro rozvinete (pozn.: pokud je jen #define SLOVO
, tak se v textu SLOVO vzdy vlastne vymaze). Nutne zachovat rozlozeni whitespacu. My jsme meli jednoduchou verzi, tj. rekurze v definicich neni povolena. Ta tezsi ceka stale na vas :twisted: .

Priklad:

#define pondeli streda i patek
#define nic
Dneska je pondeli a jsem na to zvedavy.
#define pondeli utery
Dneska je pondeli a nemam nic.

...vypise:

Dneska je streda i patek a jsem na to zvedavy.
Dneska je utery a nemam .

Myslim, ze tohle bylo docela easy, ja to mel za hodku a pul...akorat takovy tip pro lidi pouzivajici MS .NET Studio... pokud mate projekt zalozen na svem home disku (J:), tak to, co debugujete a co se provadi, neodpovida tomu, co vidite jako zdrojak:-)...takovy WYSINWYD :? . Nejaka hodne vadna synchronizace. Takze pred kazdym spustenim/debuzenim se hodi dat Rebuild all. Tenhle problem me opravdu celkem zarazil. Potvrzeno od min. dvou lidi:-).

tibor at 2005-05-30 18:45:56

Ten problem, ked je project na sietovom disku je celkom normalny. Nam o tom vraveli na cvikach. Teda problem je v tom ze sietovy disk ma trochu vyssiu latenciu a navyse cas na lokalnom stroji sa nemusi zhodovat so servrom tak moze zblbnut, ze ci je zdrojak starsi/novsi ako binarka.

Najjednoduchsie je asi robit na lokalnom disku, tam vsetko chodi ok.

MyS at 2005-05-30 19:59:44

Jojo, ale ja to zjistil az na zapoctu a docela jsem si s tim ze zacatku vyhral:-). Opravdu me prekvapilo, kdyz mi program padal na radku "if (b) x++;" :shock: . Diky za racionalni vysvetleni, uz sem to chtel hlasit Vesmirnym lidem:-). Ale rozhodne to maj labaci blbe vyreseny...

qk at 2005-05-31 13:15:21

chteli tam i nejakou optimalizaci nebo stacilo proste projet vsechny hodnoty define (ktery si clovek nekde ulozil)?

MyS at 2005-05-31 16:00:57

qk: nene, stacilo proste projet dyn.pole/spojak od zacatku az do konce. preci jen ceckove zapocty nejsou o algoritmizaci, na tu tu mame programko :) . Ale takovy lexikograficky BVS by byl urcite mooc hezky 8) .

Trupik at 2005-05-31 21:59:06

MyS wrote:qk: nene, stacilo proste projet dyn.pole/spojak od zacatku az do konce. preci jen ceckove zapocty nejsou o algoritmizaci, na tu tu mame programko :) . Ale takovy lexikograficky BVS by byl urcite mooc hezky 8) .

Nojo, jenze stejne je v BVS vyhledavani v nejhorsim pripade asymptoticky v linearnim case, takze nakonec by se stejne nic nezlepsilo :lol:

Isidor at 2005-05-31 22:15:43

Trupik wrote:

MyS wrote:qk: nene, stacilo proste projet dyn.pole/spojak od zacatku az do konce. preci jen ceckove zapocty nejsou o algoritmizaci, na tu tu mame programko :) . Ale takovy lexikograficky BVS by byl urcite mooc hezky 8) .

Nojo, jenze stejne je v BVS vyhledavani v nejhorsim pripade asymptoticky v linearnim case, takze nakonec by se stejne nic nezlepsilo :lol:

Ved R-B/AVL to istia, nie? :lol:

MyS at 2005-05-31 22:19:15

Oh pravda, takhle se nechat nachytat:-). I kdyz AVLka bych asi za ty 2hodky nedal:-). Kazdopadne na zkousku programka se jeste musim procvicit v Sile :twisted: .

MyS at 2005-05-31 22:20:16

Isidor wrote:Ved R-B/AVL to istia, nie? :lol:

o chvilku:-)

Necroman at 2005-06-01 20:14:21

MyS wrote:Opravdu me prekvapilo, kdyz mi program padal na radku "if (b) x++;" :shock:

Taky jsem mel trochu problemy pri psani, treba mi to skoro vzdy po ulozeni hlasilo, ze "soubor byl modifikovan odjinud, chci jej obnovit?"
Taky se mi stalo, ze jsem normalne zkompiloval program, pridal radek s prikazem, ulozil zdrojak a dal "Build" a ono to hlasilo, ze program je "up-to-date", aniz by ho to znova zkompilovalo... divne :? .