5. HelloWorld-ohjelma 5.1

Samankaltaiset tiedostot
5. HelloWorld-ohjelma 5.1

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

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

Sisällys. 15. Lohkot. Lohkot. Lohkot

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3

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

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

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

4. Lausekielinen ohjelmointi 4.1

14. Hyvä ohjelmointitapa 14.1

13. Hyvä ohjelmointitapa (osa 1) 13.1

1. Omat operaatiot 1.1

Ohjelmoinnin perusteet, syksy 2006

12. Javan toistorakenteet 12.1

Harjoitus 5 (viikko 41)

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

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

Harjoitus 5 (viikko 48)

4. Lausekielinen ohjelmointi 4.1

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

Sisällys. 16. Lohkot. Lohkot. Lohkot

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

12. Javan toistorakenteet 12.1

7. Näytölle tulostaminen 7.1

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

Harjoitus 2 (viikko 45)

Pakkauksen kokoaminen

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

Java-kielen perusteet

Pakkauksen kokoaminen

19. Olio-ohjelmointia Javalla 19.1

MITÄ JAVASCRIPT ON?...3

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

Luokat ja oliot. Ville Sundberg

11. Javan toistorakenteet 11.1

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

Harjoitus 6 (viikko 42)

Harjoitus 4 (viikko 47)

Harjoitus 5 (viikko 41)

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

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

Java-kielen perusteita

9. Periytyminen Javassa 9.1

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

Ohjelmointi 2 / 2010 Välikoe / 26.3

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

Harjoitus 3 (viikko 39)

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

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

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.

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

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

Toinen harjoitustyö. ASCII-grafiikkaa 2017

11. Javan valintarakenteet 11.1

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

