DU5
-
- Matfyz(ák|ačka) level II
- Příspěvky: 85
- Registrován: 12. 5. 2007 15:58
- Typ studia: Informatika Mgr.
- Login do SIS: dolej5am
- Kontaktovat uživatele:
Re: du5
Tak me jeste napada, nevite nekdo, jestli se ma nejak jinak extra testovat to, jestli je neco polozka recordu?
protoze zatim, kdyz zkusim !$$.tp->access_record()->find($3) a $3 neni polozka toho recordu, tak to proste zuchne a na if se nedostane...
protoze zatim, kdyz zkusim !$$.tp->access_record()->find($3) a $3 neni polozka toho recordu, tak to proste zuchne a na if se nedostane...
-
- Matfyz(ák|ačka) level III
- Příspěvky: 181
- Registrován: 24. 2. 2005 10:03
- Typ studia: Informatika Mgr.
- Login do SIS: reidj4am
- Kontaktovat uživatele:
Re: du5
tak funkce je pekna, ale dost naprd protoze stejne musis rozlisovat int<->real,ktery se na se be prevadeji.Jochanan píše:Ta funkce je opravdu super uz jsem se bal, ze to zase budu muset nejak extra prolejzat...Soptik píše:na to mame "krasnou funkci" identical_type (tp1, tp2) ze 4.ukoluJochanan píše:Jasne, ale to udelas jak? Kdyz mas type_pointer z ty promenny a type_pointer z vyrazu, jak je porovnas, ze jsou stejnyho typu? Protoze tp==tp nejde.
Don't worry, be dead
-
- Matfyz(ák|ačka) level III
- Příspěvky: 181
- Registrován: 24. 2. 2005 10:03
- Typ studia: Informatika Mgr.
- Login do SIS: reidj4am
- Kontaktovat uživatele:
Re: du5
$$.tp->cat() ==TCAT_RECORDJochanan píše:Tak me jeste napada, nevite nekdo, jestli se ma nejak jinak extra testovat to, jestli je neco polozka recordu?
protoze zatim, kdyz zkusim !$$.tp->access_record()->find($3) a $3 neni polozka toho recordu, tak to proste zuchne a na if se nedostane...
Don't worry, be dead
-
- Matfyz(ák|ačka) level II
- Příspěvky: 85
- Registrován: 12. 5. 2007 15:58
- Typ studia: Informatika Mgr.
- Login do SIS: dolej5am
- Kontaktovat uživatele:
Re: du5
tp je urcite record, ale pokud ten find nic nenajde, tak neni nijak zabezpecenej proti ! a cely to spadne.qk píše:$$.tp->cat() ==TCAT_RECORDJochanan píše:Tak me jeste napada, nevite nekdo, jestli se ma nejak jinak extra testovat to, jestli je neco polozka recordu?
protoze zatim, kdyz zkusim !$$.tp->access_record()->find($3) a $3 neni polozka toho recordu, tak to proste zuchne a na if se nedostane...
-
- Matfyz(ák|ačka) level I
- Příspěvky: 40
- Registrován: 14. 6. 2005 14:50
- Typ studia: Informatika Bc.
- Bydliště: Troja
Re: DU5
Podla cviceni sa o pridavanie parametrov a ich _odstranenie_ zo stacku mame starat my. Tabulky za teba parametre zo stacku odstranovat nebudu - musis to zariadit sam pomocou DTORx. Btw, podla volacej konvencie sa o predavanie a mazanie parametrov zo stacku stara volajuci kod (caller), takze parametre urcite nesmies odstranovat pred ukoncenim procedury, ale az po jej ukonceni (inymi slovami: DTORx davas za CALL instrukciu).D píše:Ako teda riesite to odinicializovanie parametrov pred koncom procedury aby to nepadlo? Nepisali ste niekto vyucujucemu?
pozri: http://forum.matfyz.info/viewtopic.php?f=183&t=3889
Re: DU5
A este jeden dotaz mam na DIVI v testovacom priklade 3. Podla jeho vystupu dava na zasobnik operandy v opacnom poradi ako by podla mna mali byt na zaklade obrazku v popise instrukcie DIVI. Konkretne ked je "A div B" tak ja dam na zasobnik A,B,DIVI, kdezto on dava B,A,DIVI. Ako je to teda spravne?
-
- Matfyz(ák|ačka) level I
- Příspěvky: 40
- Registrován: 14. 6. 2005 14:50
- Typ studia: Informatika Bc.
- Bydliště: Troja
Re: DU5
Spravne "A div B" je "A,B,DIVI", teda tak ako to uz mas. Subormi du5-test3.moa a du5-test3.mo sa velmi riadit netreba - vsimni si napr, ze v du5-test3.mls je konstanta 'f' rovna 500000, zatialco v du5-test3.moa najdes 1e0-10. Vystup du5-test3.icmout je vsak spravny - mozes sa nim riadit.
-
- Matfyz(ák|ačka) level I
- Příspěvky: 40
- Registrován: 14. 6. 2005 14:50
- Typ studia: Informatika Bc.
- Bydliště: Troja
Re: DU5
Vytvorenie miesta na stacku pre record by som robil presne tak isto ako ulozenie recordu na stack - rekurzivne prechadzat polozky recordu od prveho k poslednemu a priebezne generovat instrukcie INITx vhodneho typu. Inak, neviem co by ta viedlo k implementacii takej feature. Napada mi jedine pouzitie recordu ako return value, co je vsak zakazane. Alebo som na nieco zabudol?qk_ píše:Tak taky mam dotaz, funguje nekomu spravne generovani INITu pro struktury?
Re: DU5
nn, mne se to nedelalo pri uvodni generovani lokalnich promennych..ale sem zjistil ze existuje funkce create_field ...ony to pole nemeli no.banan píše:Vytvorenie miesta na stacku pre record by som robil presne tak isto ako ulozenie recordu na stack - rekurzivne prechadzat polozky recordu od prveho k poslednemu a priebezne generovat instrukcie INITx vhodneho typu. Inak, neviem co by ta viedlo k implementacii takej feature. Napada mi jedine pouzitie recordu ako return value, co je vsak zakazane. Alebo som na nieco zabudol?qk_ píše:Tak taky mam dotaz, funguje nekomu spravne generovani INITu pro struktury?
Re: DU5
ako je mozne nejak pekne urobit kod pre napr
a = 1; ?(ide hlavne o tu jednotku, ze by som ju rad na vrchole zasobnika)
viem ze by asi slo si vytvorit konstantu (alebo pomocnu globalnu/lokalnu premennu), a az by bolo treba tak ju naloadovat na zasobnik, ale to mi pride dost osemetne, dost by sa hodila instrukcia ktora hodi na zasobnik priamo hodnotu, taketo instrukcie som vsak nasiel len pre registrovy stroj. vie niekto o pouzitelnejsom rieseni?
a = 1; ?(ide hlavne o tu jednotku, ze by som ju rad na vrchole zasobnika)
viem ze by asi slo si vytvorit konstantu (alebo pomocnu globalnu/lokalnu premennu), a az by bolo treba tak ju naloadovat na zasobnik, ale to mi pride dost osemetne, dost by sa hodila instrukcia ktora hodi na zasobnik priamo hodnotu, taketo instrukcie som vsak nasiel len pre registrovy stroj. vie niekto o pouzitelnejsom rieseni?
-
- Matfyz(ák|ačka) level I
- Příspěvky: 40
- Registrován: 14. 6. 2005 14:50
- Typ studia: Informatika Bc.
- Bydliště: Troja
Re: DU5
Myslim, ze nemusis vytvarat konstantu - staci pridat '1' do integer literal storage-u, tj ls_int.add(1) a vrateny iterator pouzit v instrukcii LDLITI. Skutocnosti, ze pridavas na stack hodnotu nepriamo (pomocou iteratora), sa netreba bat - je to len technicky detail.