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

Samankaltaiset tiedostot
Java-kielen perusteita

Java-kielen perusteita

Java-kielen perusteet

Java-kielen perusteet

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

Ehto- ja toistolauseet

13. Loogiset operaatiot 13.1

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Python-ohjelmointi Harjoitus 2

Ohjelmointiharjoituksia Arduino-ympäristössä

13. Loogiset operaatiot 13.1

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Ehto- ja toistolauseet

Ohjelmoinnin perusteet Y Python

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

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

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

Ohjelmoinnin perusteet Y Python

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin

Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten

16. Ohjelmoinnin tekniikkaa 16.1

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if

Ohjelmoinnin peruskurssi Y1

811120P Diskreetit rakenteet

16. Ohjelmoinnin tekniikkaa 16.1

12. Javan toistorakenteet 12.1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

12. Javan toistorakenteet 12.1

11. Javan toistorakenteet 11.1

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

5/20: Algoritmirakenteita III

Java-kielen perusteet

811120P Diskreetit rakenteet

Ohjelmoinnin perusteet Y Python

Tietotyypit ja operaattorit

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Kielioppia: toisin kuin Javassa

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

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

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

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

Ohjelmoinnin peruskurssi Y1

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Taulukot. Jukka Harju, Jukka Juslin

Ohjelmoinnin perusteet Y Python

Muuttujat ja kontrolli. Ville Sundberg

11. Javan valintarakenteet 11.1

7. Näytölle tulostaminen 7.1

Ohjausrakenteet. Valinta:

Palautetta viime luennosta

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

815338A Ohjelmointikielten periaatteet

Ohjelmoinnin perusteet Y Python

Taulukoiden käsittely Javalla

Harjoitus 2 (viikko 45)

Ohjelmoinnin perusteet Y Python

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

Harjoitus 3 (viikko 39)

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

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

Python-ohjelmointi Harjoitus 5

Olio-ohjelmointi Javalla

Tutoriaaliläsnäoloista

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

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

11. Javan valintarakenteet 11.1

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

Ohjelmoinnin perusteet Y Python

05/04/2004. Digitaalisen median tekniikat, k2004 HY/TKTL, javascript_1. Harri Laine 1. JavaScript

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

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

Digitaalisen median tekniikat JavaScript

Digitaalisen median tekniikat JavaScript Harri Laine 1

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

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

17. Javan omat luokat 17.1

12 Mallit (Templates)

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

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,

Ohjelmoinnin perusteet Y Python

Harjoitustyön testaus. Juha Taina

Ohjelmoinnin peruskurssi Y1

Olio-ohjelmointi Syntaksikokoelma

Taulukot, silmukat ja muut joka koodin pikku veijarit

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

6. Muuttujat ja Java 6.1

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

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

15. Ohjelmoinnin tekniikkaa 15.1

17. Javan omat luokat 17.1

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

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

Algoritmit 1. Demot Timo Männikkö

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä.

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

Transkriptio:

Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku, doublemuuttujilla desimaaliluku ja String-muuttujilla merkkijono. Muuttujalle on turvallisinta antaa aina jokin sopiva alkuarvo. 1 Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvoa ei ole välttämätöntä antaa, jolloin pelkkä muuttujan esittely riittää, esimerkiksi: int summa; double cm; String ika; Tällöin on huolehdittava siitä, että ohjelmaan ei voi jäädä tilannetta, missä muuttujaa yritetään käyttää ilman, että sille on annettu sijoituslauseella arvoa muutoin seurauksena on virheilmoitus Eclipsessä. 2 Alkuarvot ja tyyppimuunnokset (3/5) (Viittaus)muuttujille annetaan usein alkuarvoksi tyhjää tarkoittava arvo null, jos muuttujalle ei ole esittelyn yhteydessä anneta varsinaista käyttökelpoista arvoa. Tyhjäarvoa käytetään esimerkiksi seuraavasti: String vastaus = null; Tyhjäarvo on tosiaan sijoitettu muuttujaan, kokeile esimerkiksi tulostaa se: String vastaus = null; System.out.prinln( Arvona on +vastaus); 3 1

