Helsingin yliopisto
/
Tietojenkäsittelytieteen
laitos
/
Arto Wikla.
Ohjelmoinnin perusteet, kurssikoe 18.10.2011/AW
Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen
päivämäärä sekä nimesi, opiskelijanumerosi (tai henkilötunnuksesi)
ja allekirjoituksesi.
Jokainen vastaus (1, 2, 3) kirjoitetaan omalle arkilleen!
- Selitä lyhyesti ja täsmällisesti sekä anna havainnollisia
ohjelmaesimerkkejä seuraavista käsitepareista.
Älä viittaa vastauksessasi muiden tehtävien vastauksiin.
- taulukon indeksi ja taulukon alkio
- metodin määrittely ja metodin kutsu
- muodollinen parametri ja todellinen parametri
- konstruktori ja aksessori
- alkeistyyppi ja viittaustyyppi
(10 pistettä)
- Mehuautomaatissa on kaksi säiliötä: vesisäiliö ja
mehutiivistesäiliö. Mehua valmistetaan sekoittamalla
yksi osa tiivistettä ja yhdeksän osaa vettä.
Ohjelmoi luokka Mehuautomaatti mehuautomaatin toteutukseksi.
Konstruktori ja aksessorit tulkitsevat negatiiviset parametrien
arvot nollaksi. Luokan API:
- public Mehuautomaatti(double vesiVetoisuus, double mehutiivisteVetoisuus)
luo mehuautomaatin, jonka säiliöiden vetoisuudet annetaan parametreina.
Säiliöt ovat uudessa mehuautomaatissa tyhjiä.
- public double lisaaVetta(double maara)
lisää vettä vesisäiliöön. Metodi palauttaa arvonaan
veden, joka ei mahtunut varastoon.
Palautetaan siis nolla, jos kaikki lisättävä vesi mahtui.
- public double lisaMehutiivistetta(double maara)
lisää mehutiivistettä mehutiivistesäiliöön. Metodi palauttaa arvonaan
mehutiivisteen, joka ei mahtunut varastoon.
Palautetaan siis nolla, jos kaikki lisättävä mehutiiviste mahtui.
- public boolean valmistaMehuannos()
valmistaa mehua vedestä ja mehutiivisteestä.
Annoksen koko on 0.2 yksikköä.
Jos raaka-aineita ei ole riittävästi metodi palauttaa arvon false.
Jos mehunvalmistus onnistuu, metodi palauttaa arvon true.
Asiallisesti ottaen metodi siis pyrkii vähentämään vesivarastoa 0.18
yksiköllä ja mehutiivistesäiliötä 0.02 yksiköllä!
- public String toString() palauttaa arvonaan selkeän
merkkijonoesityksen mehuautomaatin tilasta.
Laadi myös pääohjelma, joka esittelee monipuolisesti Mehuautomaatti-olioiden
luontia ja käyttöä.
Tämän esittelyohjelman ei tarvitse eikä ole syytä lukea mitään
tietoja käyttäjältä.
(10 pistettä)
-
Tee ohjelma, joka kysyy ensin nimien lukumäärän ja sitten nimet yksi
kerrallaan. Syötteet luetaan joko standardisyöttövirrasta tai
ponnahdusikkunoin – voit päättää itse, kumpaa tapaa ohjelma käyttää.
Ohjelman tehtävä on tulostaa luetut nimet standarditulosvirtaan
String-luokan compareTo()-aksessorin antamassa "aakkosjärjestyksessä".
(10 pistettä)