Ohjelmointi I Tentti 12.11.2001

 

1.      Selvitä seuraavat olio-ohjelmointiin/Javaan liittyvät käsitteet lyhyesti (parilla virkkeellä):
(a) esiintymämuuttuja,
(b) staattinen metodi,
(c) arvoparametri,
(d) ylikuormitus.

2.      Mitä tiedät Javan tyyppimuunnoksista? Millaisia tyyppimuunnoksia on mahdollista tehdä? Mitä tyyppi­muunnos tarkoittaa? Missä tilanteissa tyyppimuunnoksia tehdään Java-ohjelmissa?

 

 

3.      Merkkijono x on toisen merkkijonon y alijono, jos x:n merkit löytyvät y:stä samassa järjestyksessä, mutta ei välttämättä peräkkäin. Esimerkiksi merkkijonon ”LUENTOSALI” alijonoja ovat mm. ”LENTO”, ”TOSI”, ”ESA”, ”UNI” ja ”OSA”;
sen sijaan esim. ”TULI” ja ”LASI” eivät ole, vaikka merkit löytyvätkin kohdejonosta, sillä ne eivät esiinny siinä oikeassa järjestyksessä. Kirjoita Java-metodi, joka testaa, onko merkkijono toisen merkkijonon alijono.
[Tehtäväpaperin kääntöpuolella on String-luokan kuvaus.]

 

 

4.      Kirjoita metodi, joka poistaa parametrina annetusta kokonaislukutaulukosta duplikaatit eli saman arvon toistuvat esiintymät. Tulostaulukkoon otetaan siis mukaan kukin arvo vain yhden kerran. Metodi ei saa muuttaa syötetaulukkoa ja sen tulee palauttaa tulostaulukko kutsuvaan ohjelmaan. Esimerkki:
Syöte: {2, 5, 3, 9, 2, 7, 7, 2, 4}, tulos: {2, 5, 3, 9, 7, 4}

 

 

5.      Kirjoita luokka LottoRivi, jonka kukin esiintymä edustaa tietysti lottoriviä. Lottorivi sisältää 7 erisuurta kokonaislukua väliltä 1..39. Laadi luokkaan ainakin seuraavat metodit:

- satunnaisen lottorivin generointi,
- tarkastettavan lottorivin vertaaminen oikeaan lottoriviin, ja oikeiden numeroiden
määrän palauttaminen kutsujalle,
- lottorivin palauttaminen kutsujalle merkkijonomuodossa (ns. toString() -metodi).

Satunnaisen rivin generoinnissa voit käyttää java.lang-pakkauksesta löytyvää satunnaisluku­generaattoria Math.random(), joka tuottaa kutsuttaessa aina yhden double-tyyppisen satunnaisluvun väliltä [0, 1).


Huom1. Suomen lottopelissä käytettäviä lisänumeroita ei tässä tarvitse ottaa huomioon.
Huom2. Ei ole välttämätöntä esittää lottoriviä numerojärjestyksessä.
Huom3. Voit valita lottorivin esitystavaksi joko taulukon tai vektorin; Vector-luokan
kuvaus löytyy tehtäväpaperin kääntöpuolelta.
Huom4.
Integer-luokasta löytyy staattinen metodi toString(int n), joka tuottaa n:n arvon
merkkijonomuodossa.