Alkuarvot ja tyyppimuunnokset (4/5) Sijoituslauseita käytetäessä on joskus tarpeen sijoittaa muuttujaan arvo, joka ei alun perin ole muuttujan tyyppiä (esimerkiksi muuttaa desimaaliluku kokonaisluvuksi). Osan tyyppimuunnoksista Java tekee automaattisesti (esimerkiksi kokonaisluvun voi sijoittaa desimaalilukumuuttujaan), mutta useimmissa tapauksissa tyyppimuunnos on kirjoitettava näkyviin. Kaikki tyyppejä ei kuitenkaan voi muuntaa ristiin. 4 Alkuarvot ja tyyppimuunnokset (5/5) Tyyppimuunnoksen tekemisestä käytetään englannissa termiä casting (suomalaisittain kastaus). Esimerkkejä tyyppimuunnoksista: double luku = 12; //automaattinen, luvuksi 12.0 int luku2 = (int)5.75; //luku2:n arvoksi 5 luku = 3.14; //sijoituslause luku2 = (int)luku; //luku2:n arvoksi 3 Huom: Käsin tehdyn tyyppimuunnoksen 5 3. Vertailu ja ehtolause (if-else if-else) Olemme tähän asti käyttäneet (tietoisesti) ohjelmoinnin perusrakenteista vain peräkkäisyyttä, eli lauseet suoritetaan peräkkäin yksi kerrallaan. Monipuolisempien ohjelmien tekeminen vaatii muutamia muita rakenteita, joista ensimmäisenä käsittelemme ehtolauseen (eli valinnan). Ehtolausetta varten tarvitsemme ensin vertailun käsitteen. 6 2

Vertailu (1/5) Vertailulla tarkoitetaan operaatiota, jossa kahta arvoa (esimerkiksi lukua, muuttujan arvoa tai lausekkeen arvoa) verrataan toisiinsa. Esimerkiksi vertailu Onko a pienempi kuin b? kirjoitetaan a < b. Javassa vertailun tulos on totuusarvo (epätosi tai tosi, eli true tai false, esimerkiksi vertailun 1<2 tulos on true), vrt. laskutoimituksen tulos, esimerkiksi yhteenlaskun 1+4 tulos on 5. 7 Vertailu (2/5) Vertailuoperaattorit Javassa ovat seuraavat: == yhtä suuri kuin!= erisuuri kuin < pienempi kuin > suurempi kuin <= pienempi- tai yhtä suuri kuin >= suurempi- tai yhtä suuri kuin Huomaa ero yhtä suuruusoperaattorin (==) ja sijoitusoperaattorin välillä (=): int luku1 = 5; luku1 = 5; // luku1 saa arvon 5 luku1 == 5; // onko luku1 yhtäsuuri kuin 5? 8 Vertailu (3/5) Vertailun tuloksen voi esimerkiksi sijoittaa booleantyyppisen muuttujan arvoksi: int testi = 5; boolean onkosuurempi = false; testi = 4; // testi saa arvon 4 onkosuurempi = (luku1 > 5); // false testi = 8; onkosuurempi = (luku1 > 5); // true 9 3

Vertailu (4/5) Käytettävissä ovat myös seuraavat operaattorit:! NOT (looginen ei) && AND (looginen ja) OR (looginen tai) Näitä käytetään lausekkeiden kanssa, loogista eitä yhden ja muita kahden lausekkeen kanssa (näitä voi myös yhdistellä):!(lauseke) (lauseke) && (lauseke) (lauseke) (lauseke) 10 Vertailu (5/5) Esimerkkejä: int a = 5; int b = 7; boolean c = false; c =!(c); // c saa arvon false c = (a<b) && (b>0); // c saa arvon true c = (a==b) (b>0); // c saa arvon true c = ((a<0) && (b>0)) (b>a); // true 11 Ehtolause (if-else if-else) (1/3) Ehtolauseella voidaan ehdon perusteella valita, mitä tehdään seuraavaksi. Yksinkertaisessa muodossa (jos-niin) ehtolauseen rakenne on seuraavanlainen: if (ehto) { // lauseet, jotka suoritetaan, jos ehto on // tosi else { // lauseet, jotka suoritetaan, jos ehto on // epätosi 12 4

