Ohjelmointi I tenttikysymykset 14.2.2000

Arvostelussa kiinnitetään eniten huomiota ratkaisun ideoihin, syntaksiin liittyvien yksityiskohtien merkitys on paljon vähäisempi (joskaan ei merkityksetön). Jos aikapula yllättää ja sinun pitää jättää jotakin kirjoittamatta, pyri siihen, että luokkien määrittelyn kohdalla poisjäävä osa olisi metodien rungot (kirjoita metodeille tuolloin vain otsikot). Kaikista tehtävistä saa 0 -- 6 pistettä.

  1. Selvitä seuraavat olio-ohjelmointiin/Javaan liittyvät asiat lyhyesti muutamalla virkkeellä:
    1. Instanssimuuttuja.
    2. Perustyypit.
    3. Polymorfismi.
    4. Abstrakti luokka.
    5. Lausekelause.
    6. Paikallisten muuttujien alkuarvo.
  2. Tee metodi, joka saa parametrinaan 2-ulotteisen kokonaislukuja sisältävän taulukon a sekä sarakeposition j ja palauttaa tuloksenaan ne taulukon a rivit, joiden j:ssä sarakkeessa oleva luku on positiivinen. (Huomaa, että alkion a[i][j]:n ei tarvitse olla olemassa kaikille riveille i ja kyseiselle sarakepositiolle j.)
  3. Kerro, mitä tiedät Javan poikkeuksista. Mitä ne ovat? Mikä niiden rooli on Java-ohjelmoinnin kannalta? Miten ne ilmenevät ohjelmissa?
  4. Määrittele ja toteuta metodi, joka saa parametrinaan 1-ulotteisen vektorin ja kaksi kokonaislukua sekä palauttaa tuloksenaan niiden vektorissa olevien Integer- ja Float-tyyppisten lukujen määrän, jotka ovat suuruudeltaan annettujen kahden luvun välissä.
  5. Tee luokka, jolla esitetään kaikkien kirjainten esiintymismääriä (jossakin tekstissä). Tee luokkaan luonti- ja havainnointimetodeja sekä metodi, jolla voit muodostaa uuden esiintymismäärää esittävän olion nykyisen määrätiedon ja parametrina annettavan määrätiedon avulla. Tee luokaan myös metodi kaikkien esiintyvien kirjainten yhteismäärän havainnoimiseksi.