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

Save this PDF as:
 WORD  PNG  TXT  JPG

Koko: px
Aloita esitys sivulta:

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

Transkriptio

1 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 taulukko Lue kirjasta s Ohjelmoinnin perusteet / Auvo Häkkinen / S 5 - Ohjelmoinnin perusteet / Auvo Häkkinen / S 5 - Luokalla on opiskelijaa ja halutaan tallentaa kunkin opiskelijan kokeesta saama pistemäärä. Surkea kyhäelmä Esitellään kaksikymmentä muuttujaa int pisteet, pisteet,, pisteet; pisteet = Oma.lueInt(); pisteet = Oma.lueInt(); pisteet = Oma.lueInt();. Parempi yritys Määritellään ja luodaan taulukko nimeltään pisteet Yhdellä muuttujan esittelyllä saadaan käyttöön "muuttujaa" Yksittäiset pistemuuttujat nimetään nyt pisteet[], pisteet[], Käytetään for-toistolausetta taulukon käsittelyssä int[] pisteet = new int[]; for (int i= ; i <=; i++) { Tuossakin on vielä paha virhe Taulukossa toki lokeroa, mutta Javan taulukon alkioiden numerointi alkaa nollasta Tässä ei käytetä lainkaan lokeroa! Ei hyvä! enhän minäkään jaksanut noita kaikkia kirjoittaa :-), eikä Javassa ole -operaatiota! int[] pisteet = new int[]; for (int i= ; i < ; i++) { tai int[] pisteet = new int[]; for (int i= ; i <= ; i++) { Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-3 Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-4 Taulukon esittely ja luonti Taulukko on muuttuja, jonka sisältönä useita keskenään samantyyppisiä alkioita Taulukon alkion tyyppi määrätään taulukkomuuttujan esittelyn yhteydessä. Esittely on muotoa Tavallisimmin alkiontyyppi taulukonnimi[]; käytetään tätä tai esitysmuotoa alkiontyyppi[] taulukonnimi; Esittely ei vielä kiinnitä taulukon alkioiden lukumäärää Alkioiden lukumäärä kerrotaan taulukkoa luotaessa new-operaatiolla Taulukko on olio-ohjelmoinnin olio, joka täytyy erikseen luoda int[] luvut; luvut = new int[]; // esittele // luo int[] luvut = new int[]; // esittele ja luo Taulukon alustaminen Taulukon alkiot alustuvat luonnin yhteydessä nollarvoihin numeerisilla (esim. int ja double) alkioilla nolla merkkityypin (char) alkioilla \u boolean-tyypin alkioilla false String-tyypin alkioilla null Taulukon voi myös alustaa itse luonnin yhteydessä Tällöin ei saa käyttää lainkaan new-kutsua Kääntäjä osaa selvittää taulukon koon Sijoitus tällä tavalla sallittu vain taulukon esittelyn yhteydessä double[] osat = new double[]; int[] luvut = {,, 3, 4, 5, 6, 7, 8, 9, ; osat luvut Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-5 Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-6 Taulukon koko Jokaiseen taulukko-olioon liittyy muuttuja length ilmaisee taulukon koon ohjelmoija ei voi muuttaa sen arvoa Huom: ei ole metodi, kuten String-luokan length() Käyttö muodossa taulukonnimi.length int[] luvut = {,,3,4,5,6,7,8,9,; System.out.println( Lukuja on + luvut.length + kpl. ); for (int i=; i < luvut.length ; i++) { System.out.println(luvut[i]); Taulukon käsittely Ylläoleva for-lauseen muoto yleinen käsiteltäessä kaikki alkiot käytä aina sitä, vaikka tietäisitkin alkioiden lukumäärän toimii vaikka taulukon kokoa joskus muutettaisiin, joten ohjelman oikeellisuus helpompi säilyttää Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-7 Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-8

2 Indeksointi Taulukon yksittäisiin alkioihin viitataan taulukon nimen ja indeksin avulla taulukonnimi[indeksi] Indeksin arvona kokonaisluku, joka ilmaisee alkion etäisyyden taulukon alusta ensimmäisen lokeron indeksi on siten nolla viimeisen lokeron indeksi on taulukonnimi.length- Indeksinä voi olla mitä tahansa minkä arvon (kokonaisluku) voi laskea suoritusaikana muuttuja, vakio, aritmeettinen lauseke, metodin palauttama arvo Yksittäiselle alkiolle voi käyttää niitä operaatioita, jotka ovat sallittuja ko. tyypille final int LKM = ; int[] luvut = new int[lkm];; Varottava, ettei indeksi liian iso! luvut[] = ; luvut[3] = LKM * luvut[]; luvut[+i] = 58; Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-9 Alkioiden kopiointia Esim. a[] = a[]; kokonaislukuarvo taulukon a lokerosta lokeroon b[] = a[]; alkion kopiointi taulukosta toiseen taulukkoon Jos kaikki taulukon alkiot on kopioitava toiseen taulukkoon, se on tehtävä aina toistolauseella, alkio kerrallaan (for-lause) for (int i=; i < a.length ; i++) { b[i] = a[i] Taulukot ovat olioita, joten sijoituksen b = a jälkeen a ja b viittaavat täsmälleen samaan taulukkoon Jos taulukon alkiot ovat olioita (esim. String), alkion kopioinnin jälkeen molemmat alkiot viittaavat täsmälleen samaan olioon a[] = "merkkijono"; b[] = a[]; // sisältää viitteen olioon // kopioi se viite Ohjelmoinnin perusteet / Auvo Häkkinen / S 5 - Peräkkäiskäsittely Tavallisimmin taulukon alkiot käsitellään järjestyksessä alkaen indeksistä nolla Ohjelma lukee taulukkoon lukuja ja tulostaa taulukon sisällön public class Taulukko{ int[] taulukko = new int[]; /* Taulukon täyttö */ for (int i=; i < taulukko.length; i++) { System.out.print("Anna luku: "); taulukko[i] = Oma.lueInt(); /* Alkioiden tulostaminen yksitellen */ for (int i=; i < taulukko.length; i++) { System.out.println(taulukko[i]); Kirja s. 87 Etsintä taulukosta Etsi nimeä taulukosta peräkkäishaulla jos löytyy, palauta alkion indeksi, muuten palauta - public static int etsi(string[] nimet, String nimi){ boolean löytyi = false; int ind = ; while (! löytyi && ind < nimet.length) if (nimet[ind] == nimi) löytyi = true; else ind++; if (! löytyi) ind = -; return ind; public static int etsi(string[] nimet, String nimi){ for (int i=; i < nimet.length; i++) if (nimet[i] == nimi) return i; return -; return()-lauseen käyttö heti, kun paluuarvo on tiedossa, on suositeltava tapa! Ohjelmoinnin perusteet / Auvo Häkkinen / S for-each rakenne Taulukon kaikkien alkioiden peräkkäiskäsittelyä varten for-each rakenne for (alkiontyyppi muuttuja : taulukonnimi){ lauseet; Lauseessa esitelty toistomuuttuja saa kullakin toistokierroksella arvokseen taulukon yhden alkion arvon Taulukkoon talletettujen merkkijonojen tulostus String[] taulukko = new String[]; for (String x : taulukko) { System.out.println(x); Sijoitus for-each-muuttujaan ei tietenkään vie arvoa taulukkoon! Ei näin! for (String x : taulukko) { x = Oma.lueInt(); Satunnaisluku Usein ohjelmissa tarvitaan satunnaisesti valittuja lukuja Satunnaislukuja voi tuottaa tarkoitusta varten toteutetuilla satunnaislukugeneraattoreilla Javan Math.random()-niminen metodi palauttaa arvonaan double-tyyppisen luvun arvo: <= x <. Kun tarvitaan satunnaisia kokonaislukuja osaväliltä [a, b], paluuarvo skaalataan osavälille ja tuloksen tyyppi muutetaan (katkaistaan) kokonaisluvuksi tyyppimuunnos (cast) tehdään laittamalla lausekkeen eteen suluissa uusi tulostyyppi int x; x = a + (int)(math.random()*(b-a+)); Pienin sallittu arvo Arvoalueen koko Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-3 Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-4 Noppaa heitetään kertaa Halutaan silmäluku väliltä -6 public class Noppa { int[] noppa = new int[]; // luo ja nollaa taulukko // Heitä noppaa kertaa, tulokset taulukkoon for (int i=; i < noppa.length; i++){ noppa[i] = + (int)(math.random()*6); // Tulosta taulukon sisältö for (int i=; i < noppa.length; i++){ Kirja s. 89 Hajakäsittely Mihin tahansa taulukon alkioon pääsee käsiksi muista alkioista riippumatta suoraan indeksoimalla Esim. x = noppa[4]; Kuinka tasaisesti jakautuneita satunnaislukuja random() tuottaa? Kokeillaan ja raportoidaan tuloksista Suorita N kpl toistoja Kerää talteen Math.random()-metodin tuottamien lukujen lukumäärätiedot Kokoa esiintymiskertoja kuvaavat laskurit taulukoksi esim. alkiossa 6 pidetään kirjaa siitä montako kertaa numero 6 esiintynyt // Tulostus toisella tavalla for (int silmäluku : noppa){ System.out.print(" " + silmäluku); Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-5 Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-6

3 public class Satunnaislukutesti{ vrt. kirja s. 9 final int MAX = ; int[] lkm = new int[max]; // lukumäärälaskurit, oletuksena nollattu int toistot; // toistojen lkm int x; // arvottu satunnaisluku System.out.print("Anna toistojen lkm: "); toistot = Oma.lueInt(); System.out.println ("Hetkinen."); // arvo luku väliltä - (MAX-), ja kasvata sen laskuria for (int i=; i <= toistot; i++) { x = (int)(math.random()*max); System.out.print(x + " "); lkm[x] = lkm[x] + ; System.out.println(); Tässäkin sopisi käyttää lkm.length // tulosta laskureiden arvot for (int i=; i < MAX; i++) { System.out.println (i + " : " + lkm[i]); Anna toistojen lkm: Hetkinen : 49 : 4 : 53 3 : 57 4 : 54 5 : 63 6 : 56 7 : 5 8 : 53 9 : 49 : 4 : 49 : 58 3 : 44 4 : 59 5 : 5 6 : 5 7 : 37 8 : 34 9 : 48 Harva taulukko Taulukon kaikki alkiot eivät ole käytössä vrt. matematiikan harva matriisi Esimerkiksi lottoruudukon kaikkia ruutuja ei ruksata Tehtävänä arpoa satunnaisesti 7 lottonumeroa ja 3 lisänumeroa Math.random() voi tuottaa saman luvun useita kertoja Tarkistettava, että luku ei tule arvotuksi kuin korkeintaan kerran Tarkistusta varten apurakenne, harva taulukko Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-7 Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-8 Tietorakenne public class Lotto { final static int TYHJÄ = ; final static int LOTTONUMERO=; final static int LISÄNUMERO=; int[] lotto = new int[4]; // luo ja nollaa taulukko // taulukon kooksi valitaan 4 // nollapaikalle ei ole tällä kertaa käyttöä // arvoilla -39 indeksointi on suoraviivaista int x; // arvottava luku -39 Vrt. kirja s Jos lotto[x] ==, numeroa x ei ole arvottu riviin Jos lotto[x] ==, numero x on arvottu varsinaiseksi lottonumeroksi Jos lotto[x] ==, numero on arvottu lisänumeroksi Arvo 7 varsinaista numeroa for (int i=; i <= 7; i++) { // Arvo 7 numeroa x = + (int)(math.random()*39); // väliltä -39 while (lotto[x]!= TYHJÄ); // jos jo arvottu, arvo uusi // kun löytyi numero, jota ei vielä ole arvottu, // sijoita taulukkoon arvotun luvun osoittamaan lokeroon lotto[x] = LOTTONUMERO; Arvo 3 lisänumeroa for (int i=; i<=3; i++) { // Arvo 3 lisänumeroa x = + (int)(math.random()*39); while (lotto[x]!=tyhjä); lotto[x] = LISÄNUMERO; Sama kuin x = (int)math.ceil(math.random()*39) kattofunktio eli ylöspäin pyöristys Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-9 Ohjelmoinnin perusteet / Auvo Häkkinen / S 5 - Tulosta arvottu rivi System.out.println("Kierroksen oikea lottorivi on"); for (int i=; i<=39; i++) { if (lotto[i]==lottonumero) { System.out.print(" " + i); System.out.println("\nLisänumerot ovat"); for (int i=; i<=39; i++) { if (lotto[i]==lisänumero) { System.out.print(" " + i); Samankaltaisuus? Mitkä osat sopisi toteuttaa metodeina? arvo(lotto, LOTTONUMERO); arvo(lotto, LISÄNUMERO); tulosta(lotto, LOTTONUMERO); tulosta(lotto, LISÄNUMERO); do-while vs. while Edellä käytettiin do-while-rakennetta lottonumeron arpomiseen Tässä do-while sopii paremmin kuin while, sillä jokainen lottonumero vaatii vähintään yhden arpomisen for (int i=; i <= 7; i++) { // Arvo 7 numeroa x = + (int)(math.random()*39); // väliltä -39 while (lotto[x]!= TYHJÄ); // jos jo arvottu, arvo uusi for (int i=; i <= 7; i++) { x = + (int)(math.random()*39); while (lotto[x]!= TYHJÄ) { x = + (int)(math.random()*39); Ohjelmoinnin perusteet / Auvo Häkkinen / S 5 - Ohjelmoinnin perusteet / Auvo Häkkinen / S 5 - Taulukko parametrina Arvoparametri Parametreja kutsutaan arvoparametreiksi tai viiteparametreiksi sen mukaan välitetäänkö niistä metodille arvo vai viite olioon Alkeistietotyyppien parametrista välitetään metodille aina arvo todellisen parametrin arvo kopioidaan muodollisen parametrin arvoksi parametri on metodin paikallinen muuttuja, ja olemassa vain ko. metodissa vaikka muodollista parametria muutettaisiin metodissa, se ei vaikuta todelliseen parametriin public class MuodollinenVsTodellinen { kirja s. 9 public static int kasvata(int luku) { luku++; return luku; int x = ; int z; z = kasvata(x); System.out.println("z=" + z); // Tulostuu paluuarvo System.out.println("x=" + x); // Tulostuu alkuperäinen z= x= Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-3 Ohjelmoinnin perusteet / Auvo Häkkinen / S 6-4

4 Viiteparametri Taulukkoparametrista (olio) välitetään metodille viite vain todellisen parametrin muistiosoite (sijainti) kopioidaan muodollisen parametrin alkuarvoksi viiteparametriin tehdyt muutokset kohdistuvat suoraan todelliseen parametriin metodi käsittelee siis suoraan prametrina annettua alkuperäistä taulukkoa muutokset säilyvät metodista poistumisen jälkeen public class TaulukkoParametrina { kirja s. 9 public static void taytataulukko(int[] tau) { for (int i = ; i < tau.length; i++) tau[i]=i; public static void tulostataulukko(int[] taulukko) { for (int i = ; i < taulukko.length; i++) System.out.println(taulukko[i]); int[] taulu = new int[5]; taytataulukko(taulu); tulostataulukko(taulu); 3 4 Kaikki muutkin oliot välitetään metodeille viiteparametreina tämä on oleellista, kun siirrytään olio-ohjelmointiin String-parametri Koska String-tyyppi ei ole alkeistyyppi vaan oliotyyppi, merkkijonoparametristakin välitetään metodille aina viite Onko siis merkkijonoa mahdollista muuttaa metodissa? Vastaus on EI! String-oliot ovat Javassa vakioita, eli niihin ei voi suoraan kohdistaa muutoksia Jos merkkijonoon yrittää tehdä muutoksia, järjestelmä luo aina uuden merkkijono-olion, jossa muutos näkyy public class StringMuutos { kirja s. public static String muuta(string s) { s = s.replace('i','a'); return s; String nimi = "Martti"; String uusinimi; uusinimi = muuta(nimi); System.out.println(nimi + " " + uusinimi); Martti Martta Ohjelmoinnin perusteet / Auvo Häkkinen / S 6-5 Ohjelmoinnin perusteet / Auvo Häkkinen / S 6-6 Paluuarvosta Metodilla voi useita parametreja, mutta vain täsmälleen yksi paluuarvo käytännössä parametreja harvoin enemmän kuin Metodin paluuarvon tyyppi voi olla joko alkeistietotyyppi tai oliotyyppi (eli viite olioon) Metodi voi esimerkiksi palauttaa luomansa taulukon tai merkkijonon koska se on olio, ja siten vain yksi viite tilanvaraukseen public class OlioPaluuarvona { public static int[] annataulukko (int koko, int alkuarvo) { int[] taulu = new int[koko]; // luo taulukko for (int i = ; i < koko; i++) { // täytä taulukko taulu[i] = alkuarvo; return taulu; // palauta sijaintitieto kutsujalle, jää olemaan myös kutsun jälkeen int[] t = annataulukko(5, ); // koko 5 ; kaikkiin lokeroihin TaulukkoParametrina.tulostaTaulukko(t); // ed. sivulla kirja s. Taulukon järjestäminen Ohjelmoinnin perusteet / Auvo Häkkinen / S 6-7 Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-8 Taulukon järjestäminen Ks. Java 7 API Arrays Usein tarvetta saada taulukon sisältö haluttuun järjestykseen Halutaan esim. tulostaa alkioiden arvot pienimmästä suurimpaan Tällöin taulukon sisältö pitää ennen tulostusta järjestää suuruusjärjestykseen Yksinkertaista tyyppiä olevan taulukon järjestämiseen on metodi java.util.arrays.sort(taulukko) Kuormitettu, joten kääntäjä valitsee oikean metodin parametrin tyypin perusteella Esim. merkkijonoja vertaillaan eri tavalla kuin kokonaislukuja Jokaisen ohjelmoijan syytä osata ohjelmoida itse ainakin yksi muu tapa järjestää taulukko Tapoja ja menetelmiä on useita Vaihtelevat tilantarpeen ja suoritusajan suhteen Arpanoppaa heitetään kertaa Tulokset esitetään pienimmästä suurimpaan public class Noppa { int[] noppa = new int[]; // luo ja nollaa taulukko // heitä noppaa kertaa ja vie tulos taulukkoon noppa[i] = + (int)(math.random()*6); // Järjestä taulukon sisältö java.util.arrays.sort(noppa); // Tulosta taulukon sisältö kirja s. 93 Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-9 Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-3 Esim: Oma järjestämismetodi public class NoppienJärjestäminen{ private static void järjestä(int[] taulu){ int jemma; for (int i=; i < taulu.length-; i++) for (int j=i+; j < taulu.length; j++) if (taulu[i] > taulu[j]) { jemma = taulu[i]; taulu[i] = taulu[j]; taulu[j] = jemma; int[] noppa = new int[]; noppa[i] = + (int)(math.random()*6); järjestä(noppa); Esittele apumuuttujat toistosilmukoiden ulkopuolella Huomaa: sisäkkäiset toistot Tämä algoritmi tunnetaan nimellä vaihtojärjestäminen Simuloi joutessais tämän algoritmin toimintaa piirtelemällä! Taulukko taulukossa Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-3 Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-3

5 Kaksiulotteinen taulukko Taulukon alkiona voi olla myös taulukko -> moniulotteinen taulukko Yksiulotteisesta taulukosta käytetään usein nimitystä vektori, ja kaksiulotteisesta nimitystä matriisi Seuraavassa esimerkissä on kaksiulotteinen taulukko, johon sijoitetaan lukujen - kertotaulun arvoja Esimerkiksi kertotaulu[3][3] = 3*3; kertotaulu[3][4] = 3*4; Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-33 Kaksiulotteinen taulukko Myös useampiulotteisen taulukon voi alustaa vakioarvoilla esittelynsä yhteydessä int [][] luvut = { {,, 3, 4, {5, 6, 7, 8, {9,,, ; Kukin taulukon alkio on siis taulukko Näin monta taulukkoriviä for (int i=; i<luvut.length; i++) { for (int j=; j<luvut[i].length; j++) { System.out.print(luvut[i][j] + ); System.out.println(); Mikä rivi Mikä sarake Näin monta alkiota tällä rivillä public class KertotauluUlotteinenTaulukko { Vrt. kirja s. 94 public static void main(string args[]) { int[][] kertotaulu = new int[][]; // Luo ja nollaa for (int i=; i<=; i++) { // Täytä jokainen rivi for (int j=; j<=; j++) { // Täytä yhden rivin alkiot kertotaulu[i][j] = i * j; for (int i=; i<=; i++) { for (int j=; j<=; j++) { System.out.printf( %d,kertotaulu[i][j]); System.out.println("\n"); Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-34 Yhteenveto Taulukko on kokoelma arvoja, joilla on sama tyyppi alkion tyyppi määrätään taulukkomuuttujan esittelyssä Taulukon koko määrätään taulukkoa luotaessa new -operaatiolla alkiot alustettu luotaessa nolla-arvolla taulukon koko on muuttujassa taulukonnimi.length Taulukon voi alustaa omilla arvoilla esittelyn yhteydessä tällöin ei saa käyttää new-operaatiota Yksittäiseen alkioon viitataan indeksoimalla taulukkomuuttujaa ensimmäisen alkion indeksi eli etäisyys on viimeisen alkion indeksi on taulukonnimi.length- indeksinä voi käyttää lauseketta, jonka arvon voi laskea Taulukon alkiolle sallittu kaikki ne operaatiot, mitä samaa tyyppiä oleville tavallisille muuttujillekin Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-35 Ohjelmoinnin perusteet / Auvo Häkkinen / S 5-36 System.exit() Seuraavaksi kurssi Ohjelmoinnin jatko (Java) Ohjelmoinnin perusteet / Auvo Häkkinen / S 6-37

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

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

Lisätiedot

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

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

Lisätiedot

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

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

Lisätiedot

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

Taulukoiden käsittely Javalla

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

Lisätiedot

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, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

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

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

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

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

7. Oliot ja viitteet 7.1

7. Oliot ja viitteet 7.1 7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin

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

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

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

Lisätiedot

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

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

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public) Tietorakenteet JAVA-OHJELMOINTI Osa 5: Tietorakenteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Olioita ja tietoja voidaan organisoida määrämuotoisiksi tietorakenteiksi Hyödyllisiä

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

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

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

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

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

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.

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

17. Javan omat luokat 17.1

17. Javan omat luokat 17.1 17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)

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

20. Javan omat luokat 20.1

20. Javan omat luokat 20.1 20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

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

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)

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

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

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

1. Omat operaatiot 1.1

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

Lisätiedot

Ohjelmoinnin 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

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

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

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

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

Lisätiedot

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

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

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

Lisätiedot

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

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

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet

Metodit Arvotyyppi. Metodit Arvotyyppi. Metodit Parametrit. Metodit Parametrit. Metodit Kuormittaminen. Metodit Kuormittaminen. Javan perusteet Metodit Arvotyyppi Ellei metodi palauta arvoa, sen arvotyyppi on void Tällöin return; -lauseke ei ole metodissa pakollinen, vaikka sen käyttö on sallittua Metodi voi palauttaa alkeistyypin tai olion Tällöin

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

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

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

11. Javan toistorakenteet 11.1

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

Lisätiedot

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

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

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

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

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

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

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

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely

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

12. Javan toistorakenteet 12.1

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

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

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

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä

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

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

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

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

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

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

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3 opettaja: Pasi Ranne

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3 opettaja: Pasi Ranne Seuraavista tehtävistä saatu yhteispistemäärä (max 7 pistettä) jaetaan luvulla 3.5 ja näin saadaan varsinainen kurssipisteisiin laskettava pistemäärä. Bonustehtävien pisteet jaetaan luvulla 4 eli niistä

Lisätiedot

11. Javan valintarakenteet 11.1

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

Lisätiedot

16. Javan omat luokat 16.1

16. Javan omat luokat 16.1 16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat

Lisätiedot

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai ) Tehtävä do while + Viikko 1 Tehtävä 27. Salasana (MOOC) Viikko 1 Tehtävä 28. Lämpötilat (MOOC) Tehdään ohjelma, joka kysyy käyttäjältä lukua. Luku kerrotaan aina seuraavalla käyttäjän antamalla luvulla

Lisätiedot

Harjoitus 4 (viikko 47)

Harjoitus 4 (viikko 47) Kaikki tämän harjoituksen tehtävät liittyvät joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Saa hyvän alun harjoitustyön tekoon, kun ratkaiset mahdollisimman monta tehtävää. Mikäli tehtävissä

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

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

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

Harjoitus 5 (viikko 48)

Harjoitus 5 (viikko 48) Moni tämän harjoituksen tehtävistä liittyy joko suoraan tai epäsuorasti kurssin toiseen harjoitustyöhön. Harjoitustyö edistyy sitä paremmin, mitä enemmän tehtäviä ratkaiset. Mikäli tehtävissä on jotain

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

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

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen

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

19. Olio-ohjelmointia Javalla 19.1

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

Lisätiedot

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

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

Lisätiedot

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

Ohjelmoinnin perusteet, kurssikoe

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

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

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

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 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

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma.

Ohjelmointi 2 / 2008 Välikoe / Pöytätestaa seuraava ohjelma. Välikoe / 20.3 Vastaa neljään (4) tehtävään. Jos vastaat 5:een, 4 huonointa arvostellaan. Kunkin tehtävän vastaus eri konseptille. 1. Pöytätesti Pöytätestaa seuraava ohjelma. Tutki ohjelman toimintaa pöytätestillä

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat

Lisätiedot

4. Olio-ohjelmoinista lyhyesti 4.1

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

Lisätiedot

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

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

Lisätiedot

Ohjelmointi 1 Taulukot ja merkkijonot

Ohjelmointi 1 Taulukot ja merkkijonot Ohjelmointi 1 Taulukot ja merkkijonot Jussi Pohjolainen TAMK Tieto- ja viestintäteknologia Johdanto taulukkoon Jos ohjelmassa käytössä ainoastaan perinteisiä (yksinkertaisia) muuttujia, ohjelmien teko

Lisätiedot

1. Mitä tehdään ensiksi?

1. Mitä tehdään ensiksi? 1. Mitä tehdään ensiksi? Antti Jussi i Lakanen Ohjelmointi 1, kevät 2010/ Jyväskylän yliopisto a) Etsitään Googlesta valmis algoritmi b) Mietitään miten itse tehtäisiin sama homma kynällä ja paperilla

Lisätiedot

Muuttujat ja kontrolli. Ville Sundberg

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

Lisätiedot

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

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

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

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

Lisätiedot

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan

Lisätiedot

Tietorakenteet, laskuharjoitus 3, ratkaisuja

Tietorakenteet, laskuharjoitus 3, ratkaisuja Tietorakenteet, laskuharjoitus 3, ratkaisuja 1. (a) Toistolauseen runko-osassa tehdään yksi laskuoperaatio, runko on siis vakioaikainen. Jos syöte on n, suoritetaan runko n kertaa, eli aikavaativuus kokonaisuudessaan

Lisätiedot

Luokan muodostimet (Constructors)

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

Lisätiedot

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

Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi

Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi Imperatiivisen ohjelmoinnin peruskäsitteet muuttuja muuttujissa oleva data voi olla yksinkertaista eli primitiivistä (esim. luvut ja merkit) tai rakenteista jolloin puhutaan tietorakenteista. puhuttaessa

Lisätiedot