Ohjelmointi 1. Kumppanit

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

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: {

11. Javan valintarakenteet 11.1

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

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Pedacode Pikaopas. Tietokantaa hyödyntävän sovelluksen luominen

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

Pedacode Pikaopas. Web Service asiakasohjelman luominen

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

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

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Ohjelmoinnin perusteet Y Python

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

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Java-kielen perusteet

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Olio-ohjelmointi Javalla

ITKP102 Ohjelmointi 1 (6 op)

Olio-ohjelmointi Virhetilanteiden käsittely

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Kääntäjän virheilmoituksia

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

15. Ohjelmoinnin tekniikkaa 15.1

14. Poikkeukset 14.1

1. OPINTOJAKSON TAVOITTEET, SISÄLTÖ JA ESITIEDOT SUORITUSTAPA... 4

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

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

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Harjoitus 6 (viikko 42)

Pedacode Pikaopas. Web-sovelluksen luominen

Oliot viestivät metodeja kutsuen

ITKP102 Ohjelmointi 1 (6 op)

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Ohjelmoinnin perusteet Y Python

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

14. Poikkeukset 14.1

20. Javan omat luokat 20.1

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

13. Loogiset operaatiot 13.1

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

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Transkriptio:

5. HelloWorld-ohjelma 5.1

Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lähdekoodi /* * Laki-kurssin ensimmäinen Java-ohjelma. * Jorma Laurikkala, Tampereen yliopisto. */ public class HelloWorld { public static void main(string[] args) { // Tulostetaan näytölle Hello World -teksti. System.out.println("Hello World!"); } } 5.3

Lähdekoodin analyysi Java aito on oliopohjainen kieli suoritettava lähdekoodi sijoitetaan aina luokkaan (class). HelloWorld-luokan määrittely: public class HelloWorld { } Luokka koostuu otsikosta ja kootusta lauseesta, jonka sisällä ovat luokkaan liittyvä osuu ohjelmasta. Ongelma: Ohjelmoinnin perusideoita voi oppia ilman olioajattelua! Ratkaisu: Jätetään luokkien ja olioiden käsittely myöhemmäksi ja hyväksytään, että koodissa on jonkin verran magiaa. 5.4

Lähdekoodin analyysi Suoritettavassa Java-luokassa on main-operaatio (pääohjelma), joka määritellään aina samalla tavalla: public static void main(string[] args) { } Myös operaatioilla on otsikko ja runko. Rungon sisään kootaan operaatioon kuuluvat lauseet. Lykätään operaationkin analyysi myöhemmäksi ja kirjoitetaan toistaiseksi koodi pääohjelman sisään. Ohjelman varsinainen toiminnallisuus on lauseessa System.out.println("Hello World!"); joka tulostaa näytölle tekstin Hello World. 5.5

Lähdekoodin analyysi Java-kielen System.out.println-operaatio vastaa vuokaavioissa käytettyä tulosta-operaatiota. Kahdella kauttamerkillä (//) alkavat rivit ovat myös Javassa kommentteja. Laajempia kommentteja (niin sanotut lohkokommentit) on sujuvampaa kirjoittaa aloittamalla kommentti kauttamerkillä ja asteriskilla (/*) ja lopettamalla asteriskilla ja kauttamerkillä (*/). /* */ -tyylisiä kommentteja ei saa laittaa sisäkkäin. 5.6

Lähdekoodin analyysi /* * Laki-kurssin ensimmäinen Java-ohjelma. * Jorma Laurikkala, Tampereen yliopisto. */ public class HelloWorld { public static void main(string[] args) { // Tulostetaan näytölle Hello World -teksti. System.out.println("Hello World!"); } } Runkojen rivejä sisennetään välilyönneillä siten, että rivit alkavat aina samalta tasolta. Koodi alkaa tiedoston vasemmasta reunasta. Lähdekoodin alussa kerrotaan kommentilla mitä ohjelma tekee. Ohjelman ja mainoperaation rungot suljetaan aaltosulkeiden sisään kootuksi lauseeksi. Rungot sisennetään aina, jotta ohjelman osat erottuvat toisistaan. Jokainen sisennyksen taso on saman syvyinen. (Ohessa on käytetty kolmea välilyöntiä.) 5.7

Lähdekoodi tekstitiedostoon Kirjoitetaan HelloWorld-ohjelman lähdekoodi esimerkiksi Notepad-editorilla ja tallennetaan koodi HelloWorld.javanimiseen tiedostoon. Java-lähdekoodia sisältävä tiedosto: Nimetään ohjelman (eli luokan) nimen mukaan. Tunnistetaan java-päätteen avulla. Huomaa isot alkukirjaimet sekä ohjelman että tiedoston nimessä: Java-kielessä isot ja pienet kirjaimet eivät ole sama asia! 5.8

Lähdekoodin kääntäminen tavukoodiksi Avataan komentotulkki (command prompt). Kurssin kotisivulla tarkempia tietoja komentotulkin käytöstä. Siirrytään cd-komennolla hakemistoon, jossa lähdekooditiedosto sijaitsee. Kirjoitetaan komentotulkissa javac HelloWorld.java ja painetaan Enter-näppäintä. Mikäli kääntäminen onnistui, hakemistoon on ilmestynyt tavukooditiedosto HelloWorld.class class-tiedostopääte on varattu tavukoodille. 5.9

Lähdekoodin kääntäminen tavukoodiksi Kielioppivirhe tuottaa enemmän tai vähemmän selkeän virheilmoituksen. Tutki tarkkaan ilmoitettu rivi. Jos virhe ei ole rivillä, tarkista koko koodi. Muista aina tallentaa korjattu koodi; kääntäjä lukee lähdekoodin tiedostosta, ei editorista. On myös mahdollista, että kääntäminen ei onnistu vaikka koodi on kirjoitettu oikein! Tällöin on usein kyse puutteellisista ympäristöasetuksista. Tarkempia tietoja löytyy kurssisivuilta. 5.10

Tavukoodin suorittaminen Kirjoita komentotulkissa java HelloWorld ja paina Enternäppäintä. Komento on annettava hakemistossa, jossa tavukooditiedosto sijaitsee. Tulkille annetaan ohjelman nimi HelloWorld tavukooditiedoston nimen asemasta. Jos tulkille tarjoaa class-päätteistä tiedostoa, saa luultavasti ilmoituksen Exception in thread "main" java.lang.noclassdeffounderror: HelloWorld/class tai Error: Could not find or load main class HelloWorld.class. 5.11

Tavukoodin suorittaminen Virheelliset ympäristöasetukset voivat estää myös Javatulkin käytön. javac- ja java-ohjelmat löytyvät Oraclen (aiemmin Sunin) Java Development Kitistä (JDK) Ilmaisohjelmisto saatavilla Oraclen sivuilta. Usein tietokoneilla valmiiksi asennettuna. Kurssilla tarvitaan Javan versio 1.7.0 tai uudempi. Katso kurssisivujen Ohjelmointivälineitä-kohta, jossa muun muassa linkki JDK-asennukseen ja ohjeita. 5.12

HelloWorld-kertaus HelloWorld.java lähdekoodi tavukoodi HelloWorld.class tavukoodi konekieli Käännös javac-ohjelmalla: javac HelloWorld.java Tulkinta java-ohjelmalla: java HelloWorld Suoritus: Hello World! 5.13

Kielioppivirheiden korjaaminen /* * Laki-kurssin ensimmäinen Java-ohjelma. * Jorma Laurikkala, Tampereen yliopisto. */ public class HelloWorld { public static void main(string[] args) { // Tulostetaan näytölle Hello World -teksti. System.out.println("Hello World!"); } } Kielioppivirhe: String-tunnus alkaa pienellä kirjaimella. Kääntäjän virheilmoitus: HelloWorld.java:6: cannot find symbol symbol : class string location: class HelloWorld public static void main(string[] args) { ^ Java-kääntäjä (javac) antaa kielioppivirheestä ilmoituksen. Virhe on kääntäjän antamalla rivillä tai sen lähistöllä. Korjattu koodi tallennetaan ja käännetään uudelleen. 5.14

Suorituksen paljastamat virheet Java-ohjelman ajonaikainen virhe tapahtuu tavukoodia tulkilla (java) suoritettaessa. Ohjelmaa pysähtyy (eli kaatuu ) ajonaikaisen virheen seurauksena. Ajonaikainen virhe on seurausta virheestä ohjelman logiikassa. Usein looginen virhe ei pysäytä ohjelmaa vaan ohjelma ei vain toimi ajatellulla tavalla. Ohjelman toimintaa voidaan tarvittaessa seurata tulostuslauseiden avulla. 5.15

Java-ohjelman kehitysprosessi karkealla tasolla Alku Kirjoita lähdekoodi editorilla Käännä lähdekoodi Lisää koodiin tulostuslauseita Korjaa lähdekoodia editorilla kyllä ei Vaikeasti tunnistettava virhe? kyllä Tuliko käännösvirheitä? ei Suorita tavukoodi tulkilla Loppu kyllä Toimiko ohjelma kuten ajateltiin? ei kyllä Tuliko ajonaikaisiavirheitä? ei 5.16