581325-0 Ohjelmoinnin perusteet, koe 9.6.2007/AW (Avoin yliopisto)

Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen päivämäärä sekä nimesi, henkilötunnuksesi ja allekirjoituksesi.

  1. "Olio, mikä hemmetin olio?", kysyy ystäväsi kuunnellessaan 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 auttavat oppimisessa. Vastauksen arvioinnissa otetaan huomioon selostuksen ajateltu lukija. Älä siis kirjoita tarkastajalle, joka jo osaa oliot, kirjoita tuolle ystävälle!
                                                                               (16 pistettä)
    
  2. Sekuntilaskuri tuntee sekunnit, minuutit ja tunteja vuorokauden verran. Laskuri voi vain edetä. Kun sekunnit ylittävät arvon 59 yhdellä, minuutit kasvavat ja sekunnit nollataan. Kun minuutit ylittävät arvon 59 yhdellä, tunnit kasvavat ja minuutit nollataan. Kun laskuri ylittää arvon 23:59:59 (23 tuntia, 59 minuuttia, 59 sekuntia), aloitetaan uudelleen arvosta 0:0:0. Laskuri siis laskee: 0:0:0, 0:0:1, ..., 0:0:59, 0:1:0, 0:1:1, 0:1:2, ..., 0:59:57, 0:59:58, 0:59:59, 1:0:0, 1:0:1,..., 23:59:58, 23:59:59, 0:0:0

    Toteuta luokka Sekuntilaskuri

    Varusta luokka metodilla toString(), jonka ansiosta olion arvo saadaan tulostettua muodossa tunnit:minuutit:sekunnit, siis esimerkiksi "14:7:53".

                                                                               (16 pistettä)
    

  3. Toteuta seuraava arvauspeli vuorovaikutteisena eli keskustelevana ohjelmana: Aamuisin ohjelmalle syötetään ensin tasan tuhat onnenlukua missä järjestyksessä milloinkin. Onnenluvut ovat positiivisia kokonaislukuja. 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.
                                                                               (18 pistettä)
    
Aurinkoista ja lämmintä kesää!