Ohjelmointi I 23.1.2002

Ohjelmistotekniikan linja

1.      Selvitä lyhyesti seuraavat olio-ohjelmointiin/Javaan liittyvät asiat muutamalla virkkeellä:

    1. Muodollinen parametri
    2. Staattinen metodi
    3. Kutsu super(...)
    4. Mutatoitumaton olio
    5. Käännösyksikkö
    6. Poikkeuksenkäsittelijä

2. Oletetaan, että ylioppilaskirjoituksissa voi saada vain arvosanoja L (laudatur), E (eximia), M (magna), C (cum laude), B (lubenter) ja A (approbatur). Tee metodi, joka saa kirjaimia L, E, M, C, B, ja A sisältävän yksiulotteisen merkkitaulukon (jotka edustavat yksittäisiä arvosanoja) ja laskee niiden perusteella yleisarvosanan, joka lausutaan edellä lueteltujen kirjainten avulla. Kirjaimet voidaan muuttaa numeroiksi niin, että L=6, E=5, ..., B=2 ja A=1, jolloin yleisarvosana on arvosanojen keskiarvo pyöristettynä kohti lähimpää arvosanaa (puolivälin kohdalla pyöristetään ylöspäin, joten esim. keskiarvosta 4.5 seuraa yleisarvosana E). Toteuta metodi, joka palauttaa yleisarvosanan (kirjaimen avulla lausuttuna). Toteuta metodi käyttäen monivalintarakennetta.

3. Kerro, mitä tiedät uudelleenkäytöstä Java-ohjelmissa. Miten uudelleenkäyttöä esiintyy Java-ohjelmissa ?

  1. 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 oikeassa järjestyksessä.

Kirjoita Java-metodi, joka testaa, onko merkkijono toisen merkkijonon alijono.

5.      Luokalla FixedIntQueue esitetään jonoja, jossa voi olla vain rajallinen määrä alkioita. Sisäisesti luokka on toteutettu esittämällä jonon alkiot esiintymä­muuttujassa int[] jono. Luokkaan liittyvät vielä esiintymämuuttujat int alku, loppu, jotka ilmoittavat, missä osassa taulukkoa jonon alkiot ovat. Ensimmäinen alkio on kohdassa jono[alku] ja viimeinen kohdassa jono[loppu]. Aina tilanne on sellainen, että alku on pienempi tai yhtä suuri kuin loppu.

Tee kyseiseen luokkaan rekursiivinen metodi, joka kääntää jonossa olevat alkiot käänteiseen järjestykseen. Miten pitäisi vielä menetellä, jotta esiintymä­muuttujien alku ja loppu arvo ei muuttuisi ?