[QGHG-it-dev-list] Zadatak 7 - snimanje kompleksa u fajl
Dusan Cvijetic
dusancvijetic2000 at gmail.com
Sun Feb 27 22:32:23 CET 2022
Pozdrav,
Uzeo bih ovaj zadatak da radim, ako je to u redu.
Pozdravi,
Dušan
пет, 11. феб 2022. у 23:14 Marko Vojinovic <vmarko at ipb.ac.rs> је написао/ла:
>
> Implementirati metod u klasi SimpComp koji ce da snimi dati simplicijalni
> kompleks u fajl:
>
> file* SimpComp::save_complex_to_file( string filename );
>
> Input: ime fajla u koji ce se snimiti kompleks.
> Output: pointer na fajl u koji je snimljen kompleks.
>
> Prvi korak u implementaciji ovoga je odabir tipa fajla koji ce da sadrzi
> podatke, i njegove strukture. Fajl mora da bude istovremeno i
> machine-readable i human-readable, i dva moguca predloga su .xml i .json
> tipovi, mada slobodno predlozite i neki treci ako mislite da je bolji od
> ova dva. Algoritam za snimanje bi trebalo da ide ovako:
>
> (1) Zapamtiti trenutnu vrednost globalne varijable next_free_uid_number iz
> klase UniqueIDColor (na primer, neka ta vrednost bude 12). Kompleks mozda
> vec sadrzi neke boje iz ove klase, i sve instance za koje je id manji od
> ove zapamcene trenutne vrednosti treba preskakati i ignorisati u nastavku
> algoritma, tj. tretirati ih kao i boje svih ostalih tipova.
>
> (2) Obojiti ceo kompleks bojom UniqueID (pozvati f-ju
> UniqueIDColor::colorize_entire_complex() iz zadatka 2). Ove nove id-ove
> cemo da koristimo za imenovanje pojedinacnih simpleksa u fajlu.
>
> (3) Zapisati u fajl strukturu vektora elements naseg kompleksa ---
> deklarisati level 0 i u njemu pobrojati nove id boje svih 0-simpleksa,
> zatim deklarisati level 1 i pobrojati sve 1-simplekse, itd zakljucno sa
> nivoom D. U .xml formatu bi to moglo da izgleda npr ovako (ne znam tacno
> kako ide .xml sintaksa, pisem po secanju):
>
> <level 0>12,13,14,15,16,17,18</level 0> // id brojevi nivoa 0 u kompleksu
> <level 1>19,20,21,22</level1> // id brojevi nivua 1 u kompleksu
> ... // nastavljamo ovako zakljucno
> sa nivoom D
>
> Obratite paznju da su svi id brojevi >= 12.
>
> (4) Zapisati u fajl strukturu svakog k-simpleksa --- deklarisati simpleks
> njegovim id brojem, i zatim ispisati sve tipove i vrednosti boja, kao i id
> brojeve svih njegovih suseda, poredjanih kao u koraku (3). Na primer, .xml
> sintaksa bi izgledala recimo ovako:
>
> <ksimplex 12>
> <color-type>0</color-type> // ova nula je TYPE_BOUNDARY
> <color-value>true</color-value> // ovo je vrednost boundary boje
> <color-type>129</color-type> // ovo je TYPE_UNIQUE_ID
> <color-value>11</color-value> // ovo je id vrednost UniqueID boje, koja
> je *manja* od 12
> ... // pisemo type-value kombinacije za sve
> boje, *osim* za (poslednju) UniqueID boju koja je veca od 12
> <level 0></level0> // ovaj simpleks npr nema susede nivoa
> nula
> <level 1>19,22,41,356</level1> // id boje suseda nivoa 1 (svi su *veci*
> od 12...)
> ... // pisemo strukturu za svih D nivoa suseda
> </ksimplex 12>
> <ksimplex 13> // ponavljamo gornju strukturu za naredni
> k-simpleks
> ...
> </ksimplex 13>
> ... // dok ne uradimo sve k-simplekse u
> kompleksu.
>
> Kad se ovo zavrsi, fajl je snimljen, zatvoriti ga. Ukoliko postoje neke
> vec gotove biblioteke C++ rutina koje konstruisu .xml i .json sintaksu na
> osnovu nekih ulaznih podataka, verovatno je dobra ideja da ih iskoristimo,
> umesto da sami pisemo svaki simbol tih fajlova (smanjicemo mogucnost
> sintaksnih gresaka i povecacemo kompatibilnost).
>
> (5) Deinstancirati sve UniqueID boje iz kompleksa koje smo dodali u koraku
> (2), uz paznju da ne diramo eventualne UniqueID boje koje su vec postojale
> (koje imaju id vrednost < 12 iz primera), cime vracamo kompleks u njegovo
> pocetno stanje. Takodje, setovati globalnu varijablu next_free_uid_number
> natrag na vrednost 12, zapamcenu u koraku (1).
>
> Takodje, mozda bi imalo smisla napraviti dve f-je za snimanje fajla
> (umesto one jedne deklarisane gore),
>
> SimpComp::save_complex_to_xml_file()
> SimpComp::save_complex_to_json_file()
>
> koje bi implementirale sve ovo odozgo, ali sa sintaksom odgovarajucom za
> dati format. Ubuduce cemo mozda da smislimo i neki treci format za
> snimanje, na primer .tex (za crtanje TikZ paketom u LaTeX-u), ili .nb (za
> Mathematicu), ili sl.
>
>
> :-)
> Marko
>
>
> Dr. Marko Vojinovic
> Group for Gravitation, Particles and Fields
> Institute of Physics
> University of Belgrade
> ======================
> home page: www.markovojinovic.com
> e-mail: vmarko at ipb.ac.rs
>
>
> --
> QGHG-it-dev-list mailing list
> QGHG-it-dev-list at ipb.ac.rs
> http://mail.ipb.ac.rs/mailman/listinfo/qghg-it-dev-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ipb.ac.rs/pipermail/qghg-it-dev-list/attachments/20220227/18703b5c/attachment.htm>
More information about the QGHG-it-dev-list
mailing list