581325-0 Ohjelmoinnin perusteet, koe 6.6.2003/AW (Avoin yliopisto)
Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen
päivämäärä sekä nimesi, henkilötunnuksesi ja allekirjoituksesi.
Jokainen vastaus omalle arkilleen!
- Laadi vuorovaikutteinen eli keskusteleva
ohjelma kolmioiden pinta-alan laskentaan.
Pinta-ala lasketaan kaavalla:
ala = kanta*korkeus/2.
Ohjelma pyytää tiedot käyttäjältä ja
tarkistaa tietojen järkevyyden.
Ohjelmalla pitää voida yhdellä suorituskerralla laskea
useiden kolmioiden pinta-ala.
(12 pistettä)
- "Mitä ihmettä nuo
parametrit oikein ovat?",
parahtaa ystäväsi kuunnellessaan
tarinoitasi Ohjelmoinnin perusteet -kurssilta. Ystäväsi
on ohjelmoinut sen verran, että hän tuntee yksinkertaiset muuttujat,
lausekkeet ja lauseet. Myös metodien kutsumisen idean hän
on ymmärtänyt, mutta parametrit ovat jääneet vieraiksi.
"Mihin niitä voi käyttää ja miten ne toimivat",
huokaa hän hyvin toivottomana.
Auta ystävääsi ymmärtämään, mistä oikein on kysymys.
Laadi siis asiasta kirjallinen selitys
(enimmäispituus 1 konseptiarkki). Muista että esimerkit
auttavat
oppimisessa. Vastauksen arvioinnissa otetaan huomioon
selostuksen ajateltu lukija. Älä siis kirjoita tarkastajalle,
joka jo tuntee asian, kirjoita tuolle ystävälle!
(14 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
(12 pistettä)
- Toteuta seuraava palvelu vuorovaikutteisena
ohjelmana:
Aamuisin ohjelmalle syötetään ensin korkeintaan tuhat kokonaislukua
missä järjestyksessä milloinkin. Lukuja voi siis
olla vähemmänkin.
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.
(12 pistettä)
Aurinkoista ja lämmintä kesää!