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
- 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 sen indeksin
arvonaan
(suurin ei ole
välttämättä yksikäsitteinen, miten etsittäisiin ensimmäinen
suurin, entä viimeinen?)
- siirtää taulukon viimeisen alkion ensimmäiseksi,
ensimmäisen toiseksi, toisen kolmanneksi, jne.; taulukkoa siis
"pyöräytetään ympäri" yhden alkion verran.
- 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 lukee oikean lottorivin, ja jolta
sitten voi kysellä, onko jokin lottorivi oikein. Kyselyitä
voi olla useampia. Suunnittele itse, miten ohjelman toiminta
päättyy.
- 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ä!
- [Opintopiireille] Laatikaa 1-2 sivun mittainen
selvitys opintopiiritoiminnan onnistumisesta ja hyödyllisyydestä.
Vastauksen laadintaohje on sivulla
http://www.cs.helsinki.fi/u/wikla/Ohjelmointi/OpintopiirinItsearvio.html.
Vastaukset jätetään kirjallisina harjoitusten ohjaajalle.
- [Opintopiireihin kuulumattomille] Laadi 1-2 sivun mittainen
essee Ohjelmoinnin perusteet -kurssilla opiskelusta.
Mitä olet oppinut? Millä tavoin oppiminen tapahtui?
Mikä auttoi oppimisessa? Mikä haittasi oppimista?
Miten kurssia voisi kehittää? Essee jätetään kirjallisena
harjoitusten ohjaajalle.
Takaisin harjoitussivulle.