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

Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen päivämäärä sekä nimesi, henkilötunnuksesi ja allekirjoituksesi.
  1. "Mitä ihmettä nuo metodit oikein ovat?", parahtaa ystäväsi kuunnellessaan tarinoitasi Ohjelmoinnin perusteet -kurssilta. Ystäväsi on ohjelmoinut sen verran, että hän tuntee yksinkertaiset muuttujat, lausekkeet ja lauseet. "Mitä peijakkaan 'parametreja', kuka 'kutsuu' ja ketä, miksi?, hän jatkaa toivottomana. 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. Eräs viljavarastotyyppi muodostuu kahdesta viljasiilosta. Vain ensimmäinen siilo on varustettu lastauslaittein. Viljaa voidaan siirtää siilosta toiseen.

    Laadi luokka Viljavarasto viljavaraston toteutukseksi.

    (Konstruktori ja aksessorit tulkitsevat negatiiviset parametrien arvot nollaksi)

    Huom: Viljavaraston siilot toteutetaan "omin käsin", ei Pikkuvarasto-olioina!

                                                               (17 pistettä)
    

  3. Toteuta seuraava arvauspeli vuorovaikutteisena ohjelmana: Ennen pelin alkua pelinjohtaja syöttää ohjelmalle 100 eri kokonaislukua satunnaisessa järjestyksessä. Lukujen on oltava välillä 1-1000. 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 yhden luvun oikein. Pelin tulos on tarvittujen arvausten määrä. Lopuksi ohjelma tulostaa tuloksen.

    Saat olettaa, että pelinjohtaja todella syöttää 100 eri lukua ja että kaikki syötetyt luvut ovat kelvollisia kokonaislukuja. Lukujen suuruus on kuitenkin tarkistettava.

    Arvattavien lukujen hakeminen on tehokkuussyistä ohjelmoitava binäärihakua käyttäen.

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