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ä.


  1. 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.

    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ä)
    

  2. Selitä lyhyesti ja selkeästi käsitteet parametri, konstruktori, aksessori, kapselointi.
                                                                     (a' 4 pistettä, yhteensä 16 pistettä)
    
    

  3. 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ä)