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

Koko: px
Aloita esitys sivulta:

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

Transkriptio

1 3 Lauseet Lue kirjasta s Tämän osan sisältö Ehdollinen lause if Looginen lauseke vertailut AND-operaattori &&, & OR-operaattori, NOT-operaattori! Valintalause switch Toistolauseet while for do while break, continue Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Ehdollinen lause Ehdollinen lause Lue kirjasta s if (ehto) { tai if (ehto) { lauseet1; else { lauseet2; ehto lauseet1 lauseet2 Jos ehto toteutuu (), suoritus jatkuu välittömästi ehdon perässä olevista lauseista Jos ehto ei toteudu (false), suoritus jatkuu else-haaran lauseista, tai jos else-haara puuttuu, koko if-lausetta seuraavista lauseista Ehdot usein yksinkertaisia vertailuja vertaa muuttujan arvoa vakioon vertaa kahden muuttujan arvoja vertaa kahden laskulausekkeen arvoja Yksinkertaisia ehtolausekkeita voi yhdistellä loogisilla AND-, OR- ja NOT-operaattoreilla (&&, ja!) false Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Yksinkertainen ehto Looginen lauseke on muotoa <operandi> <looginen operaattori> <operandi> Operandit voivat olla lausekkeita muuttujia, vakioita tai aritmeettisia ja loogisia lausekkeita operandien arvot voitava laskea ennen ehdon testaamista Operaation tuloksena tyyppiä boolean oleva totuusarvo tai false Javan vertailuoperaattorit Operaattori ==,!= yhtäsuuri kuin, erisuuri kuin Merkitys >, >= suurempi kuin, suurempi tai yhtäsuuri kuin <, <= pienempi kuin, pienempi tai yhtäsuuri kuin Huomaa merkkien järjestys Esimerkkejä Onko henkilön ikä vähintään tasan 30 vuotta boolean kolmekymppinen = (ikä == 30); Jos lauseke oli totta, muuttujan arvoksi tuli, muuten false if (kolmekymppinen) { System.out.println( Oot kolomekymppinen, oot ); Jos ikää on jo 18, niin sano häntä aikuiseksi if (ikä >= 18) { System.out.println( Olet jo aikuinen ); Huomaa yhtäsuuruusoperaattorin ja sijoitusoperaattorin ero Sijoitus (=) asettaa vasemmalla olevaan muuttujaan oikeanpuoleisen lausekkeen arvon Helposti syntyvä moka: if (ikä=30) { Vertailu (==) tarkastaa, onko vasemman- ja oikeanpuoleisen lausekkeen arvot samoja Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S boolean positiivinen; if (luku > 0) { positiivinen = ; else { positiivinen = false; if (positiivinen == ) { boolean positiivinen = false; if (luku > 0) { positiivinen = ; if (positiivinen == ) { positiivinen = (luku > 0); if (positiivinen) { if (luku > 0) { Lohkosulut ja sisennys Suositeltu käytäntö public class MunLuokka { public static void munmetodi() { if (ehto) { else { ks. Oikealla keskellä: vertailulausekkeen arvonahan on tai false! Oikealla alla: loogista lauseketta käytetään suoraan ehdossa ilman boolean-apumuuttujaa Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S

2 Sisäkkäiset if-lauseet import javax.swing.*; public class Vertailu3 { String lukustr; Kirja s. 65 lukustr = JOptionPane.showInputDialog("Anna kokonaisluku :"); luku = Integer.parseInt(lukuStr); if (luku == 100) { Suositus: aina lohkosulut JOptionPane.showMessageDialog(null,"Lukusi on sata"); else if (luku > 100) { JOptionPane.showMessageDialog(null,"Lukusi on > 100"); else { JOptionPane.showMessageDialog(null,"Lukusi on < 100"); System.exit(0); else liittyy aina sitä lähimpänä edellä olevaan if-sanaan Huomaa sisennystapa! Looginen lauseke Lue kirjasta s Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Looginen lauseke Loogiset lausekkeet Looginen lauseke on muotoa <operandi> <looginen operaattori> <operandi> Operandit voivat olla lausekkeita boolean muuttuja / vakio tai looginen lauseke Loogisia lausekkeita voi yhdistellä loogisilla operaattoreilla AND, OR ja NOT käytä tarvittaessa sulkuja selventämään rakennetta Javan loogiset operaattorit Operaattori! NOT &, && Merkitys AND, ehdollinen AND (kynnystävä), OR, ehdollinen OR (kynnystävä) AND-operaattori ehto1 && ehto2 lausekkeen arvo on, jos molemmat ehdot ovat tosia (a >= 10) && (a <= 15) OR-operaattori ehto1 ehto2 lausekkeen arvo on, jos jompikumpi ehdoista on totta (a == 10) (b < 5) NOT-operaattori!ehto lausekkeen arvo on, jos ehdon arvo on false!(b < a) ehto1 ehto2! ehto1 ehto1 && ehto2 ehto1 ehto2 false false false false false false false false false false a: 10 b: 5 Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Ehdolliset && ja Ehdollisuus tarkoittaa, että lausekkeen arvon evaluointi voidaan lopettaa heti, kun ollaan varmoja sen arvosta && perässä tuleva osa evaluoidaan vain, jos alkuosa perässä tuleva osa evaluoidaan vain, jos alkuosa false int x, y; if ((x == 0) (y/x > 2)) {... Jos edellä x on 0, niin OR-lausekkeen arvo loppuosasta riippumatta aina, joten loppuosaa ei suoriteta ehdollisuus takaa sen, että ei pääse syntymään nollallajakoa Käytä sulkuja selventämään lausekkeen rakennetta eivät pakollisia -- operaattoreiden presedenssisäännöt määräävät yksikäsitteisen evaluointijärjestyksen Esim. OR on säännöissä ylempänä kuin vertailuoperaattorit, jotka ovat puolestaan ylempänä kuin aritmeettiset operaattorit if (x == 0 y/x > 2) {... Lue kirjasta s Valintalause Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Valintalause switch (valitsin) { case arvo1: // tähän valitsimen arvolla arvo1 //... välissä muita vaihtoehtoja case arvon: // tähän valitsimen arvolla arvon default: // tähän ellei edeltä löytynyt sopivaa arvoa Kahden peräkkäisen arvon "etäisyys" vakio Valitsin on lauseke, jonka arvona merkki tai kokonaisluku muuttuja, vakio, laskulauseke Myös luetellun tyypin arvo käy, ks. kirja s. 159 default-osa voi puuttua jos mikään case-arvo ei täsmää, suoritus jatkuu switch-lausetta seuraavasta lauseesta break voi puuttua kun case-osassa on break, suoritus jatkuu switch-lauseen jäljessä tulevilla lauseilla, muuten suoritus "valuu" seuraavaan kohtaan public class Arvosana { Vrt. kirja s. 69, 70 System.out.println("Anna arvosanasi (k, h, t tai v): "); char arvosana = Oma.lueChar(); switch (arvosana) { char-vakio case 'k': case 'K': System.out.println("Sait siis kiitettävän!"); Kunkin casesanan jäljessä vain case 'h': case 'H': yksi arvo System.out.println("Sait siis hyvän."); case 't': case 'T': System.out.println("Sait siis tyydyttävän"); case'v': case'v': System.out.println("Sait siis välttävän."); default: // Jos ei ollut mikään edellisistä System.out.println("Ei kelpaa arvosanaksi"); Anna arvosanasi (k, h, t tai v): t Sait siis tyydyttävän Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S

3 Toistolauseet while (ehto) { while (ehto); for (alkutoimet; ehto; lopputoimet) { Toistolauseet Javan toistolauseet ovat alkuehtoinen while loppuehtoinen do-while askeltava for Millä tahansa niistä voi toteuttaa kaikki toistotilanteet Eri lauseilla kuitenkin omat käyttöalueensa Lue kirjasta s Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S while-lause while (ehto) { ehto lauseet false Kun ohjelman suoritus tulee while-lauseeseen: Evaluoi ehto Jos ehto on false, jatka suoritusta while-lausetta seuraavasta lauseesta (ohita lauseosa) Jos ehto on suorita lauseosassa olevat lauseet Palaa taas tutkimaan ehtoa Muista vaikuttaa ehtoon Lauseosan muutettava jotain ehdossa esiintyvää muuttujaa, jotta ehto saa lopulta arvon false muuten suoritus jää ikuiseen silmukkaan while (rahaa > 100) { ostacd(); rahaa = rahaa - maksu; Ole tarkkana lopetusehdon kanssa, varo off-by-one virhettä. Alkuehtoinen toisto evaluoi ensin ehto, päätä sitten pitääkö suorittaa lause-osan lauseet lauseosa suoritetaan 0 tai useampia kertoja Ehto evaluoitava jokaisen toistokerran jälkeen uudelleen Toisto päättyy, kun toiston jatkumisehto ei ole enää Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S public class CDnOsto { double rahaa, hinta; int lkm = 0; System.out.print("Paljonko rahaa käytössä? "); rahaa = Oma.lueDouble(); System.out.print("Paljonko CD maksaa?"); hinta = Oma.lueDouble(); while (rahaa >= hinta) { lkm++; rahaa = rahaa - hinta; System.out.println("Ostat " + lkm + ". CD:n\n" + "Rahaa on jäljellä: " + rahaa + " euroa."); Kirja s. 73 if (lkm==0) { System.out.println("Et saa yhtään CD:tä ); else { System.out.println("Sait rahoillasi " + lkm + " CD:tä."); Paljonko rahaa käytössä? 5.5 Paljonko CD maksaa? 1.5 Ostat 1. CD:n Rahaa on jäljellä 4 euroa. Ostat 2. CD:n Rahaa on jäljellä 2.5 euroa. Ostat 3. CD:n Rahaa on jäljellä 1 euroa. Sait rahoillasi 3 CD:tä. import javax.swing.*; Kirja s. 74 /* Tämä ohjelma tulostaa käyttäjältä pyydetyn kokonaisluvun kertotaulun */ public class KertotauluWhile { String kerrottavastr; int kerrottava, kertoja, tulo; String tuloskertotaulu = ""; kerrottavastr = JOptionPane.showInputDialog( "Anna luku, jonka kertotaulun haluat"); kerrottava = Integer.parseInt(kerrottavaStr); kertoja = 1; while (kertoja <= 10) { tulo = kertoja * kerrottava; tuloskertotaulu += kertoja + " * " + kerrottava + " = " + tulo + "\n"; kertoja++; JOptionPane.showMessageDialog(null, tuloskertotaulu); System.exit(0); Parametriksi voi antaa vain yhden merkkijonon, joten kaikki on kasattava valmiiksi yhtä kutsua varten. Saa sisältää tässäkin kohtaa katenointia (+ merkki) Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Syötteen tarkistaminen Yleinen toistolauseen käyttöyhteys import java.util.scanner; public class Pisteet { static Scanner lukija=new Scanner(System.in) int pistemaara; int summa = 0; int lkm = 1; while (lkm <= 10) { System.out.print("Anna " + lkm + ". pistemäärä: "); pistemaara = lukija.nextint(); while (pistemaara < 0 pistemaara > 5) { System.out.print( "Ei kelpaa. Oltava välillä 0..5.\n" + "Anna " + lkm + ". pistemäärä uudestaan: "); pistemaara = lukija.nextint(); summa += pistemaara; lkm ++; System.out.println("Pistemäärien summa on " + summa); Kirja s. 75 Ohjelmoinnin perusteet / Auvo Häkkinen / K2011 while (ei viimeinen) { pyydä syöte while (syöte ei kelpaa) { tulosta virheilmoitus pyydä uusi syöte käsittele kelvollinen syöte Anna 1. pistemäärä: 6 Ei kelpaa. Oltava välillä 0..5 Anna 1. pistemäärä uudestaan: -1 Ei kelpaa. Oltava välillä 0..5 Anna 1. pistemäärä uudestaan: 5 Anna 2. pistemäärä: jne. Muista aina testata rajakohdat Pistemäärien summa on Tällaiset tarkistukset sopii piilottaa metodiin, jolloin ne eivät tarpeettomasti hämärrä ohjelman rakennetta import java.util.scanner; public class Pisteet { Scanner lukija = new Scanner(System.in); public static int luepistemäärä(int lkm ) { System.out.print("Anna " + lkm + ". pistemäärä: "); int pistemäärä = lukija.nextint(); while (pistemäärä < 0 pistemäärä > 5) { System.out.print("Ei kelpaa. Oltava välillä 0..5.\n" + "Anna " + lkm + ". pistemäärä uudestaan: "); pistemäärä = lukija.nextint(); return pistemäärä; int pistemaara, summa = 0, lkm = 0; pyydä syöte while (syöte ei kelpaa) { tulosta virheilmoitus pyydä uusi syöte palauta kelvollinen syöte while (lkm <=10) { while (ei viimeinen) { lkm ++; lue ja tarkasta seuraava syöte pistemaara = luepistemäärä(lkm); käsittele kelvollinen syöte summa += pistemaara; System.out.println("Pistemäärien summa on " + summa); Ohjelmoinnin perusteet / Auvo Häkkinen / S

4 do-while-lause while (ehto); Kun ohjelmassa tulee do-while-lause Suorita lauseosassa olevat lauseet Tutki sitten ehto Jos ehto on false, jatka suoritusta do-while-lausetta seuraavasta lauseesta Jos ehto on, palaa toiston alkuun suorittamaan uudelleen lauseosan lauseet Loppuehtoinen toisto lauseet ehto false suorita ensin lauseosa kertaalleen, päätä sitten pitääkö lause-osan lauseet suorittaa uudelleen lauseosa suoritetaan 1 tai useampia kertoja Ehto pitää evaluoida jokaisen toistokerran jälkeen uudelleen Toisto päättyy, kun toiston jatkumisehto ei ole enää Esimerkkejä Pyydä tunnuslukua, kunnes saat sen oikein Näkyvyysssäännöt: Ehtomuuttujan esittely ja tutkiminen aina do-while lauselohkon ulkopuolella! import java.util.scanner; Kirja s. 81 public class Tunnusluku { Scanner lukija = new Scanner(System.in) System.out.print("Anna tunnusluku: "); luku = lukija.nextint(); while (luku!= 1234); System.out.println("Tervetuloa"); Anna tunnusluku: 12 Anna tunnusluku: 9876 Anna tunnusluku: 1234 Tervetuloa Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelma kysyy lopuksi, haluaako käyttäjä toistaa ohjelman uudelleen. Käyttäjä vastaa näppäilemällä kirjaimen k tai e. valitse oletustoiminto fiksusti public class Yhteenlaskukone { Kirja s. 81 int luku1, luku2; char vastaus; System.out.println("Anna kaksi kokonaislukua."); System.out.print("Ensimmäinen luku: "); luku1 = Oma.lueInt(); System.out.print("Toinen luku: "); luku2 = Oma.lueInt(); System.out.println("Summa on: " + (luku1+luku2)); System.out.print("\nJatketaanko (k/e): "); vastaus = Oma.lueChar(); while (vastaus!= 'e'); Anna kaksi kokonaislukua. Ensimmäinen luku: 7 Toinen luku: 8 Summa on: 15 Jatketaanko (k/e)? e Kumpi ompi oivempi? System.out.print("Anna luku väliltä 1-10: "); while (luku < 1 luku > 10) { System.out.println ("Luku virheellinen."); System.out.print ("Anna luku väliltä 1-10: "); System.out.println ("Annoit luvun " + luku); Virhetarkistuksen voisi helposti irrottaa omaksi metodikseen System.out.print("Anna luku väliltä 1-10: "); if (luku < 1 luku > 10) System.out.println ("Luku virheellinen."); while (luku < 1 luku > 10); System.out.println ("Annoit luvun " + luku); int luku = annaluku(); System.out.println ("Annoit luvun " + luku); Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S for-lause for (alkutoimet ; ehto ; lopputoimet){ alkutoimet ehto lauseet Tee ensin kertaalleen alkutoimet tavallisesti toistolaskurin esittely + alkuarvo false lopputoimet Tarkista sitten ehdon voimassaolo jos, jatka suoritusta toistettavilla lauseilla jos false, jatka suoritusta koko for-lausetta seuraavasta lauseesta ehto tutkii tavallisesti toistolaskurin arvoa Kun yksi toiston lauseet tehty, suorita toistokerran lopputoimet muuttaa yleensä toistolaskurin arvoa Palaa sitten taas tutkimaan ehtoa Toisto päättyy, kun toiston jatkumisehto ei ole enää laskuri ylittänyt sovitun loppuarvon joku muu syy muuttaa ehdon arvoksi false Toistolaskuri Toistokertojen määrää hallitaan tavallisesti toistomuuttujan avulla Alkutoimet: laskurin määrittely ja alkuarvon asettaminen esim. int i = 1 tehdään vain ensimmäisellä kerralla Ehto: laskurin arvon vertaaminen loppuarvoon esim. i <= 10 Lopputoimet: laskurin arvon askeltaminen esim. i++ tehdään jokaisen toistokerran jälkeen Toistomuuttujan voi määritellä myös for-lauseen ulkopuolella, mutta Tavallisesti laskuria tarvitaan vain for-rakenteessa, joten on perusteltua määritellä se for-rakenteen sisällä Tällöin se on olemassa vain for lauseen sisällä (näkyvyyssäännöt!) Toistomuuttujan vakiintunut tunnus on i Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S for-lausetta käytetään erityisesti silloin, kun toistojen määrä tiedetään ennen kuin toistot edes aloitetaan vakio tai voidaan laskea muuttujien avulla Esimerkiksi halutaan sademäärätiedot viikon jokaiselle päivälle joten: tiedetään, että sademääriä on seitsemän kappaletta joten: ohjelma pyytää sademääriä seitsemän kertaa halutaan käsitellä taulukon kaikki 12 alkiota joten taulukon indeksit saavat arvot 0-11 halutaan käsitellä (esim. tulostaa) peräkkäiset luvut 1-10 for (int i=1; i <=10; i++) { System.out.println(i); Esimerkki Metodi, joka laskee summalausekkeen N arvon, kun N välitetään metodille parametrina public class Laskuri { public static int summa(int n) { int sum=0; for (int i = 1; i <= n; i++) { sum += i; return sum; int z; int x = 10; z = summa(5); System.out.println(Summa on " + z); System.out.println(Summa on " + summa(x)); Summa on 15 Summa on 55 Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S

5 for vs. while for-lauseen voisi korvata while-lauseella for (alkutoimet ; ehto ; lopputoimet){ alkutoimet; while (ehto) { lopputoimet; for-rakenteen etu siinä, että toiston ohjausosat eli toistomuuttujan määrittely ja alustus, toiston jatkumisehto sekä toistomuuttujan kasvatus saadaan aina lähelle toisiaan (samalle riville) Ohjelmoinnin perusteet / Auvo Häkkinen / S Potenssit while-rakennetta ja for-rakennetta käyttäen public class PotenssitWhile { Kirja s. 78 int i=1; // alkutoimet while (i<=10) { // ehto System.out.println( i + potenssiin 2 on + i*i); i++; // lopputoimet vrt. public class Potenssit { // alkutoimet ; ehto ; lopputoimet for (int i=1; i<=10; i++) { System.out.println(i + potenssiin 2 on + i*i); 1 potenssiin 2 on 1 2 potenssiin 2 on 4 3 potenssiin 2 on 9 4 potenssiin 2 on 16 5 potenssiin 2 on 25 6 potenssiin 2 on 36 7 potenssiin 2 on 49 8 potenssiin 2 on 64 9 potenssiin 2 on potenssiin 2 on 100 Ohjelmoinnin perusteet / Auvo Häkkinen / S for-lauseen kontrolliosasta Vaikka for-lauseen kontrollilausekkeessa on kolme osaa (laskurin alustus, toistoehto, laskurin askellus), niistä mikä tahansa puuttua puolipisteet sensijaan pitää olla aina mukana Esimerkiksi päättymättömän silmukan voi kirjoittaa muotoon for ( ; ; ) { Tällaisenkin toistosilmukan sisältä pääsee pois break-lauseella return-lauseella tai System.exit() metodin kutsulla for-lauseen alku- ja lopputoimiin voi kirjoittaa useita lauseita tällöin lauseet erotetaan toisistaan poikkeuksellisesti pilkulla Pilkkuoperaattoria ei voi käyttää missään muussa yhteydessä public class ParillisetPotenssit { Kirja s. 78 for (int i=1, int j=0; i<=10; i++, j+=2) { System.out.println(i + potenssiin + j + = + Math.pow(i,j)); 1 potenssiin 0 = potenssiin 2 = potenssiin 4 = potenssiin 6 = potenssiin 8 = potenssiin 10 = E7 7 potenssiin 12 = E10 8 potenssiin 14 = E12 9 potenssiin 16 = E15 10 potenssiin 18 = 1.0E18 Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Sisäkkäiset for-lauseet for-lauseita on usein tarve kirjoittaa sisäkkäin Sisäkkäisten silmukoiden toistomuuttujat tapana nimetä tunnuksilla i, j ja k for (int i=0; i<3; i++) { System.out.print("i=" + i + ": "); for (int j=0; j<3; j++) { System.out.print("j=" + j + " "); System.out.println(); i=0: j=0 j=1 j=2 i=1: j=0 j=1 j=2 i=2: j=0 j=1 j=2 public class KertotauluFor { vrt. kirja s. 80 // Käyttää vakioita määrittelemään rajat final int ALARAJA1=1, YLARAJA1=10; final int ALARAJA2=1, YLARAJA2=10; int tulo; for (int i=alaraja1; i<=ylaraja1; i++) { for (int k=alaraja2; k<=ylaraja2; k++) { tulo = k*i; System.out.printf("%3s ", tulo); System.out.print("\n"); Muotoiltu tulostus System.out.printf() ks. Java SE 6 API Tehtävä: Tee versio, joka kysyy ala- ja ylärajat Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S Erityislauseet toistosta poistumiseen break continue Javassa on toistorakenteiden katkaisulauseet break lopettaa toiston: suoritus jatkuu toistoa seur. lauseesta continue vie takaisin toiston alkuun: aloita seuraava toistokierros Tavallisesti ohjelman logiikka kannattaa suunnitella s.e. silmukan suorituksen päättyminen näkyy ehto-osasta Joskus break- ja continue-lauseiden käyttö voi jopa selkeyttää ohjelman rakennetta esim. kun toistorakenne vaatisi esivalmisteluja ennen ehdon tarkistusta esim. "lue luku" ennen kuin ehto voidaan tarkistaa Lauseiden käyttöä ei tässä varsinaisesti opetella saati suositella ilman näitäkin pärjäämme vallan mainiosti Lue kirjasta s Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S

6 public class Break{ vrt. kirja s. 95 int summa = 0; System.out.print("Anna luku (lopetus on -1): "); if (luku < 0) //katkaisee silmukan suorituksen välittömästi summa += luku; while (luku >= 0); System.out.println("Summa on " + summa); public class BreakToWhile{ vrt. kirja s. 96 int summa = 0; System.out.print("Anna luku (lopetus on -1): "); if (luku >= 0) summa += luku; while (luku >=0); System.out.println("Summa on " + summa); public class Continue { int luku = -1; while (luku < 10) { luku++; if (luku % 2 == 1) continue; // Takaisin silmukan alkuun System.out.println("Luku on " + luku); vrt. kirja s. 96 Mitä ylläoleva ohjelma tekee? Esitä joutessais sama ilman continue-lausetta! Vihje: for-lause Ohjelmoinnin perusteet / Auvo Häkkinen / S Ohjelmoinnin perusteet / Auvo Häkkinen / S return Lue kirjasta s Ohjelmoinnin perusteet / Auvo Häkkinen / S

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Toistorakenne (while, do-while, for) 1 While- lause while-lauseen rakenne on seuraava: while (ehtolauseke) lause Kun ehtolausekkeen arvo on totta, lause suoritetaan. Lause suoritetaan

Lisätiedot

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

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) 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,

Lisätiedot

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

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

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

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

11. Javan valintarakenteet 11.1

11. Javan valintarakenteet 11.1 11. Javan valintarakenteet 11.1 Sisällys If- ja if-else-lauseet. Orpo else. Valintaa toisin: switch-lause. 11.2 If-lause Merkitään varatulla sanalla if. Kuvaa yksisuuntaisen päätöksen: rakenteen lauseet

Lisätiedot

Ohjausrakenteet. Valinta:

Ohjausrakenteet. Valinta: Ohjausrakenteet Luento antaa yleiskuvan siitä kuinka ohjelmassa suorittaan vaihtoehtoisia tehtäviä valintarakenteiden avulla ja kuinka samanlaisia ohjelma-askeleita toistetaan toistorakenteiden avulla

Lisätiedot

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

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

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

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat Sisällys 12. Javan toistorakenteet Ylstä toistorakentsta. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirhtä. Silmukan rajat asetettu kierroksen

Lisätiedot

Metodien tekeminen Javalla

Metodien tekeminen Javalla 1 Metodien tekeminen Javalla Mikä metodi on? Metodin syntaksi Metodi ja sen kutsuminen Parametreista Merkkijonot ja metodi Taulukot ja metodi 1 Mikä metodi on? Metodilla toteutetaan luokkaan toiminnallisuutta.

Lisätiedot

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

Taulukot. Taulukon käsittely. Tämän osan sisältö. Esimerkki. Taulukon esittely ja luonti. Taulukon alustaminen. Taulukon koko 5 Taulukot Tämän osan sisältö Taulukon esittely ja luonti Taulukon alustaminen Taulukon koko Taulukon käsittely indeksointi peräkkäiskäsittely hajakäsittely harva taulukko Taulukon järjestäminen Kaksiulotteinen

Lisätiedot

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

Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten Sisällys 16. Ohjelmoinnin tekniikkaa Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. For-lause lyhemmin. If-else-lause vaihtoehtoisesti

Lisätiedot

16. Ohjelmoinnin tekniikkaa 16.1

16. Ohjelmoinnin tekniikkaa 16.1 16. Ohjelmoinnin tekniikkaa 16.1 Sisällys Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. For-lause lyhemmin. If-else-lause vaihtoehtoisesti

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 1 / 41 Valintakäsky if Tähänastiset ohjelmat ovat toimineen aina samalla tavalla. Usein ohjelman pitäisi

Lisätiedot

16. Ohjelmoinnin tekniikkaa 16.1

16. Ohjelmoinnin tekniikkaa 16.1 16. Ohjelmoinnin tekniikkaa 16.1 Sisällys For-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. If-else-lause vaihtoehtoisesti

Lisätiedot

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

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin Sisällys 17. Ohjelmoinnin tekniikkaa for-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. if-else-lause vaihtoehtoisesti

Lisätiedot

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

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004 Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;

Lisätiedot

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

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: KERTAUSTEHTÄVIÄ Tietue Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: struct henkilotiedot char nimi [20]; int ika; char puh [10]; ; Edellä esitetty kuvaus määrittelee

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2016 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 1 / 22 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointiharjoituksia Arduino-ympäristössä Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 14.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2015 1 / 17 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

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

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään

Lisätiedot

11. Javan valintarakenteet 11.1

11. Javan valintarakenteet 11.1 11. Javan valintarakenteet 11.1 Sisällys If- ja if--lauseet. Orpo. Valintaa toisin: switch-lause. 11.2 Valintarakenteet Valintarakenteilla ilmaistaan formaalisti, kuinka algoritmin suoritus voi haarautua

Lisätiedot

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

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. 1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).

Lisätiedot

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

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

7. Näytölle tulostaminen 7.1

7. Näytölle tulostaminen 7.1 7. Näytölle tulostaminen 7.1 Sisällys System.out.println- ja System.out.print-operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden muotoilua. 7.2 Tulostusoperaatiot System.out.println-operaatio

Lisätiedot

Muuttujat ja kontrolli. Ville Sundberg

Muuttujat ja kontrolli. Ville Sundberg Muuttujat ja kontrolli Ville Sundberg 14.9.2007 Alkeistyyppi Alin abstraktiotaso josta tarvitsee välittää Yksittäinen, jakamaton tiedonjyvä Tavallaan kaikki alkeistyypit ovat lukuja arvojoukko vaihtelee

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 19.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 19.9.2018 1 / 18 Oppimistavoitteet: tämän luennon jälkeen Osaat kirjoittaa Python-ohjelman, joka suorittaa eri kerroilla

Lisätiedot

Sisällys JAVA-OHJELMOINTI Osa 3: Laskennan ohjaus. Lohkolause (block) Peräkkäinen laskenta. Lohkon käyttö. Esimerkki

Sisällys JAVA-OHJELMOINTI Osa 3: Laskennan ohjaus. Lohkolause (block) Peräkkäinen laskenta. Lohkon käyttö. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 3: Laskennan ohjaus Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Peräkkäinen laskenta Ehdollinen laskenta Laskennan toisto Laskennan hierarkisuus 10/19/99

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet 2 Java-kielen perusteet Tämän osan sisältö Syntaksi Ohjelma, luokka, metodi Tunnukset, muuttujat ja tyypit esittely, alustaminen, näkyvyyssäännöt Syöttö ja tulostus Metodit määrittely, kutsu, parametrit,

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

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

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4 Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.

Lisätiedot

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

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 1 / 2009 syksy Tentti / 18.12 Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN

Lisätiedot

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

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

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

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2009 1 / 33 Valintakäsky if syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >=

Lisätiedot

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

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi 1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla

Lisätiedot

5/20: Algoritmirakenteita III

5/20: Algoritmirakenteita III Ohjelmointi 1 / syksy 2007 5/20: Algoritmirakenteita III Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/17 Tämän

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

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

12. Näppäimistöltä lukeminen 12.1 12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 24.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 24.1.2011 1 / 36 Luentopalaute kännykällä alkaa tänään! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

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

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen

Lisätiedot

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

8. Näppäimistöltä lukeminen 8.1 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)

Lisätiedot

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 )

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 ) Tehtävä do while + Viikko 1 Tehtävä 27. Salasana (MOOC) Viikko 1 Tehtävä 28. Lämpötilat (MOOC) Tehdään ohjelma, joka kysyy käyttäjältä lukua. Luku kerrotaan aina seuraavalla käyttäjän antamalla luvulla

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen

Lisätiedot

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

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

Ohjelmoinnin perusteet, kurssikoe

Ohjelmoinnin perusteet, kurssikoe Ohjelmoinnin perusteet, kurssikoe 18.6.2014 Kirjoita jokaiseen konseptiin kurssin nimi, kokeen päivämäärä, nimi, TMC-tunnus ja opiskelijanumero tai henkilötunnus. Vastaukset palautetaan tehtäväkohtaisiin

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015

815338A Ohjelmointikielten periaatteet 2014-2015 815338A Ohjelmointikielten periaatteet 2014-2015 IV.2 Imperatiivinen ohjelmointi lauseet ja lausekkeet Sisältö 1. Yleistä lausekkeista 2. Presedenssi- ja assosiaatiosäännöt 3. Tyyppimuunnokset 4. Vertailulausekkeet

Lisätiedot

if-lauseen yksinkertaisin muoto on sellainen, missä tietyt lauseet joko suoritetaan tai jätetään suorittamatta.

if-lauseen yksinkertaisin muoto on sellainen, missä tietyt lauseet joko suoritetaan tai jätetään suorittamatta. if- valintarakenne Yksittäisen vaihtoehdon valinta if-lauseen yksinkertaisin muoto on sellainen, missä tietyt lauseet joko suoritetaan tai jätetään suorittamatta. Syntaksi: if (ehto) lauseita; Aaltosulkeiden

Lisätiedot

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

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 8. kesäkuuta 2018 Yleistä Tentti 1 meni pistekeskiarvon (11.2) perusteella välttävästi. Omasta tehtäväpaperista saa kopion

Lisätiedot

14. Hyvä ohjelmointitapa 14.1

14. Hyvä ohjelmointitapa 14.1 14. Hyvä ohjelmointitapa 14.1 Yleistä Ohjelman elinkaari ei tyypillisesti pääty sen toteuttamiseen; ohjelmaa voidaan käyttää ja ylläpitää jopa vuosikymmeniä. Jotta koodin muuttaminen on mahdollista, sen

Lisätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (ArrayList-luokka) Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen

Lisätiedot

public static void main (String [] args)

public static void main (String [] args) HAAGA-HELIA OHJELMOINTI 1(5) OHJELMALUOKKA Ohjelma-luokan käynnistää public static void main (String [] args) main-metodiin voi koodata 1. ohjelman logiikan tai 2. luoda ohjelma-olion ja kutsua metodia,

Lisätiedot

Seuraavassa on esimerkki for-, while- ja do-while -lauseesta:

Seuraavassa on esimerkki for-, while- ja do-while -lauseesta: Ilkka Kiistala 30.9.2004 tehtävät: http://www.cs.helsinki.fi/u/wikla/johdohj/ohpe/harjs04/3/ kurssisivu http://www.cs.helsinki.fi/u/wikla/johdohj/ohpe/indexs04.html materiaali: http://www.cs.helsinki.fi/u/wikla/johdohj/sisalto/index.htm

Lisätiedot

Python-ohjelmointi Harjoitus 2

Python-ohjelmointi Harjoitus 2 Python-ohjelmointi Harjoitus 2 TAVOITTEET Kerrataan tulostuskomento ja lukumuotoisen muuttujan muuttaminen merkkijonoksi. Opitaan jakojäännös eli modulus, vertailuoperaattorit, ehtorakenne jos, input-komento

Lisätiedot

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

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti Tentaattori: Antti-Jussi Lakanen 18. toukokuuta 2018 Yleistä Tentti 1 oli pistekeskiarvon (12.7) perusteella vaikeudeltaan kohtuullinen. Omasta tehtäväpaperista

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet

Lisätiedot

1. ohjelman selitystä Muutamien ohjelman yksityiskohtien läpikäyntiä

1. ohjelman selitystä Muutamien ohjelman yksityiskohtien läpikäyntiä C# - kieli 1. ohjelman selitystä Muutamien ohjelman yksityiskohtien läpikäyntiä class MainClass { public static void Main(string[] args) { Console.WriteLine("Hei maailma!"); jokainen C#-ohjelma on aina

Lisätiedot

Taulukoiden käsittely Javalla

Taulukoiden käsittely Javalla 1 Taulukoiden käsittely Javalla Mikä taulukko on? Taulukon syntaksi Merkkijonotaulukko Lukutaulukko Taulukon kopiointi 1 Mikä taulukko on? Taulukko on rakenne, minne saadaan talteen usea saman tyyppinen

Lisätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

Luokan muodostimet (Constructors)

Luokan muodostimet (Constructors) Mikä on muodostin? Luokan muodostimet (Constructors) Millaisia muodostimia on? Oletusmuodostin (Default Constructor) Parametrillinen muodostin Kopiointimuodostin (Copy Constructor) this-muuttuja Miten

Lisätiedot

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

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3 15. Lohkot 15.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.2 Lohkot Aaltosulkeet

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Sisällys 3. Pseudokoodi Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet: Valinta if- ja if--rakenteilla. oisto while-, do-while- ja for-rakenteilla. 3.1 3.2 Johdanto

Lisätiedot

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

8. Näppäimistöltä lukeminen 8.1 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)

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään Ohjelmointi Ohjelmoinnissa koneelle annetaan tarkkoja käskyjä siitä, mitä koneen tulisi tehdä. Ohjelmointikieliä on olemassa useita satoja. Ohjelmoinnissa on oleellista asioiden hyvä suunnittelu etukäteen.

Lisätiedot

13. Hyvä ohjelmointitapa (osa 1) 13.1

13. Hyvä ohjelmointitapa (osa 1) 13.1 13. Hyvä ohjelmointitapa (osa 1) 13.1 Yleistä Ohjelman elinkaari ei tyypillisesti pääty sen toteuttamiseen tarvitaan ylläpitoa. Jotta koodin muuttaminen on mahdollista, on sen oltava myös muidenkin kuin

Lisätiedot

Sisällys. 15. Lohkot. Lohkot. Lohkot

Sisällys. 15. Lohkot. Lohkot. Lohkot Sisällys 15. Lohkot Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 15.1 15.2 Lohkot Aaltosulkeet

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla

Lisätiedot

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

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

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

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa(); Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio

Lisätiedot

Lista luokan sisällä

Lista luokan sisällä Lista luokan sisällä Luokan sisällä on lista Joukkue-luokka, joka sisältää listän joukkueen pelaajista Pelaaja Joukkueen metodit, jotka käyttävät listaa Ohjelmaluokka Luokan sisällä on lista Tarkoitta

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

Javan GUI Scratchaajalle

Javan GUI Scratchaajalle Javan GUI Scratchaajalle Kertausta Javan perusteista Java-luokan muotoilu public class Kissa { private String nimi; public Kissa(String annettunimi) { this.nimi = annettunimi; yksi class = yksi hahmo =

Lisätiedot

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

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3 16. Lohkot 16.1 Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat operaation alussa vai myöhemmin? 16.2 Lohkot Kaarisulut

Lisätiedot

Mitä poikkeuskäsittely tarkoittaa?

Mitä poikkeuskäsittely tarkoittaa? Poikkeuskäsittely Mitä poikkeuskäsittely tarkoittaa? Poikkeuskäsittelyluokkien hierakkia Poikkeuksen sieppaaminen Mihin järjestykseen try-catch-lauseen ExceptionType-poikkeukset laitetaan? Poikkeuksen

Lisätiedot