Tölvunarfręši 2
Vikublaš 3
Ķ žessari viku veršur fariš ķ żmislegt višbótarefni um klasa (e. class) ķ C++.
Žetta er efni ķ kafla 10, en einnig veršur fariš hratt yfir kafla 12 um erfšir
(e. inheritance). Erfšir virka mjög svipaš ķ C++ og Java, en framsetning
(e. syntax) žeirra er ašeins frįbrugšin. Eina efniš sem viš eigum žį eftir
aš fara yfir śr C++ bókinni ķ žessari lotu er fyrri hluti kafla 12 um vektora
(arrays). Žaš kemur annaš hvort ķ lok žessarar viku eša ķ byrjun nęstu.
Žaš er żmislegt annaš um C++ sem fariš veršur yfir ķ nįmskeišinu, en žaš
kemur smįtt og smįtt inn žegar viš žurfum į žvķ aš halda. Žetta į sérstaklega
viš um fjölnota föll og klasa (e. templates), sem eru ķ kafla 19 ķ kennslubók.
Dęmatķmar žessa viku (25.-26. jan.) verša ķ tölvuverum og er žetta ķ sķšasta
sinn sem žeir eru ķ tölvuverunum. Ķ nęstu viku verša dęmatķmarnir ķ stofunum
į stundatöflunum ykkar.
Skiladęmi 3
Leysiš eftirfarandi dęmi og skiliš ķ hólf dęmatķmakennara ykkar fyrir
kl. 12:00 mįnudaginn 31. janśar. Žeir taka ekki viš dęmum sem koma seinna.
- Skrifiš hrašvirkara C++ forrit til aš reikna Wolfram rununa sem skilgreind
var ķ Dęmi 1 į Vikublaši 2. Finniš gildiš f(100)
meš žessari ašferš.
(Vķsbending: Notiš vektor)
- Skrifiš klasann Circle sem er eins og klasinn Rectangle ķ
forriti 10.2, nema aš smišurinn og ašferšin DrawShape
hafa nś ašeins višfangiš "int radius". Eins į DrawShape aš teikna
hring śr stjörnum (*) meš žessum radķus. Žetta žarf ekki aš vera alveg nįkvęmur
hringur, en žiš gętuš žurft aš nota hornaföll til aš fį hann til aš lķta vel śt.
- Eftirfarandi C++ fall er skilgreint:
int& fall( int i )
{
int j = i*2;
return j;
}
Ķ ašalforriti er kallaš į falliš į eftirfarandi hįtt:
int i = fall( 5 ) + fall( 2 );
Er eitthvaš athugavert viš žessa notkun? Ef svo er, śtskżriš žį vandamįliš, en hvort sem
eitthvaš er athugavert eša ekki śtskżriš nįkvęmlega gildi breytunnar i eftir
keyrslu skipunarinnar.
- Bętiš viš Cat-klasann ķ forriti 6.4 ašferšinni
Attacks. Hśn tekur sem višfang hlut af klasanum Bird. Ķ 10% tilfella nęr
kötturinn fuglinum og žį prentar ašferšin śt eitthvaš eins og "Smjatt, smjatt", en ef kötturinn
nęr fuglinum ekki žį prentast śt "Arg!". Žaš er slembitölugjafi sem ręšur žvķ hvort kötturinn
nęr fuglinum (sjį sżnisforrit fyrir slembitölugjafa).
Žiš žurfiš lķka aš smķša klasann Bird, sem į aš vera svipašur Cat klasanum,
nema önnur hljóš.
Breytiš sķšan žeim hluta Attacks ašferšarinna sem įkvaršar hvort kötturinn nęr
fuglinum, žannig aš ef kötturinn nęr fuglinum, žį lęrir hann į žvķ og nęst verša hęrri
lķkur į žvķ aš hann nįi fugli. Hafiš falliš samt žannig aš lķkurnar verši aldrei 100%.
Śtskżriš og réttlętiš lęrdómsfalliš ykkar.
- Ķ forriti 10.5 eru aldur og žyngd kattarins geymd ķ ónefndum
breytum sem innri breyturnar itsAge og itsWeight benda į. Bętiš viš strengbreytum
fyrir nafn kattarins (itsName) og nafn eiganda hans (itsOwner). Skilgreiniš žęr
į sama hįtt og gert er meš aldurinn og žyngdina. Lagiš smišinn og eyšinn aš žessum nżju breytum
og bętiš inn ašferšum til aš fį nafniš og eigandann, og einnig til aš skipta um eiganda.
Žeir sem vilja fį ašeins meiri ęfingu ęttu aš reyna viš eftirfarandi dęmi. Lausnirnar
į žeim öllum eru tiltękar, annars vegar į gömlum heimasķšum nįmskeišsins og hins vegar
aftast ķ C++ kennslubókinni. Ef žiš viljiš fį nįnari śtskżringar į lausnunum žį getiš
žiš spurt um žęr ķ dęmatķmunum.
- Dęmi 4 į vikublaši 3
frį žvķ ķ fyrra.
- Dęmi 4 į vikublaši 3
frį žvķ ķ voriš 2003.
- Dęmi 1 ķ Degi 8 į bls. 241 ķ C++ kennslubók.
- Dęmi 2 og 3 ķ Degi 9 į bls. 275 ķ C++ kennslubók.
- Dęmi 3 og 4 ķ Degi 6 į bls. 164 ķ C++ kennslubók.
hh (hja) hi.is, 24. janśar, 2005.