Helsingin yliopisto
/
Tietojenkäsittelytieteen
laitos
/
Copyright © 2009 Arto Wikla.
Ohjelmoinnin perusteet, kurssikoe 21.10.2009/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!
Saat vastata suomeksi, ruotsiksi tai englanniksi. Jos on tarpeen, saat jopa
käyttää kaikkia näitä kieliä, kunhan vastaukset ovat ymmärrettävissä.
- Säätiöllä on kaksi rahasäiliötä. Toinen säiliö on itse hankituille rahoille,
toinen säiliö on valtiolta saaduille tukirahoille.
Kutsutaan säiliöitä nimillä "varat-säiliö" ja "tuet-säiliö".
Tuet-säiliö ei saa olla negatiivinen. Varat-säiliö sitävastoin saa:
negatiivinen arvo tarkoittaa että säätiö on velkaa, positiivinen että
säätiöllä on itse hankittua varallisuutta.
Ohjelmoi luokka Saatio säätiön toteutukseksi.
- public Saatio(double varat, double tuet) luo
Saatio-olion. Säiliöiden alkupääomat annetaan parametreina.
- public double getVarat() palauttaa varat-säiliön arvon
- public double getTuet() palauttaa tuet-säiliön arvon
- public double getTase() palauttaa säätiön kokonaistilanteen, taseen,
so. säiliöiden summan
- public void varallisuusmuutos(double määrä) muuttaa varat-säiliön
sisältöä parametrin verran, parametri saa olla negatiivinenkin
- public boolean valtioltaTukea(double määrä) lisää tuet-säiliön sisältöä
parametrin verran; vain positiivinen tuki kelpaa. Jos valtio yritti
ottaa rahaa säätiöltä "negatiivisen tuen" nimissä, metodi palauttaa arvon
false, muuten true.
- public double siirräTukeaVaroihin(double määrä) siirtää parametrin
verran rahaa tuet-säiliöstä varat-säiliöön. Jos siirrettävää ei ole
pyydettyä määrää, siirretään, mitä voidaan. Jos parametri on
negatiivinen, mitään siirtoja ei tehdä -- eihän varallisuutta
voi ruveta tueksi kutsumaan. Arvonaan metodi palauttaa siirretyn määrän.
- public String toString() palauttaa arvonaan selkeän
merkkijonoesityksen säätiön tilasta
Havainnollista Saatio-luokan käyttöä pienellä pääohjelmalla.
Tämän ohjelman ei tarvitse eikä ole syytä lukea mitään.
Älä turhaan yritä etsiä Saatio-luokalle vastineita todellisuudesta!
Ohjelmoi vain niin kuin "API" käskee.
(16 pistettä)
-
Selitä lyhyesti ja selkeästi käsitteet
parametri,
konstruktori,
aksessori,
kapselointi.
(a' 4 pistettä, yhteensä 16 pistettä)
- Toteuta seuraava arvauspeli vuorovaikutteisena
eli keskustelevana ohjelmana:
Aamuisin ohjelmalle syötetään ensin tasan tuhat onnenlukua
missä järjestyksessä tahansa.
Onnenluvut ovat positiivisia kokonaislukuja. Sama luku
saa esiintyä useamminkin kuin kerran.
Päivän mittaan pelaajat käyvät sitten arvaamassa lukuja.
Jos pelaaja onnistuu arvaamaan jonkin luvun, joka oli
aamulla syötettyjen lukujen joukossa, ohjelma onnittelee
pelaajaa. Jos pelaaja epäonnistuu, ohjelma esittää valittelunsa.
Ohjelman suoritus päättyy, kun arvatuksi luvuksi syötetään nolla
tai negatiivinen luku. Tällöin ohjelma tulostaa oikeiden ja väärien
arvausten määrän.
Tehokkuussyistä lukujen hakeminen taulukosta on ohjelmoitava
binäärihakua käyttäen. Saat olettaa, että kaikki
syötetyt tiedot ovat kelvollisia kokonaislukuja.
(18 pistettä)