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!


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

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

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