Ehtolause (if-else if-else) (2/3) Ehtolauseen ehtona on lauseke, jolla on totuusarvo (usein esimerkiksi looginen vertailu tms.). Lauseen else-osaa ei tarvitse kirjoittaa, jos ehdon ollessa epätosi ei tarvitse tehdä mitään, siis if (ehto) { // lauseet, jotka suoritetaan, jos // ehto on tosi 13 Luentoesimerkki 3.1 Tee ohjelma, joka kysyy käyttäjältä kokonaisluvun. Jos luku oli pienempi kuin 100, ohjelma tulostaa näytölle Lukusi on alle sata, muuten ohjelma tulostaa näytölle Lukusi on yli sata. Talleta ratkaisusi tiedostoon SataanVertailu.java. 14 Ehtolause (if-else if-else) (3/3) Pidemmässä muodossa (jos-niin-muuten) rakenne on seuraavanlainen (else if-osia voi olla useita): if (ehto1) { // lauseet, jotka suoritetaan, jos ehto1 on // tosi else if (ehto2){ // lauseet, jotka suoritetaan, jos ehto2 on // tosi else { // lauseet, jotka suoritetaan, jos kumpikaan // ehdoista ei ollut tosi 15 5

Luentoesimerkki 3.2 Tee ohjelma, joka kysyy käyttäjän iän. Jos ikä on alle 18, ohjelma tulostaa Olet alaikäinen. Jos ikä on yli 18, mutta alle 21, ohjelma tulostaa Olet 18-21-vuotias. Jos ikä on yli 21, ohjelma tulostaa Olet yli 21-vuotias. Talleta ratkaisusi tiedostoon IkaKysymys.java. 16 4. Toistolauseet while- ja do-while (1/3) Toistolauseen avulla samoja lauseita voidaan toistaa, kunnes jokin ehto lakkaa olemasta tosi. Toistolauseista while-lauseen rakenne on seuraava: while (ehto) { // lauseet, joita toistetaan, kunnes // ehto on epätosi Tässä tapauksessa ehto testataan ennen toistoa, toiston sisällä olevia lauseita ei siis välttämättä suoriteta kertaakaan. 17 Toistolauseet while- ja do-while (2/3) Mitä seuraava ohjelmanpätkä tekee? int luku = 1; boolean jatketaan = true; while (jatketaan) { luku = luku * luku; System.out.println(luku*luku); luku++; Entä miten kauan ohjelman suoritus jatkuu? 18 6

Luentoesimerkki 3.3 Tee ohjelma, joka tulostaa näytölle kokonaisluvut yhdestä sataan. Käytä while-lausetta. Talleta ratkaisusi tiedostoon WhileKokeilu.java. 19 Toistolauseet while- ja do-while (3/3) Toistolauseista do-while -lauseen rakenne on seuraava: do { // lauseet, joita toistetaan, kunnes // ehto on epätosi while (ehto); Tässä tapauksessa ehto testataan toiston jälkeen, joten toiston sisällä olevat lauseet suoritetaan siis ainakin kerran. Myöhemmin opitaan vielä yksi toistorakenne, for-lause. 20 Luentoesimerkki 3.4 Tee ohjelma, joka kysyy käyttäjältä kokonaislukuja, kunnes käyttäjä antaa luvuksi nollan. Ohjelma tulostaa näytölle jokaisen luvun antamisen jälkeen ko. luvun käänteisluvun. Käytä do-while-lausetta. Talleta ratkaisusi tiedostoon DoWhileKokeilu.java. 21 7