Helsingin yliopisto / Tietojenkäsittelytieteen laitos / 581325-0 Ohjelmoinnin perusteet
Copyright © 2006 Arto Wikla. Tämän oppimateriaalin käyttö on sallittu vain yksityishenkilöille opiskelutarkoituksissa. Materiaalin käyttö muihin tarkoituksiin, kuten kaupallisilla tai muilla kursseilla, on kielletty.

6. harjoitukset 9.-13.10.2006

Aiheita: taulukoita, etsintää, järjestämistä, String-olioita taulukon alkioina

  1. Laadi yksityisiä luokkametodeja ("pääohjelman pikku apulaisia"), jotka saavat parametrina taulukko-olion, jonka tyyppi on int[]. Varaudu myös 0:n alkion mittaisiin taulukoihin. Metodi
    1. asettaa taulukon jokaisen alkion arvoksi indeksin kerrottuna kahdella; alkioiden arvoiksi tulee tulee siis 0, 2, 4, 6, ...
    2. tulostaa taulukon jokaisen alkion, jonka arvo on pariton
    3. etsii järjestämättömän taulukon alkioista suurimman ja palauttaa sen indeksin arvonaan (suurin ei ole välttämättä yksikäsitteinen, miten etsittäisiin ensimmäinen suurin, entä viimeinen?)
    4. siirtää taulukon viimeisen alkion ensimmäiseksi, ensimmäisen toiseksi, toisen kolmanneksi, jne.; taulukkoa siis "pyöräytetään ympäri" yhden alkion verran.

  2. Tee ohjelma, joka ensin kysyy syötettävien kokonaislukujen lukumäärän, sitten lukee tuon määrän lukuja taulukkoon ja lopuksi tarjoaa seuraavan palvelun: Ohjelmalle annetaan lukuja yksi kerrallaan ja ohjelma selvittää, löytyykö luku taulukosta. Etsimiseen on käytettävä binäärihakua. Muista mitä binäärihaku edellyttää taulukon järjestykseltä!

  3. Lotto on numeroveikkaus, jossa arvotaan 7 numeroa ja 3 lisänumeroa 39 numerosta. Loton voittoluokat ovat 7 oikein, 6 ja lisänumero oikein, 6 oikein, 5 oikein ja 4 oikein. Tee ohjelma joka ensin lukee oikean lottorivin, ja jolta sitten voi kysellä, onko jokin lottorivi oikein. Kyselyitä voi olla useampia. Suunnittele itse, miten ohjelman toiminta päättyy.

  4. Tee sovellus, joka tulostaa komentoriviparametrit String-vertailujen antamassa "aakkosjärjestyksessä".

  5. Vertaile peräkkäishakua ja binäärihakua järjestetystä taulukosta. Kuinka monta alkiota joudutaan tutkimaan helpoimmassa ja vaikeimmassa tapauksessa kun taulukon koko on 10, 100, 1000, 10000, 100000 alkiota? Löydätkö yleistä kaavaa vaikeimmalle tapaukselle? Osaatko arvioida, montako alkiota keskimäärin joudutaan tutkimaan?

  6. Vastaa kurssikyselyyn osoitteessa http://ilmo.cs.helsinki.fi/kurssit/servlet/Valinta. Muista myös lähettää lomake! Lähetysnäppäin on lomakkeen lopussa. Tähän kysymykseen vastataan yksilönä ja anonyymisti. Tehtävä myös rastitetaan opiskelijoittain, ei opintopiireittäin. Ja rastin saa kirjoittaa, jos on todella vastannut kyselyyn! Opiskelijaan luotetaan tässä-(kin) asiassa! Koetta koskeviin kysymyksiin ei tietenkään voi vastata, mutta kysely tehdään kuitenkin jo nyt, jotta saadaan varmistettua hyvä vastausprosentti. Vastauksilla ihan oikeasti on merkitystä laitoksen opetusta kehitettäessä!


Takaisin harjoitussivulle.