OHJELMOINTITEKNIIKKA 1

Koko: px
Aloita esitys sivulta:

Download "OHJELMOINTITEKNIIKKA 1"

Transkriptio

1 OHJELMOINTITEKNIIKKA 1

2 Kurssin suoritus Kurssin kahdesta tentistä saa kummastakin enintään 10 pistettä ja harjoituksista enintään 10 pistettä eli kurssin maksimipistemäärä on 30. Arvosana määräytyy oheisen taulukon mukaan. Tentit ovat ohjelmointitehtäviä. Harjoituksen jokaisesta kolmesta tehdystä tehtävästä saa 1 pisteen (hyvä yritys riittää). Opiskelija lähettää harjoitusohjelmansa sähköpostin liitteenä osoitteeseen eräpäivään mennessä. Tenttiohjelman arviointikriteerit ovat: kääntyy(2), tekee annetun tehtävän(3), ratkaisulogiikka(3), luettavuus(2). Harjoitus- ja tenttipisteet huomioidaan kevään 2015 uusintatenteissä. Uusintatenttejä on kaksi ja ne kattavat kurssin koko aihealueen. Yhdellä uusintatentillä voi korvata yhden tenttisuorituksen. Harjoituksia ei voi korvata eräpäivän jälkeen. Luentomateriaali, luennolla laaditut ohjelmat, harjoitustehtävät ja harjoitusten mallivastaukset löytyvät verkko-osoitteesta PISTEET ARVOSANA <15 0 3

3 Java-kirjoja Mika Vesterholm, Jorma Kyppö: Java-ohjelmointi, Talentum 2008, ISBN Simo Silander, Vesa Ollikanen, Juha Peltomäki: Java, WSOY 2010, ISBN Jukka Harju, Jukka Juslin: Java-ohjelmointi opas ammattimaiseen osaamiseen, Readme.fi 2009, ISBN

4 Java-ohjelmointikielen yleisyys TIOBE Programming Community Index (ohjelmoijia, kursseja, toimijoita) kieli % %muutos 1 2 C Java Objective-C C Basic C# Python PHP Perl JavaScript Visual Basic Visual Basic.NET Ruby F# Pascal Transact-SQL ActionScript Delphi Lisp PL/SQL

5 Ohjelmointikielten käytön kehitys 7

6 OHJELMANKEHITYS JAVA-YMPÄRISTÖSSÄ 8

7 Ohjelman suoritus tietokoneessa prosessori keskusmuisti levymuisti käskykanta compile execute Editori Ohjelma Kääntäjä/Tulkki open save tiedostot Ohjelma Tiedot 9

8 Java-kielen tulkitseminen AJAMINEN SYÖTTÖTIEDOT ohjelma.java ohjelma.class OMA OHJELMA LAUSEKIELELLÄ KÄÄNTÄJÄ KONEKIELELLÄ OMA OHJELMA VÄLIKIELELLÄ (tavukoodi) TULKKI JVM:ssä (JRE) Editori JDK JAVAN KIRJASTOT TULOSTIEDOT 12

9 Työvälineiden asennus Java SE 8 (JDK, JRE) dokumentaatio Eclipse Luna NetBeans 8.0 JCreator jgrasp JBuilder Linkit kurssin sivuilla Käyttöopetus harjoituksissa 13

10 Editori ja dokumentaatio Projekti, lähdekielihakemistot, package, luokka, 14

11 ALGORITMINEN AJATTELU 15

12 Ongelman hahmottaminen ohjelmaksi PALVELU Input Output TOIMINTA Prosessi TIEDOT Muuttujat 4 8 LUVUT LUKU1 LUKU2 KESKIARVO Puoliohjelma Peräkkäin Toisto Valinta Tiedot toiminnan kuvauksesta 1. Lisää summaan annetut luvut 2. Jaa summa lukujen määrällä 6 VASTAUS VASTAUS Hahmottamisprosessi ongelmasta ratkaisuun: toiminnan ymmärtäminen + algoritmin keksiminen + tekniikan osaaminen + ohjelmointitekniikkaa 16

13 Keskiarvo-vuokaavio KESKIARVO LUE LUKU LUKU >= 0 E K VASTAUS= VASTAUS+LUKU N=N+1 VASTAUS= VASTAUS / N TULOSTA VASTAUS LOPPU 17

14 Keskiarvo-puoliohjelma VASTAUS = 0, N = 0, LUKU PERÄKKÄISYYS LUVUT L: LUE LUKU JOS LUKU < 0 MENE LOPPU VALINTA Peräkkäin Valinta Toisto VASTAUS = VASTAUS + LUKU N = N + 1 MENE L TOISTO VASTAUS LOPPU: VASTAUS=VASTAUS / N TULOSTA VASTAUS 18

15 Java-ohjelman rakenne L: PUOLIOHJELMA VASTAUS = 0, N = 0, LUKU LUE LUKU JOS LUKU < 0 MENE LOPPU JAVA-OHJELMA public class Keskiarvo { public static void main(string[] args) { double vastaus=0, luku; int n=0; VASTAUS = VASTAUS + LUKU N = N + 1 MENE L LOPPU: VASTAUS=VASTAUS / N TULOSTA VASTAUS luku = Lue.desi( ); while (luku!= 0) { vastaus = vastaus + luku; vastaus += luku; n = n + 1; n++; luku = Lue.desi( ); vastaus = vastaus / n; vastaus /= n; System.out.println( Keskiarvo on +vastaus); 19

16 Ohjelman laatimisen vaiheet Editori kuntoon Perspektiivit, working setit, workspacet, Projektit Lähdekoodikansiot (java) Package-kansiot Tuloskoodikansio (class) Koodin kirjoitus editorilla Kääntäminen Virheen jäljitys Välitulosteet Debuggaus Testaus Integrointi järjestelmään Käyttöönotto 20

17 Luentoharjoitus 1 Minkälaisia asioita teet päivittäin a) peräkkäin b) toistuvasti c) valitsemalla Eroaako ihminen tietokoneesta? 21

