Helsingin yliopisto / Tietojenkäsittelytieteen laitos / Ohjelmoinnin perusteet / Copyright © 2000 Arto Wikla.

581325-0 Ohjelmoinnin perusteet, koe 13.11.2000/AW

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

Jokainen vastaus omalle arkilleen!

  1. Vastaa lyhyesti ja täsmällisesti seuraaviin kysymyksiin:

                                                                (12 pistettä)
    
    
    

  2. Lämpötilan maksimin ja minimin rekisteröintiin käytetään laitetta MinMax. Laitteelle syötetään lämpötiloja ja siltä voidaan milloin tahansa kysyä toistaiseksi korkeinta ja toistaiseksi matalinta lämpötilaa. Kun laite otetaan käyttöön, se asettaa molemmiksi lämpötiloiksi 0.0. Laite voidaan myös myöhemmin nollata. Laitteelta voidaan kysyä, onko se alkutilassa vai voiko sen ilmoittamiin lämpötiloihin luottaa.

    Toteuta laite luokkana MinMax, jolla on konstruktorin lisäksi seuraavat aksessorit:

                                                                (12 pistettä)
    
    
    

  3. "Mitä ihmettä nuo parametrit oikein ovat ja miten int-arvo ja PikkuVarasto-olio eroavat toisistaan parametreina?", kysyy ystäväsi kuunnellessaan tarinoitasi Ohjelmoinnin perusteet -kurssilta. Ystäväsi on ohjelmoinut sen verran, että hän tuntee yksinkertaiset muuttujat, lausekkeet ja lauseet. Hän on ymmärtänyt myös metodin kutsumisen idean, mutta parametrien kohdalla tie tuntuu nousseen pystyyn. Auta ystävääsi ymmärtämään, mistä parametrien käyttämisessä on oikein kysymys, mitä hyötyä ja iloa niistä on. Laadi siis asiasta kirjallinen selitys (enimmäispituus 1 arkki). 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!
                                                                (12 pistettä)
    
    
    

  4. Suhteellisessa vaalitavassa ehdokkaalle lasketaan ns. vertailuluku (double) seuraavasti:

    Mallinna ehdokas luokkana Ehdokas, jolla on ainakin ominaisuudet nimi (String, ei-tyhjä), vaaliliitto (int, 1-10) ja äänimäärä (int, 0-). Ominaisuudet toteutetaan luokan private-kenttinä.

    Laadi luokkaa Ehdokas käyttäen ohjelma, joka ensin kyselee ja tarkistaa 903 ehdokkaan tiedot (nimi, vaaliliitto ja äänimäärä). Sitten ohjelma laskee ehdokkaiden vertailuluvut.

    Lopuksi ohjelma tulostaa valitut 85 edustajaa ja 85 varaedustajaa kaikkine tietoineen vertailukujen mukaisessa järjestyksessä. Valituiksi siis tullaan vertailulukujen perusteella ja tasatilanteissa arvotaan järjestys.

    Arvonnassa voi käyttää menettelyä:

      if (Math.random() < 0.5) 
         // ensimmäinen vaihtoehto
      else 
         // toinen vaihtoehto
    
                                                                (14 pistettä)