Helsingin yliopisto
/
Tietojenkäsittelytieteen
laitos
/
Ohjelmoinnin perusteet
/
Copyright © 2003
Arto Wikla.
581325-0 Ohjelmoinnin perusteet, kurssikoe 14.11.2003/AW
Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen
päivämäärä sekä nimesi, henkilötunnuksesi ja allekirjoituksesi.
Jokainen vastaus kirjoitetaan omalle arkilleen!
-
Vastaa lyhyesti ja täsmällisesti seuraaviin kysymyksiin:
- Milloin metodin muuttuja syntyy? Milloin se häviää?
- Milloin olio syntyy? Milloin se häviää?
(10 pistettä)
-
Eräs viljavarastotyyppi muodostuu
kahdesta viljasiilosta. Vain ensimmäinen siilo on varustettu
lastauslaittein. Viljaa voidaan siirtää siilosta toiseen.
Laadi luokka Viljavarasto viljavaraston toteutukseksi.
(Konstruktori ja aksessorit tulkitsevat
negatiiviset parametrien arvot nollaksi)
- public Viljavarasto(double ekaSiilo, double tokaSiilo) luo
viljavaraston, jonka siilojen vetoisuus annetaan parametreina;
siilot ovat aluksi tyhjiä
- public double ekassaOn() palauttaa ensimmäisen siilon viljamäärän
- public double tokassaOn() palauttaa toisen siilon viljamäärän
- public boolean siirraViljaa(double maara, boolean ekasta) siirtää
parametrin verran viljaa siilosta toiseen, jos jälkimmäinen
parametri on true, siirretään ensimmäisestä siilosta 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 lisaaViljaa(double maara)
lisää viljaa ensimmäiseen siiloon; jos yritetään lisätä
enemmän kuin mahtuu, viljamäärää ei muuteta; metodi palauttaa arvon
true, jos lisäys onnistui, muuten false
- public double otaViljaa(double maara)
ottaa viljaa ensimmäisestä siiloista; jos pyydetään
enemmän kuin siilossa on, saadaan vain mitä on
- public void hiirivahinko(double vakavuus) vähentää molempien
siilojen sisältöä parametrin ilmoittamalla prosenttimäärällä
- public String toString() palauttaa arvonaan selkeän
merkkijonoesityksen viljavaraston tilasta
Viljavaraston siiloja ei siis toteuteta
PikkuVarasto-olioina!
(14 pistettä)
-
"Mitä ihmettä nuo
metodit 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. "Mitä peijakkaan 'parametreja',
kuka 'kutsuu' ja ketä, miksi?, hän jatkaa 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!
(12 pistettä)
-
Toteuta seuraava arvauspeli vuorovaikutteisena ohjelmana:
Ennen pelin alkua pelinjohtaja syöttää ohjelmalle 100 eri
kokonaislukua. satunnaisessa järjestyksessä.
Tämän jälkeen pelaaja alkaa käyttää ohjelmaa.
Pelaaja yrittää arvata pelinjohtajan koneeseen syöttämiä
lukuja. Peli päättyy, kun pelaaja on onnistunut arvaamaan
kolme eri lukua. Pelin tulos on tarvittujen arvausten
määrä, siis vähintään kolme. Lopuksi ohjelma tulostaa tuloksen.
Saat olettaa, että pelinjohtaja todella syöttää
100 eri lukua.
Arvattavien lukujen hakeminen on tehokkuussyistä
ohjelmoitava binäärihakua käyttäen.
(14 pistettä)