Ohjelmointi Tunnilla 1 (5) 13.10.2014. Viikko 7 tuntitehtäviä: metodien tekeminen Javalla



Samankaltaiset tiedostot
Metodien tekeminen Javalla

Taulukoiden käsittely Javalla

Metodien tekeminen Javalla

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Listarakenne (ArrayList-luokka)

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Tässä tehtävässä käsittelet metodeja, listoja sekä alkulukuja (englanniksi prime ).

Ohjelmoinnin perusteet Y Python

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

Java-kielen perusteita

Mikä yhteyssuhde on?

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Merkkijonon tutkiminen matches-metodilla

Ohjelmoinnin jatkokurssi, kurssikoe

Java-kielen perusteet

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Luokan muodostimet (Constructors)

Ohjelmoinnin perusteet Y Python

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Ohjelmoinnin perusteet Y Python

Algoritmit 1. Demot Timo Männikkö

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Taulukot. Taulukon käsittely. Tämän osan sisältö. Esimerkki. Taulukon esittely ja luonti. Taulukon alustaminen. Taulukon koko

58131 Tietorakenteet ja algoritmit (syksy 2015)

Ohjelmoinnin perusteet, kurssikoe

Javan perusteita. Janne Käki

Merkkien ja merkkijonojen käsittelyä Javalla

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Tietokannat II -kurssin harjoitustyö

Interaktiivinen tarinankerronta

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

Java-kielen perusteet

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Harjoitus 2 (viikko 45)

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

YHTEYSSUHDE (assosiation)

ITKP102 Ohjelmointi 1 (6 op)

Java-kielen perusteita

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Ohjelmoinnin perusteet Y Python

Sisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2

Ohjelmointi Palautettavat 10 1 (5) OPPIMISTEHTÄVÄT 10 (opetusviikko 13) merkkijonolista, oliolista

Luokan sisällä on lista

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

1 Tehtävän kuvaus ja analysointi

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Java kahdessa tunnissa. Jyry Suvilehto

Maahan on pudonnut omenoita, ja Uolevi aikoo poimia niitä. Tiedät jokaisesta omenasta, kuinka painava se on.

7. Näytölle tulostaminen 7.1

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Mitä poikkeuskäsittely tarkoittaa?

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Tietokannat II -kurssin harjoitustyö

Ohjelmoinnin perusteet Y Python

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Taulukot. Jukka Harju, Jukka Juslin

ITKP102 Ohjelmointi 1 (6 op)

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

ITKP102 Ohjelmointi 1 (6 op)

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä.

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Sähköisen äänestyksen pilotti

TyontekijaOhjelma. +main() (käyttää) + = public - = private

Algoritmit 1. Demot Timo Männikkö

Rajapinta (interface)

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Ohjelmassa on käytettävä funktiota laskeparkkimaksu laskemaan kunkin asiakkaan maksu. Funktio floor pyöristää luvun lähimmäksi kokonaisluvuksi.

Kortinhaltijat joilla on maksukeskeytys Maksuryhmään liitettyjen kortinhaltijoiden lukumäärä, joiden maksut ovat tilapäisesti keskeytetty.

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Sisältö Johdanto. Tiedostojen lukeminen. Tiedostojen kirjoittaminen. 26.2

Lista luokan sisällä

8. Näppäimistöltä lukeminen 8.1

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

17. Javan omat luokat 17.1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet (Java)

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmoinnin perusteet Y Python

Olio-ohjelmointi Javalla

Tietorakenteet (syksy 2013)

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Ohjelmoinnin perusteet, 1. välikoe

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Transkriptio:

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