Ohjelmointi I                                            Tentti 22.1.2001

 

 


HUOM!!!  Kirjoita kunkin tehtävän vastaus eri paperille, ja kirjoita nimesi joka paperiin.

 

 

 

1.      Selvitä seuraavien Javan avainsanojen merkitys lyhyesti (1-2 virkkeellä):
     (a) private                                     (e) continue
     (b) static                                        (f) default
     (c) this                                                                 (g) long
     (d) void                                          (h) import

 

 

2.      Kerro, mitä tiedät Javan poikkeuksista. Mitä ne ovat? Mikä niiden rooli on Java-ohjel­moin­nin kannalta? Miten ne ilmenevät 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.      Kokonaislukutaulukon int[] t alkiot halutaan partitioida (= jakaa) kahteen osaan parametrin x suhteen siten, että taulukon alkuun sijoitetaan x:ää pienemmät arvot, ja loppuun suuremmat/yhtäsuuret arvot. Kirjoita partitiointimetodi Javalla. Partitioinnin tulos on siis seuraavan kuvan mukainen:

 

t      < x                                                            ³ x

 

 

 

5.      Matemaattinen joukko on sellainen alkiokokoelma, jossa kukin alkio esiintyy vain kertaalleen. Joukko-operaatioita ovat mm.

     - tyhjän joukon luonti,
     - joukon tyhjyystestaus,
     - alkion lisäys joukkoon,
     - kahden joukon unionin määrääminen (tulos on joukko, joka sisältää molempien alkiot,
        mutta yhteiset vain kertaalleen)

Toteuta Joukko-luokka ja siinä em. operaatiot. Joukon alkiot ovat tyyppiä Object, ja alkioiden yhtäläisyyttä verrataan operaattorilla ’==’. Joukon esitystapana voit käyttää esimerkiksi Vector-luokkaa (ks. tehtäväpaperin kääntöpuoli).