Helsingin yliopisto
/
Tietojenkäsittelytieteen
laitos
/
Ohjelmoinnin perusteet
Copyright © 2009 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 12.-16.10.2009
Aiheita:
taulukoita, etsintää, järjestämistä,
String-olioita taulukon alkioina
-
-
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
- asettaa taulukon jokaisen alkion arvoksi
indeksin kerrottuna kahdella; alkioiden arvoiksi tulee
tulee siis 0, 2, 4, 6, ...
- tulostaa taulukon jokaisen alkion, jonka arvo on pariton
- etsii järjestämättömän taulukon alkioista suurimman ja palauttaa
arvonaan tuon alkion indeksin
(suurin ei ole
välttämättä yksikäsitteinen, miten etsittäisiin ensimmäisen
suurimman indeksi, entä viimeisimmän?)
- siirtää taulukon viimeisen alkion ensimmäiseksi,
ensimmäisen toiseksi, toisen kolmanneksi, jne.; taulukkoa siis
"pyöräytetään ympäri" yhden alkion verran.
- Laadi yksityisiä luokkametodeja ("pääohjelman pikku apulaisia"),
jotka saavat parametrina kokonaislukumatriisin, jonka tyyppi
on int[][].
Varaudu myös 0:n alkion kokoisiin taulukoihin.
Metodi
- asettaa matriisin jokaisen alkion arvoksi indeksien tulon
(esimerkiksi alkio, jonka indeksit ovat [2][4] saa arvokseen 8)
- etsii matriisin alkoista pienimmän ja palauttaa sen
arvonaan; jos matriisi sisältää nolla alkiota, metodi
palauttaa arvon nolla
- selvittää, löytyykö parametrina annettu luku matriisista;
jos löytyy, metodi palauttaa arvon true, muuten false
- 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ä!
- 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 arpoo oikean lottorivin.
Sitten ohjelmalta voi kysellä, onko jokin lottorivi oikein. Kyselyitä
voi olla useampia. Suunnittele itse, miten ohjelman toiminta
päättyy.
Satunnaisluvun väliltä 1-39 saat arvottua vaikkapa seuraavasti:
int arvottu = (int)(39*Math.random()) + 1;
- Tee sovellus, joka tulostaa komentoriviparametrit
String-vertailujen antamassa "aakkosjärjestyksessä".
- 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?
- 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.