1 (5) Viikko 7 tuntitehtäviä: metodien tekeminen Javalla 1. Tee ohjelma (kalvoesimerkkinä), joka kysyy asunnon myyntihinnan ja laskee asunnon myynnistä maksettavan välityspalkkion. Välityspalkkion on 3,44% myyntihinnasta, mutta minimissään 2214 euroa. Välityspalkkioiden laskemista jatketaan niin kauan kuin käyttäjä antaa myyntihinnaksi > 0. Anna asunnon myyntihinta: 100000 Myyntipalkkio on 3400,00 Anna asunnon myyntihinta: 15000 Myyntipalkkio on 2214,00 Anna asunnon myyntihinta: 0 double kysymyyntihinta() metodi kysyy ja palauttaa asunnon myyntihinnan double laskepalkkio(double myyntihinta) metodi laskee ja palauttaa asunnon myyntipalkkion parametrina on asunnon myyntihinta 2. Tee ohjelma (kalvoesimerkkinä), jolla voidaan valita, näytetäänkö annettu teksti suurilla vai pienillä kirjaimilla. Kirjoita teksti: AAMU valkeni sateisena Näytetäänkö suurella vai pienellä: suurella Teksti on suurella AAMU VALKENI SATEISENA String kysyteksti(string kehote) metodi kysyy merkkijonoja palauttaa merkkijonon parametrina annetaan teksti, mikä käyttäjälle näytetään tietoja pyydettäessä void naytateksti(string teksti, String nayttaminen) metodi näyttää annetun merkkijono suurella tai pienellä ensimmäinen parametri on näytettävä merkkijono toinen parametri kertoo, näytetäänkö teksti suurella vai pienellä
2 (5) 3. Tee ohjelma, joka kysyy ajan minuutteina ja näyttää sen tunti ja minuutti muodossa. Anna aika minuutteina: 183 Tunteina ja minuutteina 3:03 Lisää ohjelmaan kolme metodia int kysyminuutit() metodi kysyy ja palauttaa ajan minuutteina (esim. 183) String muutaajaksi(int minuutit) metodi muuntaa minuutteina olevan kellonajan tunnit ja minuutit muodossa olevaan ja palauttaa kellonajan muodossa hh:mm (esim. 3:03) parametrina on aika minuutteina void naytakellonaika(string kellonaika) metodi näyttää kellonajan muodossa hh:mm parametrina on kellonaika 4. Tee ohjelma, joka kysyy syntymävuoden ja sen perusteella selvittää, kuinka paljon eläkeikä nousee nykyiseen verrattuna. Uuden mukaan jos syntymävuosi on pienempi kuin 1955, eläkeikä pysyy ennallaan eli on 63 vuotta. jos syntymävuosi on suurempi kuin 1961, eläkeikä on 65 vuotta. jos syntymävuosi on 1955-1961, eläkeikä on 3 kuukautta jokaista vuotta kohden vuodesta 1954 lähtien. Anna syntymävuotesi: 1970 Nousu on 24 kuukautta Toinen esimerkki ohjelmasta Anna syntymävuotesi: 1954 Nousu on 0 kuukautta Kolmas esimerkki ohjelmasta Anna syntymävuotesi: 1960 Nousu on 18 kuukautta Tee ohjelmaan kaksi metodia int kysysyntymavuosi() metodi kysyy ja palauttaa syntymävuoden int selvitanousu(int syntymavuosi) metodi selvittää, paljonko eläkeikä nousee parametrina on syntymävuosi metodi palauttaa, montako kuukautta eläkeikä nousee
3 (5) 5. Tee ohjelma (tehty viikolla 3), joka kysyy alkometriin puhalletun lukeman. Ohjelma kertoo lukeman perusteella, onko kyse rattijuopumuksesta tai törkeästä rattijuopumuksesta. Rattijuopumuksen raja on 0,5 promillea ja törkeän rattijuopumuksen raja on 1,2 promillea. double kysylukema() metodi kysyy ja palauttaa alkometrin lukeman void naytatulos(double lukema) metodi näyttää lukeman perusteella tuloksen parametrina on alkometrin lukema 6. Tee ohjelma (tehty viikolla 4), joka laskee verkkokaupan tilauksen postituskulut. Ohjelma kysyy jokaisen tuotteen painon kiloina. Kun painoksi annetaan -1, ohjelma laskee yhteenlaskettujen painojen perusteella postituskulun seuraavalla periaatteella Paino Postituskulu alle 20 kg 8,10 euroa 20-100 kg 14,00 euroa yli 100 kg 19,00 euroa Anna tuotteen paino kiloina (-1 lopettaa): 10 Anna tuotteen paino kiloina (-1 lopettaa): 13 Anna tuotteen paino kiloina (-1 lopettaa): -1 Yhteispaino on 23.0 kiloa. Postituskulu on 14.0 euroa. double kysyjalaskepainot() metodi kysyy tuotteen painoja kunnes annetaan -1 metodi palauttaa painojen yhteissumman void naytapostituskulut(double yhteispaino) metodi näyttää yhteispainon ja postituskulut parametrina on annettujen tuotteiden yhteispaino
4 (5) 7. Tee ohjelma, joka kysyy kurssilaisten nimiä (sukunimi muutetaan suurella kirjoitetuksi), kunnes sukunimeksi nimeksi annetaan LOPPU. Tämän jälkeen ohjelma listaa nimet aakkosjärjestyksessä. Anna suku- ja etunimi: Majava Matti Anna suku- ja etunimi: Laakso Liisa Anna suku- ja etunimi: LOPPU Kurssilaisten nimet ovat LAAKSO Liisa MAJAVA Matti Tee ohjelmaan kaksi metodia int kysykurssilaiset(string [] kurssilaiset, final int MAX) metodi kysyy kurssilaisten nimet, kunnes sukunimeksi annetaan LOPPU. Metodi muuttaa sukunimen suurella kirjoitetuksi ensimmäinen parametri on taulukko, mihin nimet talletetaan toinen parametri on taulukon maksimikoko metodi palauttaa annettujen nimien lukumäärän void naytakurssilaiset(string [] kurssilaiset, int lkm) metodi näyttää kurssilaisten nimet aakkosjärjestyksessä ensimmäinen parametri on taulukko, missä on kurssilaisten nimet toinen parametri on taulukossa olevien nimien lukumäärä 8. Tee ohjelma (tehty viikolla 6), joka kysyy perjantaiarvontaan osallistuvien nimet (max. 15). Nimien antaminen lopetetaan, kun nimeksi annetaan tyhjä merkkijono tai nimiä on annettu maksimimäärä. Tämän jälkeen tehdään arvonta osallistujien kesken ja näytetään, kuka voitti arvonnan. Voittaja arvotaan int voittaja = (int)(math.random() * lkm); // lkm on osallistujien lukumäärä Anna osallistujan etunimi: Matti Anna osallistujan etunimi: Pekka Anna osallistujan etunimi: Liisa Anna osallistujan etunimi: Leena Anna osallistujan etunimi: Kaija Anna osallistujan etunimi: Erkki Anna osallistujan etunimi: Voittaja on Leena int kysyosallistujat(string [] osallistujat, final int MAX) metodi kysyy osallistujien nimet ensimmäinen parametri on taulukko, mihin nimet talletetaan toinen parametri on taulukon maksimikoko metodi palauttaa arvontaan osallistuvien lukumäärän
5 (5) void naytavoittaja(string [] osallistujat, int lkm) metodi näyttää voittajan nimen ensimmäinen parametri on taulukko, missä on arvontaan osallistuvien nimet toinen parametri on arvontaan osallistuvien lukumäärä 9. Tee ohjelma (kalvoesimerkkinä), joka kysyy käyttäjän lottorivin. Aluksi ohjelma kysyy, montako numeroa lottorivissä on. Lottorivissä voi olla numeroita 7-10. Sen jälkeen ohjelmaa pyytää käyttäjältä hänen lottonumeronsa. Lopuksi ohjelma näyttää käyttäjän antamat lottonumerot nousevassa järjestyksessä. Taulukon lajittelu voidaan tehdä käskyllä Arrays.sort(lottonumerot, 0, lkm); Ja ohjelman alkuun lisätään import java.util.arrays; Montako numeroa annat (7-10): 8 Anna 1 lottonumerosi: 8 Anna 2 lottonumerosi: 7 Anna 3 lottonumerosi: 6 Anna 4 lottonumerosi: 5 Anna 5 lottonumerosi: 4 Anna 6 lottonumerosi: 3 Anna 7 lottonumerosi: 2 Anna 8 lottonumerosi: 1 Rivisi oli 1 2 3 4 5 6 7 8 : public void kysylotto(int [] numerot, int lkm) metodi kysyy lottonumerot ensimmäinen parametri on taulukko, mihin numerot kysytään toinen parametri kertoo, montako numeroa kysytään void naytalotto(int [] numerot, int lkm) metodi näyttää annetun lottorivin ensimmäinen parametri on taulukko, missä lottonumerot on toinen parametri kertoo, montako numeroa taulukossa on