581325-0 Ohjelmoinnin perusteet, koe 10.6.2006/AW (Avoin yliopisto)
Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen
päivämäärä sekä nimesi, henkilötunnuksesi ja allekirjoituksesi.
-
Selitä siis lyhyesti ja täsmällisesti seuraavat käsitteet: lauseke,
lause, konstruktori, aksessori, indeksi.
(16 pistettä)
- Maitoautossa on kaksi tankkia.
Vain ensimmäinen tankki on varustettu
lastauslaittein. Maitoa voidaan siirtää tankista toiseen.
Laadi luokka Maitoauto maitoauton toteutukseksi.
- public Maitoauto (double ekaTankki, double tokaTankki) luo
maitoauton, jonka tankkien vetoisuus annetaan parametreina.
Tankit ovat aluksi tyhjiä.
- public double ekassaOn() palauttaa ensimmäisen tankin maitomäärän
- public double tokassaOn() palauttaa toisen tankin maitomäärän
- public boolean siirräMaitoa(double määrä, boolean ekasta) siirtää
parametrin verran maitoa tankista toiseen. Jos jälkimmäinen
parametri on true, siirretään ensimmäisestä tankista toiseen,
muuten päinvastoin. Jos koko määrää ei voida siirtää, ei siirretä
mitään. Metodi palauttaa arvon true, jos siirto onnistui, false
jos ei onnistunut.
- public boolean lisääMaitoa(double määrä)
lisää maitoa ensimmäiseen tankkiin. Jos yritetään lisätä
enemmän kuin mahtuu, maitomäärää ei muuteta. Metodi palauttaa arvon
true, jos lisäys onnistui, muuten false.
- public double otaMaitoa(double määrä)
poistaa maitoa ensimmäisestä tankista. Jos pyydetään
enemmän kuin tankissa on, saadaan vain mitä on.
- public String toString() palauttaa arvonaan selkeän
merkkijonoesityksen maitoauton tilasta
(17 pistettä)
- Toteuta seuraava palvelu vuorovaikutteisena
ohjelmana:
Aamuisin ohjelmalle syötetään ensin tasan tuhat kokonaislukua
missä järjestyksessä milloinkin.
Päivän mittaan sitten usein kysellään
onko jokin luku aamulla syötettyjen lukujen joukossa.
Illalla ohjelma suljetaan.
Tehokkuussyistä lukujen hakeminen on välttämättä ohjelmoitava
binäärihakua käyttäen.
(17 pistettä)
Aurinkoista ja lämmintä kesää!