Helsingin yliopisto
/
Tietojenkäsittelytieteen
laitos
/
Copyright © 2008 Arto Wikla.
Ohjelmoinnin perusteet, kurssikoe 15.10.2008/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!
- Pankissa on kaksi rahasäiliötä.
Toinen on omille rahoille, toinen lainaksi saaduille ja lainaksi annetuille
rahoille. Kutsutaan säiliöitä nimillä "omat-säiliö" ja "lainatase-säiliö".
Omat-säiliö ei saa olla negatiivinen. Lainatase-säiliö sitävastoin saa:
negatiivinen arvo tarkoittaa että pankki on velkaa, positiivinen että
pankille ollaan velkaa.
Ohjelmoi luokka ManiaPankki pankin toteutukseksi.
- public ManiaPankki(double omat, double lainatut) luo
ManiaPankki-olion. Säiliöiden alkupääomat annetaan parametreina.
- public double getVarat() palauttaa omat-säiliön arvon
- public double getLainat() palauttaa lainatase-säiliön arvon
- public double getTase() palauttaa pankin kokonaistilanteen, taseen,
so. säiliöiden summan
- public void talletus(double määrä) lisää rahaa omat-säiliöön
- public boolean otto(double määrä) vähentää rahaa omat-säiliöstä.
Jos yritetään ottaa enemmän kuin säilössä on, mitään ei oteta ja
metodi palauttaa arvon false. Jos otto onnistui, metodi
palauttaa arvon true.
- public boolean lainamuutos(double määrä)
yrittää lisätä parametrin arvon lainatase-säiliöön.
Parametri saa olla myös negatiivinen, jolloin siis pankki ottaa lisää lainaa.
Jos pankin tase, so. säiliöiden summa, ennen lainamuutosta
on negatiivinen, pankille ei anneta lisää lainaa. Metodi palauttaa
true jos lainamuutos onnistui, false jos lainaa ei
herunut.
- public String toString() palauttaa arvonaan selkeän
merkkijonoesityksen pankin tilasta
Havainnollista ManiaPankki-luokan käyttöä pienellä pääohjelmalla.
Tämän ohjelman ei tarvitse eikä ole syytä lukea mitään.
Älä turhaan yritä etsiä ManiaPankille vastineita todellisuudesta!
Ohjelmoi vain niin kuin "API" käskee.
(16 pistettä)
- "Olio, mikä hemmetin olio? Ja mitä ihmeen kapselointia?,
kysyy ystäväsi kuunneltuaan
tarinoitasi Ohjelmoinnin perusteet -kurssilta. Ystäväsi
on ohjelmoinut sen verran, että hän tuntee yksinkertaiset muuttujat,
lausekkeet, lauseet, metodit ja parametrit, mutta olio-ohjelmoinnista
hän ei tiedä yhtään mitään. Auta ystävääsi ymmärtämään,
mitä oliot ovat, miten niitä ohjelmoidaan ja käytetään, mitä hyötyä
ja iloa niistä voi olla.
Laadi siis asiasta kirjallinen selitys
(maksimipituus on 1 konseptiarkki). Muista että
esimerkit ja kuvat auttavat
oppimisessa. Vastauksen arvioinnissa otetaan huomioon
selostuksen ajateltu lukija. Älä siis kirjoita tarkastajalle,
joka jo osaa oliot, kirjoita tuolle ystävälle!
(16 pistettä)
- Lotto on numeroveikkaus, jossa arvotaan 7 numeroa ja 3 lisänumeroa 39
numerosta. Loton voittoluokat ovat 7 oikein, 6 ja lisänumero oikein,
6 oikein, 5 oikein ja 4 oikein.
Tee ohjelma joka ensin arpoo oikean lottorivin.
Sitten ohjelmalta voi kysellä, onko jokin lottorivi oikein. Kyselyitä
voi olla useampia. Suunnittele itse, miten ohjelman toiminta
päättyy.
Satunnaisluvun väliltä 1-39 saat arvottua vaikkapa seuraavasti:
int arvottu = (int)(39*Math.random()) + 1;
(18 pistettä)