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

Koko: px
Aloita esitys sivulta:

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

Transkriptio

1 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 E. Hyvönen: Java Osa 3 2 Lohkolause (block) Peräkkäinen laskenta Perälläkkäin suoritettavat lauseet muodostavat lohko(lausee)n (block). Lohkon lauseet kirjoitetaan aaltosulkujen väliin: { lause1; lause2; ; lausen ; Huomaa,että Yksittäiset lauseet päättyvät ; -merkkiin Lohkon lopussa ei ole ; -merkkiä Muuttujien määrittely on voimassa lohkoittain 10/19/99 E. Hyvönen: Java Osa 3 4 Esimerkki Lohkon käyttö { int a = 1, b, c = 2*a; b = a*2; int d = a+b; // d käytössä tästä alkaen { int e = d+b; // Lohkossa alilohko d = a+e; // e:n käyttöalue loppuu c = d+b; 10/19/99 E. Hyvönen: Java Osa 3 5 Lohkoa voi aina käyttää siellä missä yksittäistä lausettakin Lohko on eräs lause (statement) Tyhjä lohko/lause merkitään ";" Metodin runko on lohko Muuttujien nimien oltava sisäkkäisissä lohkoissa yksikäsitteisiä {int n =2; { int n=3;.. // Väärin! Luokan muuttujien peittäminen on kuitenkin ok. Lohkossa käytetään ensisijaisesti sen omia muuttujia. 10/19/99 E. Hyvönen: Java Osa 3 6 1

2 Ehtolause if Ehdollinen laskenta Ehdollinen lauseen suoritus if ( ehto ) lause ehto on lauseke, joka palauttaa boolean-tyypin arvon (true /false). lause on yksittäinen tai lohkolause, joka suoritetaan vain jos ehto-lauseke palauttaa arvon true. Esimerkki final double RAJA = 18.0; if (lämpötila<raja) System.out.println("Liian kylmää (" + lämpötila + " astetta)"); 10/19/99 E. Hyvönen: Java Osa 3 8 Ehtolause if- if ( ehto ) lause1 lause2 Jos ehto==true suoritetaan lause1, muuten lause2. Sisäkkäiset (nested) ehdolauseet -haara liittyy viimeisimpään edeltävään iflauseeseen, jolla ei vielä ole -haaraa. Selvyyden vuoksi harkitse lohkojen käyttöä haaroissa Merkitään haara "{" ja "" merkkien väliin. 10/19/99 E. Hyvönen: Java Osa 3 9 Esimerkki: monta testiä Kahden kolikon heiton tulostus if (kolikko1 = = KRUUNA) if (kolikko2 = = KRUUNA) System.out.println("kaksi kruunaa"); System.out.println("kruuna ja klaava"); if (kolikko2 = = KRUUNA) System.out.println("klaava ja kruuna"); System.out.println("kaksi klaavaa"); 10/19/99 E. Hyvönen: Java Osa 3 10 Esimerkki: monivalinta Edellinen esimerkki ylimääräisillä selventävillä suluilla if (kolikko1 = = KRUUNA) { if (kolikko2 = = KRUUNA) System.out.println("kaksi kruunaa"); System.out.println("kruuna ja klaava"); { // kolikko1 == KRUUNA if (kolikko2 = = KRUUNA) System.out.println("klaava ja kruuna"); System.out.println("kaksi klaavaa"); if (a <0) System.out.println("a<0"); if (a<1) System.out.println("0<=a<1"); if (a<2) System.out.println("1<=a<2"); 10/19/99 E. Hyvönen: Java Osa /19/99 E. Hyvönen: Java Osa

3 Ehto-operaattori:?: Ehdollisuus voidaan ilmaista myös arvon palauttavana ehtolausekkeena. ehto? lauseke1 : lauseke2 ehto: boolean arvon palauttava lauseke lauseke1: palautetaan koko ehtolausekkeen arvona, jos ehto=true. lauseke2: palaututetaa koko ehtolausekkeen arvona, jos ehto=false. 10/19/99 E. Hyvönen: Java Osa 3 13 Esimerkki total = (total > MAX)? total + 1: total + 2; Sama kuin: if (total > MAX) total = total +1; total = total + 2; 10/19/99 E. Hyvönen: Java Osa 3 14 Monihaarainen ehtolause: switch int isompi = (x > y)? x : y; System.out.println("Pienempi: " + ((n < m)? n : m)); Huom. operaattoreiden presedenssijärjestys! 10/19/99 E. Hyvönen: Java Osa 3 15 Näppärä ja tehokas monihaarainen ehtolause switch (lauseke) { case arvo1: lause-lista1 case arvo2: lause-liusta2 default: lause-listan Vastaa sisäkkäisiä if-lauseita, mutta: Haarautumis testi lasketaan vain kerran. Haarat eivät välttämättä sulje pois toisiaan. 10/19/99 E. Hyvönen: Java Osa 3 16 Esimerkki Testi lauseke palauttaa arvonaan kokonaisluvun tai merkin Esim. totuusarvo tai desimaaliluku ei kelpaa! Laskenta haarautuu arvoa vastaavaa case-haaraan. Jos vastaavaa arvoa ei ole lueteltu, lasketaan default-haara. Huom: Ellei valitussa haarassa keskeytetä laskentaa esim. break-lauseella, lasketaan myös kaikki myöhemmät haarat i+1, i+2,, default! Haara sulkee pois vain sitä edeltävät haarat! 10/19/99 E. Hyvönen: Java Osa 3 17 String sana = "aurinko"; switch (sana.charat(0)) { case 'a': System.out.println("On a-kirjain"); // Lohkoa { ei merkitä vokaali_laskuri++; case 'e': // Haaroissa e-ä ei tehdä mitään, mutta laskenta case 'i': // mutta laskenta etenee ö-haaraan... case 'o': case 'u': case 'ä': case 'ö': System.out.println("On muu vokaali kuin a"); vokaali_laskuri++; // Switch lauseen laskenta loppuu tähän. default: System.out.println("On konsonantti"); konsonantti_laskuri++; 10/19/99 E. Hyvönen: Java Osa

4 Kertausta Mikä on if- ja?-muodon tärkein ero. Miten switch-lause kirjoitetaan if-then- lauseilla? Milloin se on helppoa/vaikeaa? Kumpi esitystapa on tehokkaampi ja miksi? Laskennan toisto 10/19/99 E. Hyvönen: Java Osa 3 19 While -lause while (ehto) lause Ehto testataan ennen laskentaa. Lause suoritetaan niin kauan kuin ehto toteutuu. Lauseen suoritus johtaa yleensä ennemmin tai myöhemmin johtaa tilanteeseen ehto==false Muuten joudutaan ikuiseen silmukkaan (infinite loop) Toinen mahdollisuus laskennan lopettamiseen Ehtolause, joka haarassa on break-lause. break lopettaa vain sisikkäisimmän toistolauseen laskennan; mahdollinen toisto ylemmällä tasolla jatkuu. 10/19/99 E. Hyvönen: Java Osa 3 21 Esimerkki class Laskin { public static void main(string [] args) { final int LIMIT = 5; int count = 1; while (count<=limit) { System.out.println(count); count++; // count=count+1; System.out.println("Loppu"); 10/19/99 E. Hyvönen: Java Osa 3 22 Esimerkki: Ikuinen silmukka class Ikuinen { static public static void main(string [] args) { final int LIMIT = 5; int count = 1; while (count<=limit) { System.out.println(count); count--; System.out.println("Loppu"); 10/19/99 E. Hyvönen: Java Osa 3 23 for-lause Lauseen ehdollinen toisto peräkkäisillä arvoilla for (alkuasetus; ehto; eteneminen) lause alkuasetus: lause, joka suoritetaan yhden kerran ennen for-lauseen varsinaista laskentaa. Tyypillisesti esitellään ja asetetaan for-lauseessa käytettävien muuttujien arvoja. ehto: for-lause suoritetaan seuraavan kerran vain jos ehto palauttaa arvon true ennen toistoa. eteneminen: lause, joka suoritetaan jokaisen toistokerran jälkeen lause: toistettava lause/lohko. 10/19/99 E. Hyvönen: Java Osa

5 Esimerkki int i; for (i = 1; i < 10; i++) System.out.println(i*i); System.out.println("Tehty " + i + " kertaa."); for (int i = 1; i < 10; i=i+1) // i on for-lauseen sisäinen muuttuja System.out.println(i*i); System.out.println("Tehty"); // i ei käytettävissä // ESIMERKKI: Vokaalien laskentaa int a_laskuri = 0, e_laskuri = 0, i_laskuri = 0; int o_laskuri = 0, muu_laskuri = 0; String lainaus = "Tulin, näin, voitin"; for (int i = 0; i<lainaus.length(); i++) // Indeksi alkaa 0:sta switch (lainaus.charat(i)) { case 'a': a_laskuri++; case 'e': e_laskuri++; case 'i': i_laskuri++; case 'o': o_laskuri++; default: muu_laskuri++; System.out.println("a-määrä:" + a_laskuri); System.out.println("e-määrä:" + e_laskuri);... 10/19/99 E. Hyvönen: Java Osa /19/99 E. Hyvönen: Java Osa 3 26 do-while -lause Loppuehtoinen lauseen toisto do lause while ( ehto) lause: Suoritetaan ensin kerran. Suorituksen jälkeen testataan ehto. ehto: Jos ehto palauttaa arvon true, lause suoritetaan uudelleen niin kauan kuin ehto toteutuu (testi aina suorituksen jälkeen). 10/19/99 E. Hyvönen: Java Osa 3 27 Esimerkki int i; for (i = 1; i < 10; i=i+1) System.out.println(i*i); int i = 1; do { System.out.println(i*i); i=i+1; while (i < 10); 10/19/99 E. Hyvönen: Java Osa 3 28 Toiston lopettaminen:break Toistolauseiden laskenta voidaan keskettää breaklauseella. Toisto kyseisellä tasolla lopetataan ilman, että mahdollisia toistolauseen ehtoja tarkistetaan, Esimerkki: for (int n = 1; n <= 20; n++) { // Tulostaa luvut 111 if (n==12) System.out.println("n = " + n); 10/19/99 E. Hyvönen: Java Osa 3 29 break-lauseen argumenttina voidaan käyttää hyppyosoitetta (label): break osoite; // Osoite on tunniste Laskenta jatkuu tällöin koodissa olevan tunnisteen jälkeisestä lauseesta. ulompi: while () {... sisempi: while () { if () break ulompi; if () break sisempi; 10/19/99 E. Hyvönen: Java Osa

6 break-lauseen käyttö ei ole välttämätöntä. Voidaan korvata ehdoilla. break-lauseen käyttö toistolauseessa johtaa helposti spagettikoodiin Ei suositella toiston lopetuskeinona. Toistokerran ohittaminen: continue continue-lauseella voidaan ohittaa toistolauseen loppujen lauseiden suoritus. Erona break-keskeytykseen on, että toistoa ei lopeteta, ainoastaan kyseinen toistokerta. Esimerkki: for (int n = 1; n <= 20; n++) { if (n==12) // Vain luku 12 jää tulostamatta, continue; System.out.println("n = " + n); // Muut /19/99 E. Hyvönen: Java Osa /19/99 E. Hyvönen: Java Osa 3 32 Kertausta continue-lauseen argumenttina voidaan käyttää hyppysoitetta (label) (kuten break-lauseessa): continue osoite; // Osoite on tunniste laskenta jatkuu tällöin koodissa olevaa tunnistetta vastaavan toiston alusta. continue-lauseen käyttö ei ole välttämätöntä eikä yleensä suositeltavaa Voidaan korvata ehdoilla. Millaisissa tilanteissa käytät while-, do-while ja for-lauseita toistoon? Mikä ero on break ja continue lauseilla. Milloin niitä käytetään? 10/19/99 E. Hyvönen: Java Osa /19/99 E. Hyvönen: Java Osa 3 34 Aliohjelmat Laskennan hierarkisuus Ohjalma voidaan jakaa hierarkisiin osiin, aliohjelmiin Ongelman ratkonta osissa on helpompaa kuin yhtenä kokonaisuutena Rekursion (recursion) avulla ongelman ratkonta voidaan palauttaa pienempiin samanmuotoisiin ongelmiin Rekursiivinen ohjelma kutsuu itse itseään. Rekursion avulla voidaan toteuttaa toisto ilman toistolauseita. 10/19/99 E. Hyvönen: Java Osa

7 Esimerkiksi ruokaresepti: Alireseptikutsu "Keitetään 100g makaronia" korvaa mutkikkaamman keittämisen alialgoritmin (reseptin). Ylemmällä tasolla voidaan keskittyä varsinaiseen aterian valmistukseen alemmat yksityiskohdat unohtaen. Esimerkki rekursiosta Puumainen hakemisto voidaan tulostaa tulostamalla sen alipuut, jotka voidaan tulostaa... 10/19/99 E. Hyvönen: Java Osa 3 37 Saavutettavat edut Mutkikkaat kokonaisuudet voidaan korvata aliohjelmakutsuilla Koodi lyhenee ratkaisevasti, sillä mutkikasta kuvausta ei tarvitse toistaa. Korjauksia tehdään vain yhteen paikkaan (aliohjelmaan). Ongelman jäsentyy pienempiin osiin. Ongelma voidaan ratkaista luontevasti käsitteellisesti eri tasoilla Ohjelmat yksinkertaistuvat Javassa aliohjelmat toteutetaan metodeilla. 10/19/99 E. Hyvönen: Java Osa 3 38 Metodi Metodiin liittyy Metodin määrittely, jossa kuvataan metodille annettavat lähtötiedot, käyttötapa, toiminta (algoritmi) ja metodin palauttama arvo. Metodin kutsu Kun metodi on määritelty, sitä voidaan kutsua toisista metodeita määritellyllä tavalla. Metodin määrittely Metodi vastaa perinteisiä (ali)ohjelmaa. Määrittely kirjoitetaan luokkamäärittelyn sisään. Määrittely on luokkakohtainen: Eri luokilla voi olla samannimisiä erilaisia metodeja. Määrittely on parametrikohtainen. Samannimisellä metodilla voi olla eri määrittelyjä eri parametrikombinaatioita varten. 10/19/99 E. Hyvönen: Java Osa /19/99 E. Hyvönen: Java Osa 3 40 Metodin määrittelymuoto Yleismuoto: [määreet] arvotyyppi nimi ([parametrit]) [throws nimet] { algoritmi Määreet : mm. metodin käytettävyys muissa luokissa Arvotyyppi: Metodi voi palauttaa arvon, jonka on oltava annettua tyyppiä. Arvo palautetaan algoritmissa return-komennolla. Nimi: metodin kutsumanimi (tunniste) Metodien nimet kirjoitetaan muuttujien tavoin pienellä alkukirjaimella (suositus). Parametrit: Metodin muodolliset (formal) parametrit Metodia kutsuttaessa sille voidaan välittää tietoa parametrien välityksellä. throws nimet Poikkeusten käsittelyyn liittyvä ilmaus. Algoritmi: Metodin toiminnan kuvaus Java-lohkona. (Ns. abstrakteilla metodeilla lohko voi olla tyhjä.) 10/19/99 E. Hyvönen: Java Osa /19/99 E. Hyvönen: Java Osa

8 Esimerkkimetodi class Laskin { double lasku (int x, int y) { y=y*y; return x+2*y; // Metodin kutsun arvo // lasku-metodi // Luokkamäärittelyn loppu Metodin kutsuminen Kutsun muoto: metodin_tunniste(argumentit) Metodin_tunniste: Yksinkertaisimmillaan metodin nimi: Esimerkiksi lasku(2, 3.1); Toisten luokkien metodeja kutsuttaessa myös luokka tai sen ilmentymä pitää yksilöidä. Tähän palataan olio-ohjelmoinnin yhteydessä 10/19/99 E. Hyvönen: Java Osa /19/99 E. Hyvönen: Java Osa 3 44 Esimerkki: rekursiivinen kutsu Argumentit: Todelliset (actual) parametrit, joita metodin halutaan käyttävän Näiden on oltava määrittelyssä esiteltyä tyyppiä. Javassa parametrien määrä on kiinteä Ei valinnaisia parametreja kuten esim. C++:ssa. Ei parametrien oletusarvoja. 10/19/99 E. Hyvönen: Java Osa 3 45 class Kaanna { // Tulostaa aakkoset annettujen merkkien välissä käänteisesti // Esim. java Kaanna a d -> dcba public static void main(string args[]) { kaanteisesti((int)args[0].charat(0), (int)args[1].charat(0)); static void kaanteisesti(int alku, int loppu) { if (alku>=loppu) { // Rekursion lopetusehto System.out.print((char)alku); return; { // Rekursiivinen haara kaanteisesti(alku+1, loppu); System.out.print((char)alku); 10/19/99 E. Hyvönen: Java Osa 3 46 Parametrien sitominen Kutsussa muodollisille parametreille annetaan todellisten parametrien mukaiset arvot. Javassa vain ns. arvoparametreja (value parameter) Muodollinen parametri on kuin paikallinen (local) muuttuja, jolle annetaan kutsussa arvoksi todellinen parametri. Metodista palattaessa sidokset häviävät. Paikallisen muuttujan sidos ei näy metodin ulkopuolelle. 10/19/99 E. Hyvönen: Java Osa 3 47 Esimerkki class Laskin { // Alkeistyyppisen arg:n arvomuutos ei näy ulospäin void ylilasku () { int x = 1, y =2; int tulos = alilasku(x,y); System.out.println(x); // tulostuu 1 System.out.println(y); // tulostuu 2 System.out.println(tulos); // tulostuu 4 // yli-lasku int alilasku (int x, int y) { x++; y=x+2; // Eri x ja y kuin ylilasku:ssa return y; // Metodin kutsun arvo // ali-lasku // Luokkamäärittelyn loppu 10/19/99 E. Hyvönen: Java Osa

9 Esimerkki Paikallinen muuttuja voi viitata metodin ulkopuolella näkyvään tietoon. Jos tätä tietoa itseään modifioidaan (siis ei paikallisen muuttuajan sidosta tietoon), jäävät muutokset voimaan metodin laskennan jälkeenkin ja näkyvät ulkopuolelle. Näin metodi voi välittää tietoa ulospäin paitsi arvonsa kautta myös sivuvaikutuksina (side effect). Vain viittaustietotyyppiset parametrit voivat viitata tällaiseen muutettavissa olevaan tietoon (olioihin). Olioihin palataan myöhemmin. class Laskin { // Viitetyyppisen arg:n arvon muutos näkyy ulospäin void ylilasku () { StringBuffer x = new StringBuffer(); alilasku(x, "Näkyy "); alilasku(x, "ulos"); // Sijoitus tarpeeton System.out.println(x); // tulostuu: Näkyy ulos // yli-lasku void alilasku (StringBuffer x, String y) { x.append(y); // Eri x ja y kuin ylilasku:ssa, mutta viittaavat // samaan olioon, jota voi modifioida. // ali-lasku // Luokkamäärittelyn loppu 10/19/99 E. Hyvönen: Java Osa /19/99 E. Hyvönen: Java Osa 3 50 Metodin palauttama arvo Arvona palautetaan viite olioon Alla y ja x viittaavat ylilasku:ssa samaan olioon class Laskin { // Viitetyyppisen arg:n arvon muutos näkyy ulospäin void ylilasku () { StringBuffer x = new StringBuffer(); StringBuffer y = alilasku(x, "x:n ja y:n arvo "); System.out.println(x); // sama tulostus kuin alla System.out.println(y); // sama tulostus kuin yllä // yli-lasku StringBuffer alilasku (StringBuffer x, String y) { x.append(y); return x; // ali-lasku // Luokkamäärittelyn loppu 10/19/99 E. Hyvönen: Java Osa 3 51 Metodien kuormittaminen Luokan metodeilla voi olla sama nimi, mutta erilaiset parametrit eri määrä parametreja ainakin yksi eri tyyppinen parametri Tätä kutsutaan metodin kuomittamiseksi (overloading) Esimerkiksi metodi println on kuormitettu: void println(int n); // Tulostaa kokonaisluvun void println(double n); // Tulostaa liukuluvun void println(string str); // Tulostaa merkkijonon... 10/19/99 E. Hyvönen: Java Osa 3 52 // // Arto Wikla: Ohjelmoinnin perusteet Java-kielellä, OtaDATA 1998 // kappale 2.5.5, s. 46 // public class Nelio { private static void tulostanelio() { // "private static" selostetaan myöh. System.out.println("neliö"); private static void tulostanelio(int luku) { System.out.println(luku*luku); private static void tulostanelio(double luku) { System.out.println(luku*luku); jatkuu... 10/19/99 E. Hyvönen: Java Osa 3 53 jatkoa... private static void tulostanelio(int i, int j) { for (int a=0; a<i; ++a) { for (int b=0; b<j; ++b) System.out.print("*"); System.out.println(); public static void main(string[] args){ // PÄÄOHJELMA tulostanelio(); tulostanelio(12); // Double:n tunnistaa desimaali pisteestä tulostanelio(3.14); tulostanelio(4, 6); 10/19/99 E. Hyvönen: Java Osa

10 Metodin muuttujat/parametrit Metodityypit Metodissa määritellyt parametrit ja muuttujat ovat paikallisia muuttujia (local variable). Niitä voidaan käyttää vain metodin omassa algoritmissa. Muuttujien arvot säilyvät vain yhden kutsun ajan. Metodissa ei voi käyttää toisen metodin muuttujia. (Metodeissa voi luonnollisesti olla samannimisiä, mutta eri muuttujia.) Muuttujilla ei ole alkuarvoja. Parametrit saavat automaattisesti alkuarvot kutsunsa mukaan. Muuttuja on käytettävissä määrittelykohdastaan määrittelylohkonsa loppuun saakka. Eri määreiden ym. mekanismien avulla voidaan luoda erityyppisiä metodeja Keskeistä olioajattelun kalustoa. Metodityyppeihin palataan tarkemmin jatkossa 10/19/99 E. Hyvönen: Java Osa /19/99 E. Hyvönen: Java Osa 3 56 Kertausta Milloin aliohjelmia on syytä käyttää? Miten parametrit välitetään metodille? Voiko metodin parametrin arvosidos säilyä metodin laskennan jälkeen? Milloin metodin parametrin arvon muutokset voivat näkyä metodin ulkopuolelle? Lisätietoja Arto Wikla: Ohjelmoinnin perusteet Java-kielellä, OtaDATA, John Lewis, William Loftus: Java Software Solutions, Addison-Wesley, /19/99 E. Hyvönen: Java Osa /19/99 E. Hyvönen: Java Osa

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

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

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

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

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

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if 3 Lauseet Lue kirjasta s. 54-84 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

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

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

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

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

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

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

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

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

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

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

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus Sisällys 19. Olio-ohjelmointia Javalla Olioiden esittely ja alustus. Metodit Yleistä metodeista. Mihin metodeja tarvitaan? Metodien määrittely. Omat metodit: nimeäminen, paikka, kutsuminen, parametrit

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

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 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

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

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Kompositio Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä kompositio on? Tili - : String - : double 1 1 Kayttoraja

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

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

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ä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

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

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja

Lisätiedot

Mikä yhteyssuhde on?

Mikä yhteyssuhde on? 1 Yhteyssuhde Mikä yhteyssuhde on? Yhteyssuhde Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma 1 Mikä yhteyssuhde on? Tili - : String - : double * 1 Asiakas - hetu: String - : String

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

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

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi

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

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

Lisätiedot

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

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 1: Ohjelmoinnin perusteita. Ohjelmoinnin kehityssuuntia. Ohjelmointi 50-60 luvuilla. Ohjelmointi 80-90 luvuilla

Sisällys. JAVA-OHJELMOINTI Osa 1: Ohjelmoinnin perusteita. Ohjelmoinnin kehityssuuntia. Ohjelmointi 50-60 luvuilla. Ohjelmointi 80-90 luvuilla JAVA-OHJELMOINTI Osa 1: Ohjelmoinnin perusteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Sisällys Ohjelmoinnin kehityssuuntia Ohjelman kehittäminen Algoritmin käsite Muuttujan käsite

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

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

812341A Olio-ohjelmointi, 2016. Olio-ohjelmoinnin peruskäsitteet ja Java-kieli

812341A Olio-ohjelmointi, 2016. Olio-ohjelmoinnin peruskäsitteet ja Java-kieli 812341A Olio-ohjelmointi, 2016 Olio-ohjelmoinnin peruskäsitteet ja Java-kieli Sisältö 1. Java-kieli 2. Luokka 3. Luokkakaaviot 4. Lisää Javaa Javalla 2 Java-kieli n Sun Microsystems tutkimusprojekti 1991

Lisätiedot

JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia)

JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) Esim 5.1 laskujärjestys operaattorit var tulos = 5 + 4 * 12 / 4; document.write("5 + 4 * 12 / 4 laskutoimituksen tulos

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa Java-kielen perusteet Teoria ja ohjelmointitehtävät Java-kielen perusteet 3 YLEISKATSAUS KURSSIN SISÄLTÖIHIN 10 JAVA-KIELEN PERUSTEET 10 OPISKELUN ALOITTAMINEN

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

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

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

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Tietorakenneluokkia 2: HashMap, TreeMap Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap Tietorakenneluokkia ja -rajapintoja Java tarjoaa laajan kokoelman tietorakennerajapintoja ja - luokkia. Aiemmin

Lisätiedot

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) 1(37) PERIYTYMINEN (inheritance) YLILUOKKA (superclass) ALILUOKKA (subclass) A) on käytännöllinen ohjelmointitekniikka = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) B) on käsitteiden

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

Osa. Toimintojen toteuttaminen ohjelmissa vaatii usein haarautumisia ja silmukoita. Tässä luvussa tutustummekin seuraaviin asioihin:

Osa. Toimintojen toteuttaminen ohjelmissa vaatii usein haarautumisia ja silmukoita. Tässä luvussa tutustummekin seuraaviin asioihin: Osa II 8. oppitunti Kehittynyt ohjel- man kulku Toimintojen toteuttaminen ohjelmissa vaatii usein haarautumisia ja silmukoita. Tässä luvussa tutustummekin seuraaviin asioihin: Mitä silmukat ovat ja kuinka

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

JAVA-OHJELMOINNIN PERUSTEET. Sisältö 1. JAVA OHJELMOINTI... 2 2. LÄHTEITÄ... 19 3. HARJOITUKSET... 20 4. MUUTAMA MALLIRATKAISU...

JAVA-OHJELMOINNIN PERUSTEET. Sisältö 1. JAVA OHJELMOINTI... 2 2. LÄHTEITÄ... 19 3. HARJOITUKSET... 20 4. MUUTAMA MALLIRATKAISU... 1 JAVA-OHJELMOINNIN PERUSTEET Sisältö 1. JAVA OHJELMOINTI... 2 2. LÄHTEITÄ... 19 3. HARJOITUKSET... 20 4. MUUTAMA MALLIRATKAISU... 27 2 1. JAVA OHJELMOINTI Kurssin tavoite ensimmäinen ohjelmointikurssi

Lisätiedot

Luokan sisällä on lista

Luokan sisällä on lista 1 Luokan sisällä on lista Luokan sisällä lista Listan sisältävä luokka Konstruktorit get-metodi Lista muissa metodeissa addxx-metodi Yksinkertainen pääohjelma Kertauksen List-luokan metodeja 1 Luokan sisällä

Lisätiedot

2. Olio-ohjelmoinista lyhyesti 2.1

2. Olio-ohjelmoinista lyhyesti 2.1 2. Olio-ohjelmoinista lyhyesti 2.1 Sisällys Yleistä. Oliot ja luokat. Attribuutit. Olioiden esittely ja alustus. Rakentajat. Olion operaation kutsuminen. 2.2 Yleistä Olio-ohjelmointia käsitellään hyvin

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

Rinnakkaisohjelmointi, Syksy 2006

Rinnakkaisohjelmointi, Syksy 2006 Rinnakkaisohjelmointi, Syksy 2006 17.12.2006 Opintopiiri WTF Mika Holmström Paula Kemppi Janne Piippo Lasse Lukkari Javan semaforit 1. Menetelmän käyttötarkoitus ja sovellusalue Semaforin idea kehitettiin

Lisätiedot

Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Ta

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

Lisätiedot

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

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi

Lisätiedot

YHTEYSSUHDE (assosiation)

YHTEYSSUHDE (assosiation) YHTEYSSUHDE (assosiation) -Mikä on yhteyssuhde? -Miten toteutan yhteyssuhteen? 1 Mikä on yhteyssuhde? Yhteyssuhde kuvaa kahden olion välistä suhdetta: Esim. Auto Henkilö, omistussuhde Tili Asiakas, omistussuhde

Lisätiedot

2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma muuttaa parametrejaan tai globaaleja muuttujia, tulostaa jotakin jne.

2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma muuttaa parametrejaan tai globaaleja muuttujia, tulostaa jotakin jne. Proseduurit Proseduuri voi olla 1) Funktio, joka palauttaa jonkin arvon: real function sinc(x) real x sinc = sin(x)/x... y = sinc(1.5) 2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma

Lisätiedot

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

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki Tehtävä 1 Koherentti selitys Koherentti esimerkki ½p ½p Tehtävä 2 Täysiin pisteisiin edellytetään pelaajien tulostamista esimerkin järjestyksessä. Jos ohjelmasi tulostaa pelaajat jossain muussa järjestyksessä,

Lisätiedot

TIETORAKENTEET JA ALGORITMIT

TIETORAKENTEET JA ALGORITMIT TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1 String-vertailusta ja Scannerin käytöstä (1/2) Vertailuja tehdessä törmätään usein tilanteeseen, jossa merkkijonoa (esimerkiksi merkkijonomuuttujaa) pitää vertailla toiseen merkkijonoon. Tällöin tavanomainen

Lisätiedot

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia.

Olio-ohjelmoinnissa luokat voidaan järjestää siten, että ne pystyvät jakamaan yhteisiä tietoja ja aliohjelmia. 4. Periytyminen 4.1. Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi

Lisätiedot

Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet:

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

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

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

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

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

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

1. Olio-ohjelmointi 1.1

1. Olio-ohjelmointi 1.1 1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

UML -mallinnus TILAKAAVIO

UML -mallinnus TILAKAAVIO UML -mallinnus TILAKAAVIO SISÄLLYS 3. Tilakaavio 3.1 Tilakaavion alku- ja lopputilat 3.2 Tilan nimi, muuttujat ja toiminnot 3.3 Tilasiirtymä 3.4 Tilasiirtymän vai tilan toiminnot 3.5 Tilasiirtymän tapahtumat

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

T Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

T Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010 11. Luokka Opetellaan seuraavaksi, miten omia luokkia kirjoitetaan. Aikaisemmin olikin jo esillä, että luokka on tietorakenne, joka sisältää sekä tiedot (attribuutit) että niitä käsittelevät aliohjelmat

Lisätiedot

1. Ohjelmoinnin perusteet, kesä 2012... 2 1.1 Aloittaminen... 2 1.2 Tulostaminen... 6 1.3 Muuttujat... 8 1.4 if-rakenne... 12 1.5 Metodit... 15 1.

1. Ohjelmoinnin perusteet, kesä 2012... 2 1.1 Aloittaminen... 2 1.2 Tulostaminen... 6 1.3 Muuttujat... 8 1.4 if-rakenne... 12 1.5 Metodit... 15 1. 1. Ohjelmoinnin perusteet, kesä 2012.......................................................................... 2 1.1 Aloittaminen........................................................................................

Lisätiedot

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

1. OPINTOJAKSON TAVOITTEET, SISÄLTÖ JA ESITIEDOT... 3 2. SUORITUSTAPA... 4 Sisällys 1. OPINTOJAKSON TAVOITTEET, SISÄLTÖ JA ESITIEDOT... 3 2. SUORITUSTAPA... 4 3. MATERIAALIT JA OHJELMISTOT... 4 3.1 Oppimateriaalit ja niiden lukujärjestys sekä ViLLE... 4 3.2 Oheismateriaali...

Lisätiedot

Ohjelmointityö 3. Mikko Laamanen 185667

Ohjelmointityö 3. Mikko Laamanen 185667 Ohjelmointityö 3 Mikko Laamanen 185667 Sisällysluettelo Tehtävän määrittely ja ratkaisuperiaate... 1 Tehtävän määrittely... 1 Ratkaisuperiaate... 1 Ohjelman käyttöohje... 1 Syötteet ja tulosteet... 1 Ohjelman

Lisätiedot

T740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

T740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010 12. Periytyminen Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi

Lisätiedot

Ohjelmoinnin perusteet, 1. välikoe

Ohjelmoinnin perusteet, 1. välikoe Ohjelmoinnin perusteet,. välikoe Nimi: Opiskelijanumero:.. 3. 4. Yhteensä Ohje: Ratkaise kaikki tehtävät. Lähdemateriaalia ja tietokonetta ei saa käyttää. Noudata ohjelmointitehtävissä Java-kielen vakiintuneita

Lisätiedot

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

Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. TIETOKONEOHJELMIEN RAKENNE Perinteiset tietokoneohjelmat alkavat pääohjelmasta, c:ssä main(), jossa edetään rivi riviltä ja käsky käskyltä. Teollisuusautomaation ohjelmiin on lainattu runsaasti perinteisen

Lisätiedot

Kielioppia: toisin kuin Javassa

Kielioppia: toisin kuin Javassa Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien

Lisätiedot

Fortran 90/95. + sopii erityisesti numeriikkaan:

Fortran 90/95. + sopii erityisesti numeriikkaan: Fortran 90/95 + sopii erityisesti numeriikkaan: + optimoivat kääntäjät tehokas koodi + mukana valmiiksi paljon varusfunktioita + kompleksiluvut + taulukko-operaatiot + operaattorit laajennettavissa myös

Lisätiedot

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla

Lisätiedot

3. Binääripuu, Java-toteutus

3. Binääripuu, Java-toteutus 3. Binääripuu, Java-toteutus /*-------------------------------------------------------------/ / Rajapinta SearchTree: binäärisen hakupuun käsittelyrajapinta / / Metodit: / / void insert( Comparable x );

Lisätiedot

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa

Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1. Oliot ja luokat Javaohjelmoinnissa Aalto Yliopisto T-106.2001 Informaatioverkostot: Studio 1 Oliot ja luokat Javaohjelmoinnissa Vesa Laakso 22.9.2012 Sisällysluettelo Sisällysluettelo... 1 Johdanto... 2 1. Luokka... 2 2. Olio... 2 3. Luokan

Lisätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot

Interaktiivinen tarinankerronta

Interaktiivinen tarinankerronta Interaktiivinen tarinankerronta Tehtävä 1: Tarinan alku pääohjelmaan Main. java ei tehdä muutoksia tulostusrivit tiedostoon Kayttoliittyma.java tulostus lyhyesti sout + tab komennolla Tiedoston Kayttoliittyma.java

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015

815338A Ohjelmointikielten periaatteet 2014-2015 815338A Ohjelmointikielten periaatteet 2014-2015 X Skriptiohjelmointi Sisältö 1. Johdanto 2. Skriptikielten yleispiirteitä 3. Python 815338A Ohjelmointikielten periaatteet, Skriptiohjelmointi 2 X.1 Johdanto

Lisätiedot

C# olio-ohjelmointi perusopas

C# olio-ohjelmointi perusopas Paavo Räisänen C# olio-ohjelmointi perusopas www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa. Kuitenkaan omille nettisivuille opasta ei saa

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon

Lisätiedot

JavaScript alkeet Esimerkkikoodeja moniste 2

JavaScript alkeet Esimerkkikoodeja moniste 2 JavaScript alkeet Esimerkkikoodeja moniste 2 Esim 5.1 laskujärjestys operaattorit var tulos = 5 + 4 * 12 / 4; document.write("5 + 4 * 12 / 4 laskutoimituksen tulos on " + tulos,"");

Lisätiedot

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma:

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma: Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 2 1. Toteuta Pythonilla seuraava ohjelma: 2. Tulosta Pythonilla seuraavat luvut allekkain a. 0 10 (eli, näyttää tältä: 0 1 2 3 4 5 6 7 8 9 10 b. 0 100 c. 50 100 3.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

Taulukot, silmukat ja muut joka koodin pikku veijarit

Taulukot, silmukat ja muut joka koodin pikku veijarit Taulukot, silmukat ja muut joka koodin pikku veijarit Janne Käki 7.9.6 MERKKI liikenne jono METRI para laku MOGARI ATRI psyki buutti ESINE pelottelu ellistäminen runsauden kuono TUNTI SARVI kusi assistentti

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2011 1 / 34 Luentopalaute kännykällä käynnissä! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2011 1 / 37 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot