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

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

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

12. Näppäimistöltä lukeminen 12.1

Metodien tekeminen Javalla

4. Luokan testaus ja käyttö olion kautta 4.1

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

5. HelloWorld-ohjelma 5.1

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

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

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

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

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Pakkauksen kokoaminen

14. Poikkeukset 14.1

14. Poikkeukset 14.1

Java-kielen perusteita

17. Javan omat luokat 17.1

Pakkauksen kokoaminen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

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

5. HelloWorld-ohjelma 5.1

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

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

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

Poikkeustenkäsittely

17. Javan omat luokat 17.1

7. Näytölle tulostaminen 7.1

Taulukoiden käsittely Javalla

20. Javan omat luokat 20.1

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

1. Omat operaatiot 1.1

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.

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

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Olio-ohjelmointi Javalla

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 )

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

1 Tehtävän kuvaus ja analysointi

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

2. Olio-ohjelmoinista lyhyesti 2.1

11. Javan valintarakenteet 11.1

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

Mikä yhteyssuhde on?

Tietokannat II -kurssin harjoitustyö

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia

Listarakenne (ArrayList-luokka)

Harjoitus 3 (viikko 39)

Metodien tekeminen Javalla

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

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

11. Javan valintarakenteet 11.1

Ohjelmoinnin jatkokurssi, kurssikoe

public static void main (String [] args)

Ohjelmoinnin perusteet, kurssikoe

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Rajapinta (interface)

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Java-kielen perusteet

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

12. Javan toistorakenteet 12.1

7. Oliot ja viitteet 7.1

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

Harjoitus 5 (viikko 48)

Java-kielen perusteita

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

11. Javan toistorakenteet 11.1

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

Ohjelmointityö 3. Mikko Laamanen

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

12. Javan toistorakenteet 12.1

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

4. Olio-ohjelmoinista lyhyesti 4.1

1. Olio-ohjelmointi 1.1

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

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus

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

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Periytyminen (inheritance)

16. Javan omat luokat 16.1

7/20: Paketti kasassa ensimmäistä kertaa

Olio-ohjelmointi Virhetilanteiden käsittely

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Ohjelmointi 2 / 2010 Välikoe / 26.3

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Luokkakirjastot. esiintymämetodien käytöstä:

Mitä poikkeuskäsittely tarkoittaa?

9. Periytyminen Javassa 9.1

Luokat ja oliot. Ville Sundberg

Rinnakkaisohjelmointi, Syksy 2006

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap

Sisältö. 22. Taulukot. Yleistä. Yleistä

Oliot viestivät metodeja kutsuen

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

YHTEYSSUHDE (assosiation)

Ohjelmointi 1 Taulukot ja merkkijonot

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

Ohjelmoinnin perusteet Y Python

Sisältö. 2. Taulukot. Yleistä. Yleistä

Transkriptio:

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

Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2

Yleistä Näppäimistöltä annettujen arvojen (syötteiden) lukeminen on periaatteessa helppoa: Lukuoperaation kohdatessaan ohjelman jää odottamaan käyttäjän syötettä. Näppäimistöltä annettu syöte lähetetään ohjelmalle Enternäppäintä painamalla. Ohjelman suoritus jatkuu syötteen lähetyksen jälkeen. Ongelma: lukuoperaatio odottaa saavansa tietyn tyyppisen arvon, mutta ohjelman käyttäjä voi antaa syötteeksi jotain muuta tyyppiä olevan arvon. Esimerkiksi ollaan lukemassa kokonaislukua ja käyttäjä syöttää syystä tai toisesta ohjelmalle liukuluvun. 8.3

Yleistä Jos lukuoperaatio ei pysty muuttamaan syötettä halutun tyyppiseksi, tapahtuu ajonaikainen virhe (runtime error). Ajonaikainen virhe pysäyttää ohjelman suorituksen, ellei siihen ole varauduttu lukuoperaation yhteydessä. Lisävaikeuksia aiheuttaa itse Java-kieli, jossa tietojen vakavampi lukeminen näppäimistöltä vaatii olioohjelmointia ja ajonaikaisten virheiden käsittelyä. Laki 1 ja laki 2 -kursseilla asiat pyritään pitämään yksinkertaisina ja syötteiden lukemiseen käytetään pääasiassa omatekoista In-luokkaa, jonka operaatioihin virheidenkäsittely on koodattu valmiiksi. 8.4

In-luokka Luokka sisältää operaatiot: readint() readdouble() readstring() readchar() int-tyyppisen kokonaisluvun lukemiseen double-tyyppisen liukuluvun lukemiseen merkkijonon (String) lukemiseen ja merkin (char) lukemiseen. Nämä operaatiot eivät luovuta helpolla: lukemista jatketaan kunnes on saatu kelvollinen syöte. Luokka löytyy kurssin kotisivuilta. 8.5

In-luokka Operaatioita kutsutaan pistenotaatiolla, joka on tuttu jo tulostamisen yhteydessä. Lukuoperaation palauttama arvo sijoitetaan usein muuttujaan, jotta arvoa voidaan käyttää myöhemmin. Muuttujan ja operaation tyyppien on oltava yhteensopivia. // Muuntaja-ohjelma löytyy kurssin kotisivuilta. double jaardit; // Luetaan käyttäjältä syöte ja tallennetaan se muuttujaan. jaardit = In.readDouble(); 8.6

In-luokka, käännös ja tulkinta In-luokka on käännettävä yhdessä oman ohjelman (luokan) kanssa. Tämä on tehtävissä eri tavoin. Helpointa on kopioida luokka samaan hakemistoon kuin oman ohjelma, jolloin käännettäessä In-luokka kääntyy ilman lisätoimia. Esimerkki: javac Muuntaja.java Näin käännetty ohjelma on ajettavissa tutulla komennolla: java Muuntaja In-luokan voi ottaa käyttöön ohjelmaa käännettäessä ja ajettaessa myös jostakin muusta hakemistosta. 8.7

In-luokka, käännös ja tulkinta Oletetaan esimerkiksi, että In-luokan lähdekoodi löytyy Windows-käyttöjärjestelmässä Muuntaja-ohjelman sisältävän hakemiston ylihakemistosta. Tällöin ohjelma voidaan kääntää vaihtoehtoisesti komennoilla: javac Muuntaja.java..\In.java (Linux ja Mac: javac Muuntaja.java../In.java) tai javac -sourcepath.. Muuntaja.java ja suorittaa komennolla: java -classpath.;.. Muuntaja (Linux ja Mac: java -classpath.:.. Muuntaja) 8.8

Scanner-luokka Javan oma luokka syötteiden lukuun. In-luokka hyödyntää Scannerluokkaa. Otettava käyttöön importlauseella. Sujuva käyttö edellyttää olioohjelmoinnin tuntemusta. Omassa ohjelmassa syötevirtaan tulee liittää vain yksi Scanner-olio. Try-catch-lausetta ei tarvita peruskäytössä. // Otetaan Scanner-luokka käyttöön import-lauseella. import java.util.*; public class ScannerDemo { public static void main(string[] args) { // Liitetään Scanner-olio oletussyötevirtaan. Scanner lukija = new Scanner(System.in); // Yritetään lukea kokonaisluku. try { System.out.print("Anna luku: "); int luku = lukija.nextint(); } // Jos tapahtui virhe, niin se "siepataan" tänne. catch (Exception e) { System.out.println("Tapahtui virhe: " + e); } // Suljetaan. lukija.close(); } } 8.9