Ohjelmointi 1 / 2008

Demo 4 / 6.10

Tehtävät

1.
Merkkijonot: Tee ohjelma joka toimisi seuraavasti (vinkki: katso String -luokan dokumenttia):
Toistan mitä sanot, mutta en osaa sanoa l!
Anna teksti >Mitä yhteistä on hiirellä ja rotalla?
Sanoit siis: Mitä yhteistä on hiilellä ja lotalla?

2.
Merkkijonot: Tuliko edellä isot kirjaimet huomioitua? Muuta edellistä tehtävän vastausta niin, että teet funktioaliohjelman (palauttaa siis merkkijonon), jota kutsutaan seuraavasti:
String tulos = muutaKirjaimet(jono,'r','l');
Funktio muuttaa sekä isot että pienet kirjaimet (vinkki: katso Character -luokan dokumenttia). Tee tuota funktiota käyttäen ohjelma joka toimii seuraavasti:
Toittan mitä tanot, mutta en otaa tanoa t!
Anna teksti >Sisko istuu puussa!
Sanoit siis: Titko ittuu puutta!
Ohjelma saadaan kuitenkin kahden merkin vaihtamisella toimimaan kuten tehtävässä 1.
3.
Vertailu: Tee ohjelma joka kysyy kolme kokonaislukua ja tulostaa niistä suurimman ja pienimmän. Tee avuksi funktioaliohjelmat suurin(a,b,c) ja pienin(a,b,c). Millä arvoilla aliohjelmia olisi hyvä testata?
4.
Merkkijonot: Tee tarvittavat aliohjelmat, jotta seuraava pääohjelma toimisi (vinkki: indexOf):
    public static void main(String[] args) {
        String nimi = Syotto.kysy("Anna sukunimi etunimi");
        StringBuilder sb = new StringBuilder(nimi);
        poistaEkaSana(sb);
        System.out.println("Terve, etunimesi on siis " + sb);
        String sukunimi = annaEkaSana(nimi);
        System.out.println("ja sukunimesi on siis " + sukunimi);
    }
5.
Silmukat: Tee funktioaliohjelma laskeKirjaimet(jono,kirjain), joka laskee merkkijonossa olevien valittujen kirjainten lukumäärän. Testaa pääohjelmalla jossa on kutsuja tyyliin (keksi lisää testejä):
System.out.printf("%d%n",laskeKirjaimet("kissa",'s'));
System.out.printf("%d%n",laskeKirjaimet("kissa",'k'));
6.
Taulukot: Ota luennolla tehty taulukkomalli: Taulukot.java ja muuta se sellaiseksi, että siinä on aliohjelma tulostaYli(taulukko,raja), joka tulostaa taulukosta kaikki ne luvut, jotka ylittävät annetun rajan (päätä itse ja hoida kommentoinnilla, että kuuluuko raja tulostettaviin vai ei). Tee vastaava funktioaliohjelma summaYli(taulukko,raja), joka palauttaa niiden taulukon lukujen summan, joka ylittää rajan.
B1.
Tee funktioaliohjelma, joka etsii reaalilukutaulukon suurimman alkion. Voit testata tätä pääohjelmalla, jossa taulukon arvot on valmiiksi annettu.

GURU-tehtävät

G1-2
Tee ohjelma jossa on vakiona pääohjelmassa annettu reaalilukutaulukko. Taulukon alkioista piirretään kuva niin, että jokaista taulukon alkiota kuvaa pieni ympyrä. Ympyrän x-koordinaatti on taulukon indeksi ja y-koordinaatti taulukon arvo vastaavassa paikassa. Muut ympyrät piirretään mustalla värillä, mutta taulukon suurinta arvoa vastaava(t) ympyrä(t) piirretään punaisella.