You are on page 1of 20

Code C++ Author: chuong3a, nick yahoo: chuong3a

V d v i tng ton cc "#i $ $ang h% !& (h)n tch $ ra th*a $ nguy+n t ,-ng .tack /0ng 1inked1i$t tnh t#ng ' a th2c 4eo5etric 6,7ect 8 "i tng h9nh h:c 4eo5etric 6,7ect ' 4eo5etric 6,7ect 3 /0ng .tack = th+5 d>u , vo ,? 3 c@c $ nguy+n

! ' 3 3 & ; !< !A

V d v i tng ton cc BCt oDn chEng tr9nh $au: FincGude Hio$trea5 hI void 5ainJK L cout HH MNeGGo, OorGd PnMQ R NSy $Ta GDi oDn chEng tr9nh tr+n = cU Vu>t Gi%u: Wntering a C++ Xrogra5 $aying NeGGo, OorGd And then eVittingY Z+u c[u kh\ng thay #i h5 5ainJK d]i ,>t k^ h9nh th2c no "oDn chEng tr9nh c $Ta GDi nh $au: FincGude Hio$trea5 hI void 5ainJK L cout HH MNeGGo, OorGd PnMQ R cGa$$ /u55y L Xu,Gic:

/u55yJK L cout HH MWntering a C++ Xrogra5 $aying PnMQ R _/u55yJK L cout HH MAnd then eVitting MQ R RQ "#i $ $ang h% !& FincGude Hio$trea5 hI FincGude H$tdio hI FincGude Hconio hI cGa$$ .tack L int `$t, `toXQ int $iaeQ void bnitJint $aK L $t c toX c neO int d$iaec$aeQ R void CGeanfXJK L ig J$tK deGete de $tQ R Xu,Gic: .tack Jint $a c 'hK L bnitJ$aKQ R _.tackJK L deGete de $tQ R ,ooG iuGGJK con$t L return JtoX j $t Ic $iaeKQ R ,ooG W5XtyJK con$t L return JtoX Hc $tKQ R ,ooG (u$h Jint VKQ ,ooG (oX Jint `XVKQ RQ ,ooG .tack::(u$hJint VK L ig JiuGGJKK return gaG$eQ `toX++ c VQ return trueQ R ,ooG .tack::(oXJint `XVK L ig JW5XtyJKK return gaG$eQ `XV c `jjtoXQ return trueQ R void BuatNe!& JGong nK L $tatic char hka,de c L lhl, l!l, l'l, l3l, l<l, l3l, l&l, lml, l;l, lAl, lAl, lnl, lCl, l/l, lWl, lil RQ .tack $J;KQ int VQ do L $ (u$hJno!&KQ n pc !&Q R OhiGeJnKQ OhiGeJ$ (oXJqVKK cout HH hka,dVeQ R void 5ainJK L '

Gong nQ cout HH MrhaX $o n PnMQ cin II nQ BuatNe!& JnKQ cout HH MPnMQ R (h)n tch $ ra th*a $ nguy+n t ,-ng .tack ppiactoring h Fdegine saV !hh $truct Array L int `A, nQ RQ cGa$$ .tack L int datadsaVeQ int toXQ Xu,Gic: .tackJK L toX c j!Q R int i$W5XtyJKQ void (u$h Jint ite5KQ int (oXJKQ void 6utXutJKQ void toArray JArray qt!KQ RQ ppiactoring cXX FincGude H$tdio hI FincGude Miactoring hM int .tack::i$W5XtyJK L return JtoX cc j!K u ! : hQ R void .tack::(u$h Jint ite5K L ig JtoX cc JsaVj!K K L Xrintg JM.kACv if11 PnMKQ R eG$e L ++toXQ datadtoXe c ite5Q R R int .tack::(oXJK L int iQ ig Ji$W5XtyJK cc hK L i c datadtoXeQ toXjjQ R return iQ R void .tack::6utXutJK L 3

int i, toX! c toXQ OhiGe Ji$W5XtyJK cc hK L i c datadtoXeQ toXjjQ Xrintg JMi c od PnM, iKQ R toX c toX!Q R void .tack::toArray JArray qtK L t n c toX + !Q t A c neO intdtoX+!eQ int i c hQ OhiGe Ji$W5XtyJK cc hK L t Adie c datadtoXeQ toXjjQ i++Q Xrintg JMt Adie c od PnM, t Adij!eKQ R R void Count JArray t, .tack q$K L int i, 7 c h, kQ k c hQ Array t!Q t! n c !hQ t! A c neO int d!heQ t! Adke c t AdheQ $ (u$h Jt! AdkeKQ gor Ji c hQ i H t nQ i++K ig Jt Adie wc t! AdkeK L k++Q t! Adke c t AdieQ Xrintg JMt! Adode c od PnM, k, t! AdkeKQ $ (u$hJ7KQ $ (u$h Jt! AdkeKQ Xrintg JM7 c od PnM, 7KQ 7 c !Q R eG$e L 7++Q R Xrintg JM7 c od PnM, 7KQ $ (u$hJ7KQ R void iactoring J.tack q$, int nK L int i c 'Q OhiGe Jn wc !K L ig Jn o ' cc hK L Xrintg JMig Jn 5od ' cc hK PnMKQ OhiGe Jn o i cc hK L n c npiQ $ (u$hJiKQ R R eG$e ig Jn o 3 cc hK L i c 3Q OhiGe Jn o i cc hK L n c npiQ $ (u$hJiKQ R R eG$e L i c 3Q Xrintg JMi c 3 PnMKQ OhiGe Jn wc !K L ig Jn o i cc hK L <

n c npiQ $ (u$hJiKQ R eG$e L i c i + 'Q R R p` Wnd OhiGe Jn wc !K `p R p` Wnd eG$e `p R R void 5ainJK L int n c 3hhhQ .tack $, $!Q int iQ iactoring J$, nKQ $ 6utXutJKQ Array t, t!Q $ toArrayJtKQ Count Jt, $!KQ Xrintg JM$! 6utXutJK PnMKQ $! 6utXutJKQ $! toArrayJt!KQ Xrintg JMt! c MKQ Xrintg JMod c M, nKQ gor Ji c hQ i H t! nj'Q i +c 'K Xrintg JModxod ` M, t! Adi+!e, t! AdieKQ Xrintg JModxod M, t! Adi+!e, t! AdieKQ R /0ng 1inked1i$t tnh t#ng ' a th2c FincGude H$tdio hI FincGude Hio$trea5 hI $truct dathuc L gGoat h$Q int $5Q RQ $truct rode L dathuc dtQ $truct rode `neVtQ RQ cGa$$ /athuc L rode `gir$t, `Ga$tQ Xu,Gic: /athucJK L gir$t c rf11Q R void Create Jint `V, int nKQ /athuc kong J/athuc g'KQ void in$ert1a$t Jdathuc VKQ void 1i$tJKQ RQ void /athuc::Create Jint `V, int nK L dathuc dt!Q int i, kQ k c hQ gor Ji c hQ i H nQ i++K L dt! h$ c VdkeQ dt! $5 c Vdk+!eQ k +c 'Q in$ert1a$tJdt!KQ R R void /athuc::in$ert1a$t Jdathuc VK L rode `t c neO rodeQ tjIdt c VQ ig Jgir$t cc rf11K 3

gir$t c tQ eG$e Ga$tjIneVt c tQ Ga$t c tQ tjIneVt c rf11Q R void /athuc::1i$tJK L rode `X c gir$tQ OhiGeJX wc rf11K L cout HH XjIdt h$ HH MVxM HH XjIdt $5 HH M + MQ X c XjIneVtQ R cout HH MPnMQ R /athuc /athuc::kong J/athuc g'K L /athuc g3Q dathuc dt!Q rode `X! c gir$t, `X' c g' gir$tQ pp,X3cg3 gir$tQ OhiGe JX! wc rf11 qq X' wc rf11K L ig JX!jIdt $5 I X'jIdt $5K L g3 in$ert1a$tJX!jIdtKQ X! c X!jIneVtQ R eG$e ig JX!jIdt $5 H X'jIdt $5K L g3 in$ert1a$tJX'jIdtKQ X' c X'jIneVtQ R eG$e L dt! h$ c X!jIdt h$ + X' jI dt h$Q dt! $5 c X!jIdt $5Q g3 in$ert1a$tJdt!KQ X' c X'jIneVtQ X! c X!jIneVtQ R R ig JX! cc rf11K g3 Ga$tjIneVt c X'Q eG$e g3 Ga$t jI neVt c X!Q return g3Q R void 5ainJK L /athuc V!, V', V3Q int Vad;e c L ', ', 3, 3, !!, <, !m, 3 RQ int yad;e c L 3, ', A, 3, '!, <, !A, 3 RQ V! Create JVa, <KQ V' Create Jya, <KQ cout HH M/a khuc !: PnMQ V! 1i$tJKQ cout HH M/a khuc ': PnMQ V' 1i$tJKQ V3 c V! kongJV'KQ V3 1i$tJKQ R 4eo5etric 6,7ect 8 "i tng h9nh h:c FincGude H$tdio hI FincGude H5ath hI cGa$$ /ie5 L &

dou,Ge VQ pp Nonh ? dou,Ge yQ pp kung ? Xu,Gic: /ie5JK L V c hQ y c hQ R /ie5 Jdou,Ge V!, dou,Ge y!K L V c V!Q y c y!Q R dou,Ge vhoangCach J/ie5 nK L dou,Ge t, t!, t'Q t! c XoOJJthi$jIV j n VK, 'KQ t' c XoOJJthi$jIy j n yK, 'KQ t c $trtJt! + t'KQ return tQ R dou,Ge getBJK L return VQ R dou,Ge getZJK L return yQ R RQ cGa$$ NinhVuong L /ie5 A, n, C, /Q Xu,Gic: NinhVuongJK : AJK, nJK, CJK, /JK L R NinhVuong Jdou,Ge V, dou,Ge y, dou,Ge 5K : AJV, yK, nJV+5, yK, CJV+5, y+5K, /JV, y+5K L R dou,Ge kinhChuViJKQ dou,Ge kinh/ienkichJKQ int Bac/inh J/ie5 WKQ pp B@c ynh Ve5 ! i=5 cU n-5 trong h9nh vu\ng hay kou int Bac/inh! JNinhVuong nKQ pp B@c ynh Ve5 ' h9nh vu\ng cU giao nhau kou RQ dou,Ge NinhVuong::kinhChuViJK L dou,Ge t, t!Q t! c thi$jIA vhoangCach Jthi$jInKQ t c <`t!Q return tQ R dou,Ge NinhVuong::kinh/ienkichJK L dou,Ge t, t!Q t! c thi$jIA vhoangCach Jthi$jInKQ t c t!`t!Q return tQ R p` ! i=5 W n-5 trong h9nh vu\ng nzu A V { W V { n V, A y { W y { / y `p int NinhVuong::Bac/inh J/ie5 WK L dou,Ge t, t!, t', t3, t<Q int k c hQ ig J JW getBJK Ic thi$jIA getBJK K qq JW getBJK Hc thi$jIn getBJK K K m

ig J JW getZJK Ic thi$jIA getZJK K qq JW getZJK Hc thi$jI/ getZJK K K k c !Q eG$e k c hQ return kQ R p` ' h9nh vu\ng A, n G giao nhau nzu cU ! |nh c}a h9nh vu\ng n n-5 trong h9nh vu\ng A or cU ! |nh c}a h9nh vu\ng A n-5 trong h9nh vu\ng n `p int NinhVuong::Bac/inh! JNinhVuong n!K L int k c hQ ig Jthi$jIBac/inh Jn! AK cc !K k c !Q ig Jthi$jIBac/inh Jn! nK cc !K k c !Q ig Jthi$jIBac/inh Jn! CK cc !K k c !Q ig Jthi$jIBac/inh Jn! /K cc !K k c !Q return kQ R int 5ainJK L dou,Ge V c !, y c ', 5 c 3, t, t!Q int k, k!Q NinhVuong AJV, y, 5KQ t c A kinhChuViJKQ t! c A kinh/ienkichJKQ Xrintg J~Chu Vi hinh vuong Ga o 3g Pn, tKQ Xrintg J~/ien kich hinh vuong Ga o 3g Pn, t!KQ /ie5 WJ', 3KQ k c A Bac/inhJWKQ ig Jk cc !K Xrintg J~/ie5 W na5 trong hinh vuong PnKQ eG$e Xrintg J~/ie5 W ko na5 trong hinh vuong PnKQ NinhVuong nJ3, &, !KQ k c A Bac/inh!JnKQ k! c n Bac/inh!JAKQ ig Jk cc ! qq k! cc !K Xrintg J~NinhVuong n giao voi Ninh Vuong A PnKQ eG$e Xrintg J~NinhVuong n ko giao voi Ninh Vuong A PnKQ R 4eo5etric 6,7ect ' j B@c ynh ' h9nh ,>t k9 cU giao nhau kou krong XhD5 vi ,i ny, ta ch| VCt c@c h9nh ch nht, h9nh trn, h9nh ta5 gi@c

ap B)y dng G]X ,i=u din kh@i ni%5 h9nh t#ng tu@t G5 cE $ cho c@c h9nh c th= $ V)y dng $au "ynh ngha XhEng th2c o V@c ynh ! i=5 cU thu?c ! h9nh hay kou /a tr+n XhEng th2c tr+n, vizt h5 thnh Xh[n V@c ynh ' h9nh cU giao nhau kou ,p B)y dng G]X ,i=u din kh@i ni%5 h9nh trn, h9nh ta5 gi@c, h9nh ch nht khizt GX 5i tuan h% kz th*a v]i G]X h9nh t#ng tu@t c)u ap Vizt XhEng th2c thizt GX, ynh ngha h5 V@c ynh ! i=5 cU n-5 trong h9nh kou i+ng v]i h5 V@c ynh ! i=5 cU n-5 trong ta5 gi@c hay ko, ch| c[n vizt ynh ngha h5 v 5\ t gii thut cp Vizt ! 2ng dng cho XhCX tDo ' h9nh Jh5 5ainK, ,-ng c@ch nhX vo ' $ nguy+n Di di%n cho GoDi c}a h9nh theo tuy ]c: h, !, ' G[n Gt 2ng v]i h9nh ta5 gi@c, h9nh trn, h9nh ch nht V d nhX vo h v ' th9 ' h9nh $ G h9nh ta5 gi@c v h9nh ch nht Bu>t th\ng ,@o cho ,izt ' h9nh cU giao nhau kou dp CU th= GoDi , Xh@t ,izt $Oicht ca$e v ig eG$e c)u cp kou r+u r c@ch thc hi%n v vizt 5S chEng tr9nh 5inh h:a Jch| c[n vizt khai ,@o v gii thchK FincGude Hio$trea5 hI FincGude H$tdio hI FincGude H5ath hI cGa$$ (ointQ cGa$$ CirGeQ cGa$$ kriangGeQ cGa$$ ectangGeQ cGa$$ (oint L Xrivate: dou,Ge V, yQ Xu,Gic: (ointJK L V c hQ y c hQ R (oint Jdou,Ge V!, dou,Ge y!K L V c V!Q y c y!Q R dou,Ge vhoangCach J(oint nKQ dou,Ge getBJK L return VQ R dou,Ge getZJK L return yQ R griend dou,Ge vhoangCach J(oint A, (oint nKQ con$t (oint q oXerator c Jcon$t (oint qNK L V c N VQ y c N yQ R RQ dou,Ge (oint::vhoangCach J(oint nK L dou,Ge t, t!, t'Q t! c XoO JJthi$jIV j n VK, 'KQ t' c XoO JJthi$jIy j n yK, 'KQ t c $trtJt! + t'KQ return tQ R cGa$$ .haXe L A

Xu,Gic: virtuaG int Bac/inh J(oint WK c hQ virtuaG dou,Ge /ienkichJK c hQ RQ cGa$$ CircGe : Xu,Gic .haXe L (oint CenterQ dou,Ge rQ Xu,Gic: CircGeJK : CenterJK L r c hQ R CircGe Jdou,Ge V, dou,Ge y, dou,Ge r!K : CenterJV, yK L r c r!Q R CircGe rhaXJKQ con$t CircGe q oXerator c Jcon$t CircGe qNK L Center c N CenterQ r c N rQ R virtuaG int Bac/inh J(oint WKQ virtuaG dou,Ge /ienkichJKQ pp Bac dinh hinh chu nhat co giao voi h9nh trn int Bac/inh JectangGe A'KQ pp Bac dinh ta5 giac cU giao voi h9nh trn int Bac/inhk JkriangGe A'KQ RQ cGa$$ kriangGe : Xu,Gic .haXe L (oint A, n, CQ Xu,Gic: kriangGeJK : AJK, nJK, CJK L R kriangGe::kriangGe Jdou,Ge V, dou,Ge y, dou,Ge 5, dou,Ge nK : AJV, yK, n JVj5, yj5K, C JV+n, yjnK L R (oint getAJK L return AQ R (oint getnJK L return nQ R (oint getCJK L return CQ R kriangGe rhaXJKQ virtuaG int Bac/inh J(oint WKQ virtuaG dou,Ge /ienkichJKQ con$t kriangGe q oXerator c Jcon$t kriangGe qNK L A c N AQ n c N nQ C c N CQ R RQ cGa$$ ectangGe : Xu,Gic .haXe L (oint A, n, C, /Q Xu,Gic: ectangGeJK : AJK, nJK, CJK, /JK L R ectangGe::ectangGe Jdou,Ge V, dou,Ge y, dou,Ge 5, dou,Ge nK : A JV, yK, n JV, yjnK, C JV+5, yjnK, / JV+5, yK L R (oint getAJK L return AQ R (oint getnJK L return nQ R (oint getCJK L return CQ R !h

(oint get/JK L return /Q R pp 5 G chieu di, n G chieu rong ectangGe rhaXJKQ virtuaG int Bac/inh J(oint WKQ virtuaG dou,Ge /ienkichJKQ int Bac/inhk JkriangGe A'KQ con$t ectangGe q oXerator c Jcon$t ectangGe qNK L A c N AQ n c N nQ C c N CQ / c N /Q R RQ CircGe CircGe::rhaXJK L dou,Ge V, y, rQ cout HH MrhaX toa do ta5 duong tron PnMQ cin II V II yQ cout HH MrhaX vao ,an kinh duong tron PnMQ cin II rQ CircGe n!JV, y, rKQ return n!Q R int CircGe::Bac/inh J(oint WK L int kQ ig JCenter vhoangCachJWK Hc rK k c !Q eG$e k c hQ return kQ R int CircGe::Bac/inh JectangGe A'K L int 5Q dou,Ge k!, k', k3, k<Q k! c Bac/inh JA' getAJKKQ k' c Bac/inh JA' getnJKKQ k3 c Bac/inh JA' getCJKKQ k< c Bac/inh JA' get/JKKQ Xrintg JMA' getAJK getBJK c o 'g PnM, A' getAJK getBJK KQ ig J Jk! cc !K Jk' cc !K Jk3 cc !K Jk< cc rK K L Xrintg JMk! c o 'g, k' c o 'g, k3 c o 'g PnM, k!, k', k3KQ Xrintg JMk< c o 'g, r c o 'g PnM, k<, rKQ cout HH MNinh tron co giao voi hinh chu nhat PnMQ 5 c !Q R eG$e L cout HH MNinh tron ko giao voi hinh chu nhat PnMQ 5 c hQ R return 5Q R int CircGe::Bac/inhk JkriangGe A'K L int 5Q dou,Ge k!, k', k3Q k! c Center vhoangCach JA' getAJKKQ k' c Center vhoangCach JA' getnJKKQ k3 c Center vhoangCach JA' getCJKKQ ig J Jk! Hc rK qq Jk' Hc rK qq Jk3 Hc rK K L !!

cout HH MNinh tron co giao voi hinh ta5 giac PnMQ 5 c !Q R eG$e L cout HH MNinh tron ko giao voi hinh ta5 giac PnMQ 5 c hQ R return 5Q R dou,Ge CircGe::/ienkichJK L dou,Ge k c r`r`3 !<Q Xrintg JM/ien tich hinh tron Ga: o 'g PnM, kKQ return kQ R p` jo6oj kriangGe jo6oj `p kriangGe kriangGe::rhaXJK L dou,Ge V, y, 5, nQ cout HH MrhaX ta5 giac PnMQ cout HH MrhaX vao toa do V, y cua die5 A PnMQ cin II V II yQ cout HH MrhaX vao cac $o 5, n PnMQ cin II 5 II nQ kriangGe nhJV, y, 5, nKQ return nhQ R int kriangGe::Bac/inh J(oint WK L int k c hQ return kQ R dou,Ge kriangGe::/ienkichJK L dou,Ge k!, k', k3, X, X!, kQ k! c A vhoangCachJnKQ k' c n vhoangCachJCKQ k3 c A vhoangCachJCKQ X c Jk! + k' + k3Kp'Q X! c X`JX j k!K`JX j k'K`JX j k3KQ k c $trtJX!KQ Xrintg JM/ien tich hinh ta5 giac Ga: o 'g PnM, kKQ return kQ R p` jo6oj ectangGe jo6oj `p ectangGe ectangGe::rhaXJK L dou,Ge V, y, 5, nQ cout HH MrhaX Ninh Chu rhat PnMQ cout HH MrhaX vao toa do V, y cua die5 A PnMQ cin II V II yQ cout HH MrhaX vao chieu dai va chieu rong PnMQ cin II 5 II nQ ectangGe n'JV, y, 5, nKQ return n'Q R !'

int ectangGe::Bac/inh J(oint WK L int kQ ig J JW getBJK Ic A getBJKK qq JW getBJK Hc / getBJK K K ig J JW getZJK Ic n getZJKK qq JW getZJK Hc A getZJK K K k c !Q k c hQ return kQ R int ectangGe::Bac/inhk JkriangGe A'K L int 5Q int k!, k', k3Q k! c Bac/inh JA' getAJKKQ k' c Bac/inh JA' getnJKKQ k3 c Bac/inh JA' getCJKKQ ig J Jk! cc !K qq Jk' cc !K qq Jk3 cc !K K L cout HH MNinh chu nhat co giao voi hinh ta5 giac PnMQ 5 c !Q R eG$e L cout HH MNinh chu nhat ko giao voi hinh ta5 giac PnMQ 5 c hQ R return 5Q R dou,Ge ectangGe::/ienkichJK L dou,Ge k, 5, nQ 5 c A vhoangCachJnKQ n c A vhoangCachJ/KQ k c 5`nQ Xrintg JM/ien tich hinh chu nhat Ga: o 'g PnM, kKQ return kQ R void rhaXJK L int k!, k', kQ kriangGe nhQ CircGe n!Q ectangGe n'Q cout HH MChon h de nhaX hinh ta5 giac PnMQ cout HH MChon ! de nhaX hinh tron PnMQ cout HH MChon ' de nhaX hinh chu nhat PnMQ cout HH MrhaX ' hinh PnMQ cin II k! II k'Q k c k! + k'Q ig Jk cc !K L nh c nh rhaXJKQ n! c n! rhaXJKQ n! Bac/inhkJnhKQ nh /ienkichJKQ n! /ienkichJKQ R eG$e ig Jk cc 'K L nh c nh rhaXJKQ n' c n' rhaXJKQ n' Bac/inhkJnhKQ nh /ienkichJKQ n' /ienkichJKQ R eG$e ig Jk cc 3K L n! c n! rhaXJKQ n' c n' rhaXJKQ n! Bac/inhJn'KQ n! /ienkichJKQ n' /ienkichJKQ !3

R R int 5ainJK L rhaXJKQ R 4eo5etric 6,7ect 3 FincGude Hio$trea5 hI FincGude H$tdio hI FincGude H5ath hI cGa$$ (ointQ cGa$$ CirGeQ cGa$$ kriangGeQ cGa$$ ectangGeQ cGa$$ (oint L Xrivate: dou,Ge V, yQ Xu,Gic: (ointJK L V c hQ y c hQ R (oint Jdou,Ge V!, dou,Ge y!K L V c V!Q y c y!Q R dou,Ge vhoangCach J(oint `nKQ dou,Ge getBJK L return VQ R dou,Ge getZJK L return yQ R void rhaXJK L Xrintg JMrhaX toa do V, y PnMKQ cin II V II yQ R griend dou,Ge vhoangCach J(oint A, (oint nKQ con$t (oint q oXerator c Jcon$t (oint qNK L V c N VQ y c N yQ R RQ dou,Ge (oint::vhoangCach J(oint `nK L dou,Ge t, t!, t'Q t! c XoO JJthi$jIV j njIVK, 'KQ t' c XoO JJthi$jIy j njIyK, 'KQ t c $trtJt! + t'KQ return tQ R cGa$$ .haXe L Xu,Gic: virtuaG int Bac/inh J(oint `WK c hQ virtuaG dou,Ge /ienkichJK c hQ !<

virtuaG void rhaXJK c hQ RQ cGa$$ CircGe : Xu,Gic .haXe L (oint CenterQ dou,Ge rQ Xu,Gic: CircGeJK : CenterJK L r c hQ R CircGe Jdou,Ge V, dou,Ge y, dou,Ge r!K : CenterJV, yK L r c r!Q R virtuaG void rhaXJKQ con$t CircGe q oXerator c Jcon$t CircGe qNK L Center c N CenterQ r c N rQ R virtuaG int Bac/inh J(oint `WKQ virtuaG dou,Ge /ienkichJKQ pp Bac dinh hinh chu nhat co giao voi h9nh trn int Bac/inh JectangGe A'KQ pp Bac dinh ta5 giac cU giao voi h9nh trn int Bac/inhk JkriangGe A'KQ RQ cGa$$ kriangGe : Xu,Gic .haXe L (oint `A, `n, `CQ int V, y, 5, nQ Xu,Gic: kriangGeJK : AJK, nJK, CJK L R ppkriangGe::kriangGe Jdou,Ge V, dou,Ge y, dou,Ge 5, dou,Ge nK : pp AJV, yK, n JVj5, yj5K, C JV+n, yjnK L R (oint `getAJK L return AQ R (oint `getnJK L return nQ R (oint `getCJK L return CQ R virtuaG void rhaXJKQ virtuaG int Bac/inh J(oint `WKQ virtuaG dou,Ge /ienkichJKQ con$t kriangGe q oXerator c Jcon$t kriangGe qNK L A c N AQ n c N nQ C c N CQ R RQ cGa$$ ectangGe : Xu,Gic .haXe L (oint `A, `n, `C, `/Q int V, y, 5, nQ Xu,Gic: ectangGeJK : AJK, nJK, CJK, /JK L R ppectangGe::ectangGe Jdou,Ge V, dou,Ge y, dou,Ge 5, dou,Ge nK : ppA JV, yK, n JV, yjnK, C JV+5, yjnK, / JV+5, yK L R (oint `getAJK L return AQ R (oint `getnJK L return nQ R (oint `getCJK L return CQ R (oint `get/JK L return /Q R pp 5 G chieu di, n G chieu rong !3

virtuaG void rhaXJKQ virtuaG int Bac/inh J(oint `WKQ virtuaG dou,Ge /ienkichJKQ int Bac/inhk JkriangGe A'KQ con$t ectangGe q oXerator c Jcon$t ectangGe qNK L A c N AQ n c N nQ C c N CQ / c N /Q R RQ void CircGe::rhaXJK L cout HH MrhaX toa do ta5 duong tron PnMQ Center rhaXJKQ cout HH MrhaX vao ,an kinh duong tron PnMQ cin II rQ R int CircGe::Bac/inh J(oint `WK L int kQ ig JCenter vhoangCachJWK Hc rK k c !Q eG$e k c hQ return kQ R int CircGe::Bac/inh JectangGe A'K L int 5Q dou,Ge k!, k', k3, k<Q k! c Bac/inh JA' getAJKKQ k' c Bac/inh JA' getnJKKQ k3 c Bac/inh JA' getCJKKQ k< c Bac/inh JA' get/JKKQ Xrintg JMA' getAJK getBJK c o 'g PnM, A' getAJKjIgetBJK KQ ig J Jk! cc !K Jk' cc !K Jk3 cc !K Jk< cc rK K L Xrintg JMk! c o 'g, k' c o 'g, k3 c o 'g PnM, k!, k', k3KQ Xrintg JMk< c o 'g, r c o 'g PnM, k<, rKQ cout HH MNinh tron co giao voi hinh chu nhat PnMQ 5 c !Q R eG$e L cout HH MNinh tron ko giao voi hinh chu nhat PnMQ 5 c hQ R return 5Q R int CircGe::Bac/inhk JkriangGe A'K L int 5Q dou,Ge k!, k', k3Q k! c Center vhoangCach JA' getAJKKQ k' c Center vhoangCach JA' getnJKKQ k3 c Center vhoangCach JA' getCJKKQ ig J Jk! Hc rK qq Jk' Hc rK qq Jk3 Hc rK K L cout HH MNinh tron co giao voi hinh ta5 giac PnMQ 5 c !Q R eG$e L cout HH MNinh tron ko giao voi hinh ta5 giac PnMQ 5 c hQ R !&

return 5Q R dou,Ge CircGe::/ienkichJK L dou,Ge k c r`r`3 !<Q Xrintg JM/ien tich hinh tron Ga: o 'g PnM, kKQ return kQ R p` jo6oj kriangGe jo6oj `p void kriangGe::rhaXJK L cout HH MrhaX ta5 giac PnMQ cout HH MrhaX vao toa do V, y cua die5 A PnMQ cin II V II yQ A c neO (ointJV, yKQ cout HH MrhaX vao cac $o 5, n PnMQ cin II 5 II nQ n c neO (oint JV j 5, y j 5KQ C c neO (oint JV + n, y j nKQ R int kriangGe::Bac/inh J(oint `WK L int k c hQ return kQ R dou,Ge kriangGe::/ienkichJK L dou,Ge k!, k', k3, X, X!, kQ k! c AjIvhoangCachJnKQ k' c njIvhoangCachJCKQ k3 c AjIvhoangCachJCKQ X c Jk! + k' + k3Kp'Q X! c X`JX j k!K`JX j k'K`JX j k3KQ k c $trtJX!KQ Xrintg JM/ien tich hinh ta5 giac Ga: o 'g PnM, kKQ return kQ R p` jo6oj ectangGe jo6oj `p void ectangGe::rhaXJK L cout HH MrhaX Ninh Chu rhat PnMQ cout HH MrhaX vao toa do V, y cua die5 A PnMQ cin II V II yQ A c neO (oint JV, yKQ cout HH MrhaX vao chieu dai va chieu rong PnMQ cin II 5 II nQ n c neO (oint JV, yjnKQ C c neO (oint JV+5, yjnKQ / c neO (oint JV+5, yKQ R int ectangGe::Bac/inh J(oint `WK L int kQ ig J JWjIgetBJK Ic AjIgetBJKK qq JWjIgetBJK Hc /jIgetBJK K K ig J JWjIgetZJK Ic njIgetZJKK qq JWjIgetZJK Hc AjIgetZJK K K k c !Q k c hQ !m

return kQ R int ectangGe::Bac/inhk JkriangGe A'K L int 5Q int k!, k', k3Q k! c Bac/inh JA' getAJKKQ k' c Bac/inh JA' getnJKKQ k3 c Bac/inh JA' getCJKKQ ig J Jk! cc !K qq Jk' cc !K qq Jk3 cc !K K L cout HH MNinh chu nhat co giao voi hinh ta5 giac PnMQ 5 c !Q R eG$e L cout HH MNinh chu nhat ko giao voi hinh ta5 giac PnMQ 5 c hQ R return 5Q R dou,Ge ectangGe::/ienkichJK L dou,Ge k, 5, nQ 5 c AjIvhoangCachJnKQ n c AjIvhoangCachJ/KQ k c 5`nQ Xrintg JM/ien tich hinh chu nhat Ga: o 'g PnM, kKQ return kQ R void rhaXJK L int k!, k', kQ kriangGe nhQ CircGe n!Q ectangGe n'Q cout HH MChon h de nhaX hinh ta5 giac PnMQ cout HH MChon ! de nhaX hinh tron PnMQ cout HH MChon ' de nhaX hinh chu nhat PnMQ cout HH MrhaX ' hinh PnMQ cin II k! II k'Q k c k! + k'Q ig Jk cc !K L nh rhaXJKQ n! rhaXJKQ n! Bac/inhkJnhKQ nh /ienkichJKQ n! /ienkichJKQ R eG$e ig Jk cc 'K L nh rhaXJKQ n' rhaXJKQ n' Bac/inhkJnhKQ nh /ienkichJKQ n' /ienkichJKQ R eG$e ig Jk cc 3K L n! rhaXJKQ n' rhaXJKQ n! Bac/inhJn'KQ n! /ienkichJKQ n' /ienkichJKQ R R int 5ainJK L rhaXJKQ R

!;

/0ng .tack = th+5 d>u , vo ,? 3 c@c $ nguy+n j B)y dng G]X .tack ,i=u din kh@i ni%5 c@c $ nguy+n .T dng G]X .tack v*a tDo, vizt h5 cho XhCX Vu>t GDi n?i dung ! $ nguy+n nhng cU chn th+5 d>u , vo 5i ,? 3 ch $ V d: j . nguy+n: !3&'!&m;'& j . c Vu>t GDi G: !,3&',!&m,;'& FincGude H$tdio hI FincGude Hio$trea5 hI FincGude H$tdGi, hI Fdegine saV !hh cGa$$ .tack L char datadsaVeQ int toXQ Xu,Gic: .tackJK L toX c j!Q R int i$W5XtyJKQ void (u$h Jchar ite5KQ char (oXJKQ void 6utXutJKQ void AddCo55a Jchar `X, int nKQ RQ int .tack::i$W5XtyJK L return JtoX cc j!K u ! : hQ R void .tack::(u$h Jchar ite5K L ig JtoX cc JsaVj!K K L Xrintg JM.kACv if11 PnMKQ R eG$e L ++toXQ datadtoXe c ite5Q R R char .tack::(oXJK L char iQ ig Ji$W5XtyJK cc hK L i c datadtoXeQ toXjjQ R return iQ R void .tack::6utXutJK L int i, toX! c toXQ OhiGe Ji$W5XtyJK cc hK L i c datadtoXeQ toXjjQ !A

Xrintg JMi c od PnM, iKQ R toX c toX!Q R void .tack::AddCo55a Jchar `X, int nK L int count c hQ gor Jint i c n j !Q i Ic hQ jjiKL ig Jcounto3 cc h qq count wc h K (u$hJl,lKQ (u$hJXdieKQ count++Q R char cQ OhiGe Ji$W5XtyJK cc hK L c c (oXJKQ cout HH cQ R cout HH MPnMQ R int 5ainJK L char `X c M3&m!'A;m<&MQ .tack $Q int n c $trGenJXKQ $ AddCo55a JX, nKQ R

'h

You might also like