581258-1 Johdatus ohjelmointiin: 1. välikoe 12.3.1999

Kirjoita jokaisen vastauspaperisi alkuun kurssin nimi ja kokeen päivämäärä sekä nimesi, syntymäaikasi ja allekirjoituksesi. Tehtävien ratkaisussa saa käyttää Lue-luokan tarjoamia välineitä. "System.out.println"-ilmauksen saa lyhentää "S.o.p".

  1. Vastaa lyhyesti ja täsmällisesti seuraaviin kysymyksiin:
                                                               (5 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:

                                                               (5 pistettä)
    

  3. Laadi vuorovaikutteinen sovellus nopeuksien laskemiseen, kun matka annetaan kilometreinä ja aika tunteina. Nopeus lasketaan kaavalla: nopeus = matka/aika.
    Ohjelma pyytää tiedot käyttäjältä ja tarkistaa tietojen järkevyyden. Ohjelmalla voi yhdellä suorituskerralla laskea useita nopeuksia.
                                                               (5 pistettä)
    

  4. Makkaratehdas valmistaa makkaraa teurasjätteestä, jauhosta ja suolasta. Kuusi kiloa makkaraa saadaan sekoittamalla 3 kiloa teurasjätettä, 2 kiloa jauhoja ja 1 kilo suolaa.

    Suunnittele luokka HerkkuMakkara makkaratehtaan toteutukseksi. Luokka tarjoaa ainakin välineet valmistusainesäiliöiden täyttämiseen ja parametrittoman metodin, joka tekee aina mahdollisimman paljon makkaraa, so. joka kutsukerralla ainakin jokin raaka-ainesäiliö tyhjenee. Arvonaan metodi palauttaa syntyneen makkaran määrän.

    Ohjelmoi luokka HerkkuMakkara. Luokan suunnittelua ei tarvitse esittää erikseen, mutta itse ohjelma on kommentoitava niin, että sen rakenne ja tehdyt ratkaisut on helppo ymmärtää.

    Kerro lyhyesti, miten testaisit luokan.

                                                               (5 pistettä)