18 Luentoharjoitus 2 Tehdään ohjelma, joka antaa käyttäjän pelata sudokua. Minkälaisia tehtäviä ja missä järjestyksessä ne suoritetaan. 22

19 Luentoharjoitus 3 Muuttuja SALDO = euroa. Muuttuja KORKO = 4 %. Muuttuja VUODET = 5 vuotta. Laadi (puoli)ohjelma, joka kertoo, kuinka paljon rahaa tilillä on VUODET-muuttujan osoittaman vuosimäärän kuluttua. KorkoWhile.java 23

20 Luentoharjoitus 4 Laadi radioaktiivisen aineen puoliintumisen laskeva (puoli)ohjelma siten, että ohjelma ilmoittaa, milloin radioaktiivisuuden taso on laskenut alle annetun arvon. Mitä muuttujia ohjelmassa tarvitaan? Puoliintumisaika.java 24

21 JAVAN KIRJOITUSTYYLI TIETOTYYPIT OPERAATIOT 25

22 Tekstin jako riveille Sisennykset Välilyönnit Sijoittelu while (paaoma > 0) { velkamarkat = paaoma - lyhennys; if (velkamarkat <= 0) System.out.println( Laina maksettu ); else { paaoma = velkamarkat; System.out.println( Lainaa jäljellä ); 26

23 Kommentit /* Usearivisiä kommentteja voi rajata näin */ // Loppurivi tulkitaan kommentiksi lyhennys=paaoma; // Tässä kommentoin yhtä riviä /** Javadoc-ohjelma näyttää tämän dokumentoinnissa */ 27

24 Kommentit /******************************************************************************* Kuvaus: Ohjelma laskee annetun luvun kertoman (tehtävä 22) Tekijä: Markku Nevanranta (opiskelijanumero) Muutettu: mn Syttötietojen tarkistus lisätty Julkiset metodit: public void lueluku() kysyy luvun public int tulostaluku() tulostaa kertoman *****************************************************************************/ 28

25 Tunnukset Tunnukseksi kutsutaan nimeä, jonka ohjelmoija antaa jollekin nimettävälle asialle: muuttujalle, metodille, vakiolle, luokalle, Tunnusten nimet ovat pituudeltaan rajoittamattomia merkkejä, numeroita Unicode: å, ä, ö pienet ja isot kirjaimet ovat eri merkkejä (palkka, Palkka) luokkien nimissä ei å, ä, ö merkkejä Muuttujien nimet on hyvä alkaa pienellä kirjaimella Monisanaiset muuttujien toinen, kolmas jne. sanat alkavat isoilla kirjaimilla Silmukkalaskureina käytetään lyhyitä (yksikirjaimisia) muuttujanimiä Luokkien nimet alkavat isolla kirjaimella Vakiot kirjoitetaan kokonaan isolla 29

26 Tunnukset int laskuri, kuukaudennumero, palkkavero; for (int i=0; i<100; i++) Luokan nimi public class Auto { Vakiot final int KKLKM = 12; 31

27 Biteistä tietotyypeiksi OHJELMA TIEDOT luku=arvo+2 ASIAKAS string etunimi string sukunimi int luku string osoite Kalle Kehveli 45 Kotikuja 5 ADD R1,123 KalleKehveli45Kotikuja 5 tulkinta/koodaus?

28 Muuttujan rakenne Yksi kenttä: muuttuja = arvo Rakenne eli monta kenttää: muuttuja = osoite Esimerkiksi: Asetus summa = palkka; henkilö = asiakas; Vertailu summa == palkka; henkilö == asiakas; KESKUSMUISTI OHJELMA palkka Asiakas nimi kunta saldo 9500 KALLE VIRTANEN PORI kuukaudet[ ]

29 Perustietotyypit TYYPPI BITTEJÄ ARVOALUE byte short int long float * *10 38 (7 tarkkuus) double * * (15 tarkkuus) char 16 a \n \\ numero (Unicode koodi) boolean enum true, false {arvoluettelo 34

30 Tyyppimuunnokset AUTOMAATTINEN MUUNNOS int a; long b; b = a; byte 8 short 16 char 16 int 32 float 32 long 64 double 64 OHJELMOIJAN TEKEMÄ TYYPPIMUUNNOS int a; long b; a = (int) b; Järkevissä tapauksissa tehdään järkeviä katkaisuja. Järjettömissä tapauksissa vastuu on ohjelmoijalla. 35

31 Luentoharjoitus 5 Mitkä tietotyypit ovat sopivia seuraaville tiedoille? Nimi Palkka Ikä Syntymäaika Puhelinnumero Tieto luottokelpoisuudesta 36

32 Perusoperaatiot (presedenssi ja assosiatiivisuus) [ ]. ( ) e++ e-- ++e --e +e -e! ~ new (tyyppi)e * / % + - << >> >>> < > >= <= ==!= eka = toka = 6; >> säilyttää etumerkin << ja >>> lisää nollan & ^ &&?: = += -= *= /= %= <<= >>= >>>= &= ^= = 37

33 Esimerkki (operaatioita) /*Keskiarvon laskentaohjelma Markku Nevanranta */ public class Keskiarvo { public static void main(string[] args) { double vastaus=0, n=0, luku; luku = Lue.desi( ); while (luku!= 0) { vastaus += luku; //kerätään summaa n++; //lasketaan lukujen määrä luku = Lue.desi( ); vastaus /= n; System.out.println( Keskiarvo on +vastaus); 38

34 Esimerkki (bittioperaatiot) public class Maski { public static void main(string[] args) { final int LUKU = 1; //001 final int KIRJOITUS = 2; //010 final int SUORITUS = 4; //100 int liput = 0; liput = LUKU; //liput = 001 liput = KIRJOITUS; //liput = 011 if ((liput & KIRJOITUS) == KIRJOITUS) System.out.println( On oikeus kirjoittaa ); 40

35 Lukeminen (Lue) Lukeminen voidaan tehdä monella tasolla: 1. Lue-luokkaa käyttäen Rakennetaan itse omaan tarpeeseen sopiva luokka luku = Lue.koko( Anna luku: ); Lue.koko() Lue.desi() Lue.rivi() Lue.merkki() Lue.totuus() lukee kokonaisluvun lukee desimaaliluvun lukee rivin tekstiä lukee yhden merkin lukee totuusarvon KorkoWhile.java 42

36 Lukeminen (Scanner) 2. Scanner-luokkaa käyttäen Käsittelee tietovirrasta tulevaa merkkijonoa import java.util.scanner; Scanner lukija = new Scanner(System.in); System.out.println( Anna luku: ); luku = lukija.nextint(); KorkoScanner.java 43

37 Lukeminen (tietovirta) 3. Tietovirtoja käyttäen static BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); public static int kluku(){ int arvo=-1; boolean ok; do { try { arvo=integer.parseint(stdin.readline()); ok=true; catch (Exception e) { System.out.println("Kelvoton kokonaisluku. Anna uusi!"); ok=false; while (!ok); return arvo; 44

38 Tulostus System-luokan out-tietovirtaluokan metodeita* Muotoilematon System.out.println ( tulostuva teksti ja rivinvaihto ); System.out.print ( teksti ilman rivinvaihtoa ); System.out.println ( hinta on +maksu+ euroa ); System.out.println ( hinta on +(maksu+1.5*vero)+ euroa ); Muotoiltu System.out.printf( vakioteksti ja mutoilut,muuttujaluettelo); System.out.printf( hinta on %d euroa\n, maksu); System.out.printf( hinta on %5d euroa\n, maksu); System.out.printf( hinta on %.2f euroa\n, maksu*vero); System.out.printf( hinta on %10.2f euroa\n, maksu*vero); //pyöristys System.out.printf( Tässä teksti\n %s\nteksti loppui, teksti); * katso dokumentaatiota (Formatter-luokka tai System.out.printf (format string syntax)) 45

39 OHJAUSRAKENTEET 47

40 IF-ehtolause if (ehto) lauseet else lauseet LOHKO ELI KOOTTU LAUSE if (ika>20) tulot=opintolaina; else tulot=100; if (ika>20) { tulot=opintolaina; vuokra=1000; else { tulot=100; karkkiin=30; 48

41 Ehto-osa VERTAILU- OPERAATIOT LOOGISET OPERAATIOT > >= < <= ==!= && ja tai ^ xor! ei Loogiset metodit 49

42 Monitasoinen IF if (koulutus.equals( DI )) { if (ohjelmointitaito== k ) else palkka=20000; palkka=15000; if (koulutus.equals( DI )) if (ohjelmointitaito== k ) palkka=20000; else palkka=15000; if (koulutus.equals( DI )) { if (ohjelmointitaito== k ) palkka=20000; else palkka=15000; palkka=15000; if (koulutus.equals( DI ) && ohjelmointitaito== k ) palkka=20000; Huomaa! Ulompi if sisältää yhden lauseen ei sulkeita Vastaako valkoista tai vihreää ehtoa? 50

43 IF-esimerkkejä Onko samat? if (ika<=20 && omaisuus>= ) if (ika>20 omaisuus< ) Kumpi ehto-lauseke valitsee nuoren miljonäärin? Onko jälkimmäinen sama kuin edellinen jos edessä! Kuka saa seuraavissa tapauksissa halvan pääsylipun? if (ika<15 ika>65 && opiskelija== k ) if ((ika<15 ika>65) && opiskelija== k ) Miten korjaisit lauseen siten, että nuori, vanha tai opiskelija saa halvan pääsylipun? 51

44 Esimerkki (ehto-operaattori) if (arvosana>0) System.out.println( Tentti on hyväksytty ); else System.out.println( Tentti on hylätty ); System.out.println( Tentti on + (arvosana>0? hyväksytty : hylätty )); 52

45 switch (lauseke) { case vakio1: lauseet; break; case vakio2: case vakio3: lauseet; case vakio4: lauseet; break; default: lauseet; break; SWITCH-valintalause 53

46 SWITCH-esimerkki1 int kk; do { kk=lue.koko(); switch (kk) { case 1: System.out.println( Tammikuu ); break; case 2: System.out.println( Helmikuu ); break; case 3: System.out.println( Maaliskuu ); break; case 4: System.out.println( Huhtikuu ); break; case 5: System.out.println( Toukokuu ); break; case 6: case 7: case 8: System.out.println( Kesä ); break; case 9: System.out.println( Syyskuu ); break; case 10: System.out.println( Lokakuu ); break; case 11: System.out.println( Marraskuu ); break; case 12: System.out.println( Joulukuu ); break default: System.out.println( Virheellinen kuukausinumero ); while (kk!= 0); 54

47 SWITCH-esimerkki2 String kk; do { kk=lue.rivi(); switch (kk) { case "Maaliskuu": case "Huhtikuu": case "Toukokuu": System.out.println("Kevät"); break; case "Kesäkuu": case "Heinäkuu": case "Elokuu": System.out.println("Kesä"); break; case "Syyskuu": case "Lokakuu": case "Marraskuu": System.out.println("Syksy"); break; case "Joulukuu": case "Tammikuu": case "Helmikuu": System.out.println("Talvi"); break; default: System.out.println("Virheellinen kuukausi"); while (kk.equals("")); 55

48 WHILE-toistolause while (jatkamisehto) toistettavat lauseet jatkamisehto suoritetaan joka toistokerran alussa ja toistettavat lauseet suoritetaan jos jatkamisehto on tosi 56

49 WHILE-esimerkkejä int i=0; while (i<5) { System.out.println(i); i++; int i=0; while ( i<5) System.out.println(i++); int luku=lue.koko(); while (luku!= 0) { System.out.println(luku); luku=lue.koko(); int luku; while ((luku=lue.koko())!= 0) System.out.println(luku); 57

50 FOR-toistolause for (alkuasetus; jatkamisehto; etenemisaskel) toistettavat lauseet alkuasetus suoritetaan kerran ennen toistojen aloittamista jatkamisehto totuusarvoinen lauseke, joka tarkistetaan ennen jokaista toistokertaa ja jos se on tosi suoritetaan toistettavat lauseet etenemisaskel lause joka suoritetaan jokaisen toistokerran jälkeen 58

51 FOR-esimerkkejä for (int i=0; i<6; i++) System.out.println(i*i); for (int i=0, j=10, k=1; i<6 && j>2; i++, j--) { System.out.println(i*j*k); k++; Onko jatkamisehto järkevä? 59

52 FOR-esimerkkejä for (int i=0; i<4; i++) System.out.println(taulu1[i]); taulu for (int i=0; i<6; i++) for (int j=0; j<4; j++) System.out.println(taulu2[i][j]); taulu Mikä on läpikäyntijärjestys?

53 FOREACH-tyyppinen toistolause for (tyyppi muuttuja: kokoelma) toistettavat lauseet tyyppi muuttuja kokoelma kokoelmasta poimittavan tiedon tyyppi kokoelmasta poimittava tieto kokoelma josta tietoalkiot poimitaan yksi kerrallaan ja sillä suoritetaan toistettavat lauseet 61

54 FOREACH-esimerkki for (int luku : taulu) System.out.println(luku); taulu

55 DO-toistolause do toistettavat lauseet while (jatkamisehto) Miten eroaa while-lauseesta? 63

56 DO-esimerkki do { System.out.println( Anna luku: ); luku = Lue.koko(); System.out.println(luku); while (luku!= 0); Mitä hyötyä vastaavaan while-lauseeseen? 64

57 BREAK-lause Break keskeyttää switch- tai toistolauseen suorituksen for (int i=1; i<100; i++) { if (i%5 == 0) break; System.out.println(i); 65

58 BREAK-lause Pelkkä break keskeyttää vain sisemmän rakenteen suorituksen for (int i=0; i<3; i++) for (int j=0; j<3; j++) { if (i == j) break; System.out.println(taulu[i][j]); Osoitteellinen break keskeyttää rakenteen, johon osoite viittaa ulompi: for (int i=1; i<9; i++) // sudokuruudukon täyttö for (int j=1; j<9; j++) if (vapaa(i,j)){ asetapuuttuvanumero(i,j); break ulompi; 66

59 CONTINUE-lause Keskeytetään toiston meneillään oleva kierros ja aletaan seuraava kierros for (int i=1; i<1000; i++) { if (i%7 == 0) continue; System.out.println(i); keskeytetään ulomman silmukan meneillään oleva kierros ja aletaan seuraava kierros ulompi: for (int i = 0; i < 10; i+=2) { for (int j = 0; j < 20; j++) if (taulu[i][j] == 0) continue ulompi; System.out.println("Löytyi riviltä " + i); 67

60 Luentoharjoitus 6 Tulosta kaikista syöttämistäsi luvuista suurin ja pienin. Esittele Format 68

61 Luentoharjoitus 7 Muunna korko-ohjelma for-silmukkaa käyttäväksi. Jäljitä ohjelman kulku debuggerilla. 69

62 Luentoharjoitus 8 Tee ohjelma, joka antaa halutun määrän alkulukuja* yhdestä lähtien. * Alkuluku on 1 suurempi luonnollinen luku (positiivinen kokonaisluku), joka on jaollinen vain 1:llä ja itsellään. 70

63 Luentoharjoitus 9 Vuosi on karkausvuosi, jos se on jaollinen 4:llä, mutta ei sadalla. 400:lla jaolliset kuitenkin ovat karkausvuosia. Laadi vuorovaikutteinen sovellus, joka tulostaa karkausvuodet käyttäjän pyytämältä vuosilukuväliltä. 71

64 Luentoharjoitus 10 Tutki, paljonko sinulla on rahaa 30 vuoden päästä, jos sijoitat nyt 1000 euroa kasvuosakkeeseen ja vuosittainen tuotto on 8 prosenttia ja pankin vuosittainen hallinnointikustannus on a) 0 prosenttia b) 2 prosenttia. Kasvuosake = vuosittain tuotto lisätään pääomaan 72

65 TAULUKKO 73

66 Taulukko on olio int[ ] jono = new int[5]; jono

67 Moniulotteiset taulukot int[ ] jono = new int[5]; double[ ][ ] taulu = new double[3][5]; char[ ][ ][ ] merkit = new char[3][5][4]; \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 75

68 Taulukon alustus int[ ] jono = new int[5]; jono[3] = 8; jono jono int[ ] jono = {1,8,3,4,2;

69 Taulukon alustus String[ ] nimet = { Liisa, Aki, Ville, Juha-Matti, Mia ; L i i s a A k i V i l l e J u h a M a t t i M i a boolean[ ][ ] totuus = {{true,true,false, {false,true,false; true true false false true false 77

70 Taulukkosääntöjä Taulukon alkiot ovat samaa tyyppiä Indeksi int-tyyppinen Ensimmäisen alkion indeksi on 0 Vasta suoritusvaiheessa huomataan indeksin ylitys Rivien määrä: taulu.length Sarakkeiden määrä: taulu[3].length Taulukot alustetaan aina (olio) Taulukkomuuttuja voi osoittaa eri taulukko-olioihin kunhan ne ovat samanmuotoisia ja -tyyppisiä Taulukot eivät automaattisesti kasva suorituksen aikana, mutta ohjelmoija voi pidentää taulukkoa 78

71 Taulukon läpikäynti for (int i=0; i<6; i++) for (int j=0; j<4; j++) System.out.println(taulu[i][j]); for (int i : taulu[2]) System.out.println(i); for (int[] i: taulu) for (int j: i) System.out.println(j); taulu

72 Epätasainen taulukko Tasainen taulukko int[ ][ ] taulu = new int[3][2]; int[ ][ ] taulu = {{1,2, {5,9, {3,2; Epätasainen taulukko taulu int[ ][ ] taulu = new int[3][ ]; taulu[0] = new int[2]; taulu[1] = new int[3]; taulu[2] = new int[1]; 80

73 Epätasaisen taulukon alustus Toimiiko molemmat? int[ ][ ] matriisi = {{1,2, {5,9,7, {3; int[ ][ ] taulu = new int[3][ ]; taulu[0] = {1,2; taulu[1] = {5,9,7; taulu[2] = {3; taulu

74 Esimerkkejä public class Taulu { public static void main(string[] args) { int[ ] jono= {3,0,7,2,9; int[ ][ ] taulu= {{2,4,6,{20,40,60; for(int i=0; i<jono.length; i++) System.out.print(jono[i]+" "); System.out.println(); for(int i=0; i<taulu.length; i++) for(int j=0; j<taulu[i].length; j++) System.out.print(taulu[i][j] + " "); 82

75 Esimerkkejä int[ ] jono = new int[5]; int[ ] sarja = {2,4,6,8,3; sarja = jono; Mitä tapahtuu alemmalle taulukolle? Voit muuttaa tietoa toisen viitteen kautta ja muutos näkyy toisenkin viitteen kautta. 83

76 Javan taulukkoluokkia System.arrayCopy ArrayList Arrays aslist binarysearch equals fill Sort tostring 84

77 Luentoharjoitus 11 Koskien yksiulotteista positiivisten kokonaislukujen taulukkoa tulosta (8.1) a) alustettu taulukko b) taulukon arvojen summa c) ensimmäisen nollan indeksi d) taulukon suurin arvo ja sen indeksi e) taulukon arvojen prosentuaaliset osuudet 85

78 Luentoharjoitus 12 Tee ohjelma, joka automaattisesti laajentaa taulukkoa, kun lisäät siihen liikaa lukuja. 86

79 Luentoharjoitus 13 Tee ohjelma, joka tarkastaa antamasi lottorivin satunnaisesti luodun lottorivin kanssa. (8.6) * Math.random() antaa satunnaisluvun väliltä

80 Luentoharjoitus 14 Tutki, montako satunnaislukua * suunnilleen pitää tuottaa välillä 1-10, jotta kaikkia lukuja alkaa tulla suunnilleen sama määrä. (8.12) * Math.random() antaa satunnaisluvun väliltä

81 Luentoharjoitus 15* Yksiulotteinen taulukko kuvaa joukko-opin joukkoa, jossa sama luku ei esiinny kahdesti. Laadi kahden joukon välille vähintään seuraavat kolme joukko-opin operaatiota, joista kukin palauttaa tulosjoukon 1. YHDISTE yhdistää joukot tulosjoukoksi. LEIKKAUS palauttaa tulosjoukon, jossa on vain yhteiset alkiot. EROTUS palauttaa tulosjoukossa vain ne ensimmäisen joukon alkiot, joita ei ole toisessa joukossa. 1) Voi käyttää tyypillisiä taulukon toimintoja: poista duplikaatit, tiivistä, lajittele,... 89

82 MERKKIJONO 93

83 Merkkijono-olion luonti Merkkijono String lemmikki = kissa ; Merkkitaulukko char[ ] eläin = { k, o, i, r, a ; Merkkijonotaulukko String[ ] tarha = { leijona, seepra, kameli ; 94

84 Merkkijono metodit public int length() antaa merkkijonon pituuden String jono = kissa ; int pituus = jono.length(); // pituus=5 public boolean equals(string) palauttaa true jos merkkijonot samat do { System.out.println( Jatkatko (kyllä tai ei) ); String vastaus = Lue.rivi(); while (vastaus.equals( kyllä )); public boolean equalsignorecase(string) 95

85 Merkkijono metodit public int compareto(string) Palauttaa numeron, joka ilmaisee merkkijonojen aakkosjärjestyksen: <0 verrattava merkkijono on ennen parametrimerkkijonoa == 0 merkkijonot ovat samat >0 verrattava merkkijono on parametrimerkkijonon jälkeen System.out.print( Anna eka merkkijono ); String eka = Lue.rivi(); System.out.print( Anna toka merkkijono ); String toka = Lue.rivi(); int jarjestys= eka.compareto(toka); if (jarjestys < 0) System.out.println( Eka ensin ); if (jarjestys == 0) System.out.println( Yhtäsuuret ) if (jarjestys > 0) System.out.println( Toka ensin ): 96

86 Merkkijono metodit public String tolowercase() Muuttaa merkkijonon pieniksi kirjaimiksi. public String touppercase() Muuttaa merkkijonon isoiksi kirjaimiksi. String lemmikki = Kissa ; lemmikki = lemmikki.tolowercase(); System.out.println(lemmikki+lemmikki.toUpperCase()); public String trim() Poistaa merkkijonon alusta ja lopusta välilyönnit. String lemmikki = Kissa ; lemmikki = lemmikki+ eläin ; System.out.println(lemmikki.trim()); 97

87 Merkkijono metodit public char charat(int index) Palauttaa merkkijonon yhden merkin. Huomaa kuvaava parametrin nimi. String lemmikki = Kissa ; for (int i=0; i<lemmikki.length(); i++) System.out.println(lemmikki.charAt(i)); Mitä tekee alla olevat metodit? public int indexof(int char) public int indexof(int char, int fromindex) public int indexof(string) public int indexof(string, int fromindex) Huomaa metodin kuormittaminen. 98

88 Merkkijono metodit public String substring(int startind, int endind) Palauttaa merkkijonosta osamerkkijonon lähtien merkkipaikasta startind merkkiin endind-1 asti. String lemmikki= lemmikkikissa ; String suosikki=lemmikki.substring(3,8); //mikki String teksti = Hyvä? olet voittanut paljon rahaa! ; String nimi = Lue.rivi(); String kirje = teksti.substring(0,5)+nimi+teksti.substring(6); Hyvä Markku Nevanranta olet voittanut paljon rahaa! 99

89 Merkit merkkijonoksi Muunna merkkijonon A-merkit a-merkeiksi. public class MerkkiMuunnos{ public static void main(string[] args){ String teksti, tulos; teksti = Lue.rivi ("Anna merkkijono "); // Merkkijono merkkitaulukoksi char[] mtaulu = teksti.tochararray(); for (int i=0; i<mtaulu.length; i++) if (mtaulu[i] == 'A') mtaulu[i] = 'a'; tulos = new String(mtaulu); System.out.println(tulos); // Toinen tapa tulos = teksti.replace('a','a');//parametrit voivat olla myös merkkijonoja System.out.println(tulos); 100

90 Merkkijonoista Unicode-merkistö \uxxxx Escape-esitys (esim. \n, \t, \\, \ ) Merkkijonon pituus tallessa merkkijono-oliossa Merkkien vertailu: vastaus == k Merkkijonojen vertailu: lemmikki== kissa (väärin) lemmikki.equals( kissa ) (oikein) Perustietotyyppi merkkijonoksi: numero +luku+ tekstiksi String.valueOf(luku) Merkkijono perustietotyypiksi: Integer.parseInt(mjono) // JDK 1.2 new Integer(mjono) // JDK 1.5 (Byte, Short, Integer, Long, Float, Double, Boolean, Char kääreluokissa vastaavat xvalue()- ja parsex-metodit) 101

91 Merkkijonomuunnos esimerkki String luku = "123"; // Jos ei muistuta kokonaislukua syntyy keskeytys int a, b, c; // Numero tekstiksi String teksti = String.valueOf(12.34); System.out.println(teksti); // JDK 1.1 int a = Integer.valueOf(luku).intValue(); System.out.println(a); // JDK 1.2 int b = Integer.parseInt(luku); System.out.println(b); // JDK 1.5 int c = new Integer(luku); System.out.println(c); System.out.println(a+b+c); 102

92 StringBuilder Käytä StringBuilder-merkkijonoa jos Stringmerkkijonoa muutetaan paljon StringBufferin synkronoimaton versio Metodeja: length(), setlength(int) append(perustietotyyppi), insert(int paikka, perustietotyyppi) replace(int, int, String), delete(int, int) charat(int), setcharat(int, char) substring(int, int) tostring() reverse() 103

93 StringBuilder esimerkki String kjono = "kenkä"; StringBuilder sb = new StringBuilder(kjono); sb.insert(0,"puu"); //Puukenkä sb.append("kö"); //Puukenkäkö sb.delete(4,6); //Puukkäkö sb.replace(5,8,"o"); //Puukko String jono3 = sb.tostring(); //jono3 = "Puukko" StringBuilder buf = new StringBuilder(); String jono = buf.append("puu").append(kjono).tostring(); 104

94 StringTokenizer Pätkii merkkijonon osajonoiksi (token). Metodeja: StringTokenizer(String) StringTokenizer(String, String delimiters) counttokens() hasmoretokens() nexttoken(), nexttoken(string delimiters) String.split() metodilla saadaan myös pätkittyä 105

95 StringTokenizer esimerkki String pätkittävä = "Matti,Kalle,,Maija"; StringTokenizer st = new StringTokenizer(pätkittävä, ",", false); while ( st.hasmoretokens() ) System.out.println(st.nextToken()); st = new StringTokenizer(pätkittävä, ",", true); while ( st.hasmoretokens() ) System.out.println(st.nextToken()); Matti Kalle Maija Matti, Kalle,, Maija 106

96 Säännölliset lausekkeet Säännöllisten lausekkeiden (regular expression, regexp) avulla määritetään merkkijonohahmoja, joita voidaan tunnistaa merkkijonosta Hahmoa etsitään matches-metodilla, joka palauttaa true-arvon jos hahmo löytyy muuten false Merkkijono voidaan pilkkoa split-metodilla hahmoon täsmäävissä kohdissa ja pilkotut merkkijonopalaset palautetaan merkkijonotaulukkona replaceall-metodi korvaa kaikki hahmoon täsmäävät osat annetulla merkkijonolla ReplaceFirst-metodi korvaa vain ensimmäisen hahmoon täsmäävän merkkijonon annetulla merkkijonolla Pattern ja Matcher luokissa lisää metodeja 107

97 Hahmon muodostaminen Yksinkertainen hahmo: mikä tahansa hakasulkeissa oleva merkki kelpaa rahayksikkö [ $ ], [ahjmprsv]aha Arvoväli: mikä tahansa arvovälillä oleva merkki kelpaa [A-E] ajokortti, arvot [ ] Yhdiste, leikkaus ja erotus: ehto sisällytetään toiseen ehtoon [a-c[1-3]] luokat, [1-5&&[3-9]] luokat, [1-5&&[^3-9]] luokat Merkkiluokat: mikä tahansa merkki (.), numerot 0-9 (\\d), muu merkki paitsi 0-9 (\\D), kaikki tyhjämerkit (\\s), ei-tyhjä merkki (\\S), mikä tahansa numero tai merkki (\\w), \\w negaatio (\\W) Ryhmittely ja takaisinviittaus: () merkitään yhdessä käsiteltävä ryhmä, \\numero kertoo montako kertaa ryhmää pitää toistua (.)\\1 (merkki toistuu kaksi kertaa peräkkäin) ((.)\\3 )\\3 (luottokorttinumeron muodon tarkistus) Lukumäärät: esiintyy kerran (?), nolla tai useamman kerran (*), kerran tai useamman kerran (+), täsmälleen n kertaa {n, vähintään n kertaa {n,, vähintään n tai enintään m kertaa {n,m Paikkamääreet: rivin alku (^), rivin loppu ($), sanan alku tai loppu (\\b), \\b negaatio (\\B), syötteen alku (\\A), syötteen loppu (\\z) 108

98 Esimerkki: säännöllinen lauseke public class SaannollinenLauseke { public static void main(string[] args) { // Luottokortin tarkistus String luottokortti = " "; if (luottokortti.matches("\\d{4( \\d{4){3")) System.out.println("kortti oikein"); else System.out.println("kortissa virhe"); // Päivämäärän tarkistus String pvm = " "; if (pvm.matches("(\\d{1,2.){2\\d{4")) System.out.println("päivämäärä oikein"); else System.out.println("päivämäärässä virhe"); // Päivämäärän pilkkominen String[] sanat = pvm.split("\\."); for (int i=0; i<sanat.length; i++) System.out.println(sanat[i]); // Osamerkkijonon tarkistus String yhteys = "Puhelinnumeroni on työpuhelimeen"; System.out.println("Tekstissä "+(yhteys.matches(".*[0-9]{2,\\w\\d{4,.*")?"on puhelinnumero ":"ei ole puhelinnumeroa")); 109

99 Help Tutki merkkijonoja HELPistä String StringBuilder (StringBuffer) StringTokenizer Integer Is-alkuiset: isempty(), isalphapetic(), isdigit(),

100 Luentoharjoitus 16 Tulosta merkkijono käänteisenä. (7.3) 111

101 Luentoharjoitus 17 Laske syöttämäsi tekstin merkkien esiintymismäärät. a = 97 z = 122 ä = 228 å = 229 ö = 246 A = 65 Z = 90 Ä = 196 Å = 197 Ö =

102 Luentoharjoitus 18 Laadi ohjelma, joka tulostaa ryhmäsi opiskelijoiden nimet satunnaisjärjestyksessä. 113

103 Luentoharjoitus 19 Laadi henkilötunnuksen 1. muodon oikeellisuuden tarkistusohjelma 2. arvon oikeellisuuden tarkistusohjelma 3. sekä tulosta syntymäaika. (7.11) 114

104 Luentoharjoitus 20 Testaa, onko teksti ymmärrettävissä jos sekoitat seuraavasti. Sekoita tekstin jokaisen sanan merkit lukuunottamatta ensimmäistä ja viimeistä merkkiä.(7.14) 115

105 METODIT 116

106 Metodin muoto määreet palautetyyppi nimi (parametrit) { ohjelma määreet Näkyvyys: public, private Luokka-/oliokohtaisuus (static) palautetyyppi Palautettavan arvon tyyppi on void jos ei palautettavaa arvoa parametrit Tyypit ja nimet muuttujille, jotka ottavat vastaan kutsussa annetut tiedot 117

107 Esimerkki (parametrit) public class Keskiarvo1 { public static void laskekeskiarvo(int eka, int toka){ double c; c = (eka+toka)/2.0; System.out.println("Keskiarvo on "+c); public static void main(string[] args){ int luku1, luku2; System.out.print("Anna luku1: "); luku1 = Lue.koko(); System.out.print("Anna luku2: "); luku2 = Lue.koko(); laskekeskiarvo(luku1, luku2); 118

OHJELMOINTITEKNIIKKA

OHJELMOINTITEKNIIKKA OHJELMOINTITEKNIIKKA 1 Kurssin suoritus Kurssin kahdesta tentistä saa kummastakin enintään 10 pistettä ja harjoituksista enintään 10 pistettä eli kurssin maksimipistemäärä on 30. Arvosana määräytyy oheisen

Lisätiedot

PLA-31100 OHJELMOINTITEKNIIKKA. Syksy 2015 Mika Saari

PLA-31100 OHJELMOINTITEKNIIKKA. Syksy 2015 Mika Saari PLA-31100 OHJELMOINTITEKNIIKKA Syksy 2015 Mika Saari PLA-31100 Kurssin sisältö Suoritusperusteet Työvälineet ohjelmoinnin opiskeluun Algoritminen Ajattelu Javan kirjoitustyyli, Tietotyypit ja operaatiot

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Merkkien ja merkkijonojen käsittelyä Javalla

Merkkien ja merkkijonojen käsittelyä Javalla 1 Merkkien ja merkkijonojen käsittelyä Javalla char String Merkkijonon lukeminen käyttäjältä String-luokan metodeja matches-metodi ja esimerkkejä säännöllisistä lausekkeista (engl. regular expressions)

Lisätiedot

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille: Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Muuttujien roolit Kiintoarvo cin >> r;

Muuttujien roolit Kiintoarvo cin >> r; Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,

Lisätiedot

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

Luokkakirjastot. esiintymämetodien käytöstä: Luokkakirjastot Esimerkkejä Jokainen olio on jotain tyyppiä ja ko. tyyppistä oliota voidaan käsitellä ko. luokan metodeilla Merkkijonojen käsittely: String, StringBuffer, StringBuilder, StringTokenizer,..

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

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen

Lisätiedot

Ohjelmointityö 65 Tekstinmuotoilu ohjelma. Dokumentaatio. Aki Heikkinen (155394)

Ohjelmointityö 65 Tekstinmuotoilu ohjelma. Dokumentaatio. Aki Heikkinen (155394) Ohjelmointityö 65 Tekstinmuotoilu ohjelma Dokumentaatio Aki Heikkinen (155394) 15.6.2007 Sisällysluettelo 1. Tehtävän määrittely ja ratkaisuperiaate... 1 1.1. Tehtävän määrittely... 1 1.2. Ratkaisuperiaate...

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

Pakkauksen kokoaminen

Pakkauksen kokoaminen 13. Pakkaukset 13.1 Sisällys Pakkauksen kokoaminen (package). Pakkaukset ja hakemistorakenne. Pakkauksen luokkien käyttö muissa pakkauksissa (import). Pakkaukset ja näkyvyys. 13.2 Pakkauksen kokoaminen

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

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

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

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

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013

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

Ohjelmoinnin perusteet (Java)

Ohjelmoinnin perusteet (Java) Ohjelmoinnin perusteet (Java) HARJOITUKSIA Syksy 2012 / Auvo Häkkinen Jos et ehdi tehdä viikon tehtäviä labra-aikana, tee ne valmiiksi ennen seuraavaa kokoontumista. Tehtävät tulee kirjauttaa tehdyiksi

Lisätiedot

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

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus) VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,

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

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Hyvä ohjelmointitapa. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

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

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 6 Kerta 7. 1. Toteuta Pythonilla seuraava ohjelma: Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 6 Kerta 7 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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

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

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt

Lisätiedot

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: Tietorakenteet, laskuharjoitus 10, ratkaisuja 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa: SamaLuku(T ) 2 for i = 1 to T.length 1 3 if T [i] == T [i + 1] 4 return True 5 return

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 16.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

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

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

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

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle ELEC-A4010 Sähköpaja Arduinon ohjelmointi Jukka Helle Arduino UNO R3 6-20VDC 5VDC muunnin 16 MHz kideoskillaattori USB-sarjamuunnin (ATmega16U2) ATmega328 -mikro-ohjain 14 digitaalista I/O väylää 6 kpl

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

1. OPINTOJAKSON TAVOITTEET, SISÄLTÖ JA ESITIEDOT... 4 2. MATERIAALIT JA OHJELMISTOT... 5

1. OPINTOJAKSON TAVOITTEET, SISÄLTÖ JA ESITIEDOT... 4 2. MATERIAALIT JA OHJELMISTOT... 5 1. OPINTOJAKSON TAVOITTEET, SISÄLTÖ JA ESITIEDOT... 4 2. MATERIAALIT JA OHJELMISTOT... 5 3. SUORITUSTAVAT... 5 3.1 Tentistä... 5 3.2 Tietokonetyöstä... 6 4. OPISKELUN ETENEMINEN... 6 VIIKKO 3... 8 Luokka

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman

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

5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma

5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma 5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma Every cloud has a silver line. - englantilainen sananlasku Tässä osiossa tärkeää: yksi- ja moniulotteinen taulukko Sisältö Yleistä Yksiulotteinen

Lisätiedot