[zap]9.2. - 14:00

WOW
Matfyz(ák|ačka) level I
Příspěvky: 36
Registrován: 14. 6. 2005 11:16
Typ studia: Informatika Mgr.

[zap]9.2. - 14:00

Příspěvek od WOW »

Takze dneska prisel opet dr. Zavoral - a opet sablony.
Tentokrat to byla sablona pro zlomek typu C-char, L-long, D-double napr.(C6/5, D25.32/5.36) a meli sme na vystup tyto zlomky seradit podle jejich hodnoty...

Jelikoz sem prvni zapoctovy test absolvoval taky u dr. Zavorala 8) , byla to dneska uz pohodovka. Zdrojak sem si neulozil k sobe, takze bohuzel nemam, ale je to hodne podobne testu o nekolik threadu niz... viz. sablona pro komplexni cisla

jinak sem to odevzdaval jako druhy asik po 1,5 hodine, zbytek zatim nevim
Uživatelský avatar
langosh
Matfyz(ák|ačka) level II
Příspěvky: 96
Registrován: 28. 1. 2006 13:20
Typ studia: Informatika Mgr.
Bydliště: Bohnice
Kontaktovat uživatele:

Příspěvek od langosh »

Pridavam reseni
Přílohy
2termin.zip
(6.07 KiB) Staženo 229 x
Cenda

Příspěvek od Cenda »

Odchazel jsem posledni a Zaoral jen komentoval, ze stav 6:6 (uspesni:neuspesni) na druhy termin docela jde.
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

Příspěvek od Dawe »

Jen takovej deatil, to řešení není uplně korektní, protože dělit char charem nejde. Nebo teda spíš jde, ale vrátí to nekorektní výsledek(dělí to asci kódy mezi sebou). Pro char to chce udělat specifickou funkce hodnota(), která vypadá třeba takhle

Kód: Vybrat vše

template<>double zlomek<char>::hodnota(){return (double)(cit-'0')/(jmen-'0');}
no a pak už to běhá tak jak asi má.
Ale to je jen maličkost a díky za ten zdroják, je jednoduchej přehlednej a člověk se zase něco přiučí... škoda jen že jsem na tom termínu nebyl :-(
WOW
Matfyz(ák|ačka) level I
Příspěvky: 36
Registrován: 14. 6. 2005 11:16
Typ studia: Informatika Mgr.

Příspěvek od WOW »

Dawe píše:Jen takovej deatil, to řešení není uplně korektní, protože dělit char charem nejde. Nebo teda spíš jde, ale vrátí to nekorektní výsledek(dělí to asci kódy mezi sebou). Pro char to chce udělat specifickou funkce hodnota(), která vypadá třeba takhle

Kód: Vybrat vše

template<>double zlomek<char>::hodnota(){return (double)(cit-'0')/(jmen-'0');}
no a pak už to běhá tak jak asi má.
Ale to je jen maličkost a díky za ten zdroják, je jednoduchej přehlednej a člověk se zase něco přiučí... škoda jen že jsem na tom termínu nebyl :-(
Tak jeste poznamka k tomu deleni. Delit Char Charem lze a taky se to melo takhle delat!!! Puvodne sem to deleni mel napsane jako ty, ale kdyz prisel dr. Zavoral, tak se zhrozil co je to za prasarnu :evil: ze to mam okamzite prepsat, jinak ze to mam dobre! Kazdy vestaveny typ ma nadefinovany svuj operator deleni, takze se mel pouzit ten a nemelo se vymyslet nic jineho sloziteho...

a myslim si, ze uz vubec nemuzes pouzit tento zapis template<>double zlomek<char>::hodnota() s tim konkretnim typem char, jinak ta sablona ztraci uplne vyznam... kdybych te sablone dal svuj vlastni typ, tak bys musel psat fce hodnota pro kazdy typ :!:
Uživatelský avatar
langosh
Matfyz(ák|ačka) level II
Příspěvky: 96
Registrován: 28. 1. 2006 13:20
Typ studia: Informatika Mgr.
Bydliště: Bohnice
Kontaktovat uživatele:

Příspěvek od langosh »

No ja mam ty chary tak proto ze co sem pochopil tak on to tak chtel (i kdyz ta hodnota je dost nesmerodatna). Vim ze nekdo to delal tak jak to tu mas napsane ale to se mu moc nelibylo. Kdyby to po nekom chtel priste tak nejjednodussi jak nacitat do charu hodnotu je podle meho nacitat do nejakyho integeru nebo shortu a pak to pretypovat, protoze kdyz tam da nekdo treba C12/50 tak nacita spatne.

tedy neco jako :

unsigned short i;
char ch;

cin >> i;
ch=(char) i;

a jeste tam nejak osetrit preteceni. Ono v tom programu neni osetrovano vubec nic a kupodivu mu to nevadilo. :shock:
Naposledy upravil(a) langosh dne 17. 1. 2007 20:19, celkem upraveno 3 x.
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

Příspěvek od Dawe »

Tak to se teda omlouvám, to jsem nemohl vědět, ale jináč proč bych to nemoh napsat specielně pro char? Má to i ve slidech (akorát že s prasátkem :-)...
No ale přijde mi dost divný, když zadám C1/2 D3/4 L1/4 aby mi to vypsalo 1/2 3/4 1/4 (to první díky tomu že to dělí asci '1' a asci'2' a výsledkem je skoro 1).
No ale jestli to tak chtěly a mělo to tak být tak budiž...
Odpovědět

Zpět na „2005“