31.5. 16:00

Uživatelský avatar
tutchek
Site Admin
Příspěvky: 795
Registrován: 21. 9. 2004 00:40
Typ studia: Informatika Mgr.
Bydliště: Praha, Bohnice
Kontaktovat uživatele:

31.5. 16:00

Příspěvek od tutchek »

Tak potom co jsem na linearce dopadl jak napoleon u waterloo (jenze tomu lord Welington nerekl "pohar me trpelivosti pretekl, dete domu") Tak jsem si po ceste domu skocil mimo plan na cecko a vysledek:

zadani:
udelejte procesor maker ve formatu
#makroA nahrada
#makroB nahrada

nazev je posloupnost znaku u kterych by isalpha() hodila true

pricemz makro v makru se ma rozvinout take... bez parametru zpracovat stdin a vystup na stdout, jinak:
-i input.file
-o output.file

protoze to ma jit i pres stdin, musi to byt na jeden pruchod, makra se nemuzou zacyklit, protoze pri rozbaleni makraA jeste nebylo definovane makroB, delka nazvu makra muze byt napr. max 64 znaku (omezit konstantou) a delka vseho ostatniho nekonecne dlouha...

takze napr:
#prvni toto je makro
#druhe toto neni prvni makro
toto je druhe ne prvni

vystup bude:
toto je toto neni toto je makro makro ne toto je makro

(proste se to rozbalilo vicekrat ;)

skore: 2 ano (i kdyz ja v poslednich minutach), 1 ne... vic nas tam nebylo
exAdmin. Magistr přes umělou inteligenci. Právník přes daně.
Uživatelský avatar
Dawe
Supermatfyz(ák|ačka)
Příspěvky: 360
Registrován: 12. 10. 2004 12:32
Typ studia: Informatika Mgr.
Bydliště: Doma a nebo na koleji

Podmínka?

Příspěvek od Dawe »

Chci se zeptat, jaká tam byla podmínka toho nahrazování, vždyť kdyby bylo v každém z těch dvou maker slovo které by bylo v nahrazujícím výrazu toho druhého, pak by se to klidně mohlo zacyklit. Chápal bych kdyby se rozbalilo první, pak druhý makro atd. Z toho tvýho příkladu jsem ale pochopil, že se má rozbalit snad všechno, to by se ale potom klidně mohlo cyklit do nekonečna...
A nebo to má být jen dvojtě? Pak by stačilo zachovat si makra, vytvořit nejříve pomocný soubor a pak to na to pustit znovu ne?
Uživatelský avatar
tutchek
Site Admin
Příspěvky: 795
Registrován: 21. 9. 2004 00:40
Typ studia: Informatika Mgr.
Bydliště: Praha, Bohnice
Kontaktovat uživatele:

Re: Podmínka?

Příspěvek od tutchek »

Dawe píše:Chci se zeptat, jaká tam byla podmínka toho nahrazování, vždyť kdyby bylo v každém z těch dvou maker slovo které by bylo v nahrazujícím výrazu toho druhého, pak by se to klidně mohlo zacyklit. Chápal bych kdyby se rozbalilo první, pak druhý makro atd. Z toho tvýho příkladu jsem ale pochopil, že se má rozbalit snad všechno, to by se ale potom klidně mohlo cyklit do nekonečna...
A nebo to má být jen dvojtě? Pak by stačilo zachovat si makra, vytvořit nejříve pomocný soubor a pak to na to pustit znovu ne?
Já jsem píše:protoze to ma jit i pres stdin, musi to byt na jeden pruchod, makra se nemuzou zacyklit, protoze pri rozbaleni makraA jeste nebylo definovane makroB, delka nazvu makra muze byt napr. max 64 znaku (omezit konstantou) a delka vseho ostatniho nekonecne dlouha...
Tzn. nemuze se to zacyklit, protoze pokud by posledni makro vychazelo z prvniho, tak by to neslo, pac to prvni uz nezmeni... to uz je dany a nemenny...

A jeste plati ze "prvni" neni "prvniXXX"
exAdmin. Magistr přes umělou inteligenci. Právník přes daně.
Hugo

Příspěvek od Hugo »

moc tomu na ten "1 pruchod" nerozumim..

#define dnes ctvrtek je dnes

makro bude znat a az narazi na dnes, tak ho nahradi..ale ptz bude znat makro dnes skonci to nekonecnym vypisonavim ctvrtek je ctvrtek je ctvrtek je...:)
Hugo

Příspěvek od Hugo »

Kdyz jsem se o to ted pokousel, tak kdyz nasel definovane makro, tak jsem nahradu za nej jeste jednoduse prolitl doposud znamymi defin. makry.. 3-4 radky kodu navic..
Návštěvník

Příspěvek od Návštěvník »

uz mi to mozna docvaklo; kdyz definuji, tu definici prip rozvinu pomoci maker..ale pak, kdyz na to makro prijde, rovnou dosazuji (pri dosazovani na ni uz zadna makra nemaji vliv)?
Uživatelský avatar
tutchek
Site Admin
Příspěvky: 795
Registrován: 21. 9. 2004 00:40
Typ studia: Informatika Mgr.
Bydliště: Praha, Bohnice
Kontaktovat uživatele:

Příspěvek od tutchek »

Hugo píše:moc tomu na ten "1 pruchod" nerozumim..

#define dnes ctvrtek je dnes

makro bude znat a az narazi na dnes, tak ho nahradi..ale ptz bude znat makro dnes skonci to nekonecnym vypisonavim ctvrtek je ctvrtek je ctvrtek je...:)
Makro se samozrejme neaplikuje samo na sebe... na jeden pruchod znamena, ze kazdy kus vstupu uvidi program jen jednou (jako kdyby mu prisel pres pajpu, kdyz uz mame ty unixove znalosti ;))
exAdmin. Magistr přes umělou inteligenci. Právník přes daně.
Odpovědět

Zpět na „2004“