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

Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen päivämäärä sekä nimesi, henkilötunnuksesi ja allekirjoituksesi.
  1. "Mitä ihmettä 'kapselointi' on?", parahtaa ystäväsi kuunnellessaan tarinoitasi Ohjelmoinnin perusteet -kurssilta. Ystäväsi on ohjelmoinut sen verran, että hän tuntee muuttujat, lausekkeet, lauseet ja metodit. Jopa joitakin alkeellisia luokkia olioiden malliksi hän on vaivalloisesti onnistunut ohjelmoimaan. "Mutta mitä 'kapseloidaan' ja miksi ihmeessä?", hän kummastelee. Auta ystävääsi ymmärtämään, mistä oikein on kysymys. Laadi siis asiasta kirjallinen selitys (enimmäispituus 1 konseptiarkki). Muista että esimerkit auttavat oppimisessa. Vastauksen arvioinnissa otetaan huomioon selostuksen ajateltu lukija. Älä siis kirjoita tarkastajalle, joka jo tuntee asian, kirjoita tuolle ystävälle!
                                                                (16 pistettä)
    
  2. Bensa-asemalla on kaksi bensiinisäiliötä. Vain pääsäiliöön voidaan suoraan lisätä bensiiniä ja vain pääsäiliöstä asiakas voi tankata bensiiniä. Toinen säiliö on varastosäiliö, jota käytetään automaattisesti hyväksi, kun ensimmäisen säiliön kapasiteetti ei riitä. Laadi luokka BensaAsema bensa-aseman toteutukseksi.

                                                               (18 pistettä)
    

  3. Toteuta seuraava arvauspeli vuorovaikutteisena ohjelmana: Ennen pelin alkua pelinjohtaja syöttää ohjelmalle 100 eri kokonaislukua. satunnaisessa järjestyksessä. Tämän jälkeen pelaaja alkaa käyttää ohjelmaa. Pelaaja yrittää arvata pelinjohtajan koneeseen syöttämiä lukuja. Peli päättyy, kun pelaaja on onnistunut arvaamaan kolme eri lukua. Pelin tulos on tarvittujen arvausten määrä, siis vähintään kolme. Lopuksi ohjelma tulostaa tuloksen.

    Saat olettaa, että pelinjohtaja todella syöttää 100 eri lukua. Arvattavien lukujen hakeminen on tehokkuussyistä ohjelmoitava binäärihakua käyttäen.

                                                               (16 pistettä)
    
Aurinkoista ja lämmintä kesää!