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

Koko: px
Aloita esitys sivulta:

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

Transkriptio

1 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 luokka (class) luokassa voidaan määritellä metodeita jokaisessa itsenäisessä C#-ohjelmassa on main-metodi main-metodi on julkinen (public), luokan oma (static) ja arvoa palauttamaton (void) main-metodilla on merkkijonotyyppinen (String) parametri args lause Console.WriteLine... tulostaa kuvaruudulle tekstin Hei maailma! Ohjelman muoto Ohjelman luettavuus Kirjoitetaan jokainen lause omalle riville Useampiakin voit kirjoittaa mutta se haittaa luettavuutta Käytä sisennyksiä Kirjoita kommentteja Kommentit kommentti on vapaamuotoinen selitysteksti, joka ei vaikuta ohjelman suorittamiseen ilmaus /* aloittaa kommentin ja */ lopettaa kommentin ilmaus // kertoo, että tokarivi on kommenttia // Tämä on kommenttirivi /* Tämä on kommenttitekstiä, ja se jatkuu usealle riville. */ 1

2 Kommentit Jokaisen ohjelman ekaun kannattaa kirjoittaa kommentit Esim. /* * Ohjelma : Tervehdys * tekijä: Juha Stenfors * valmis: * muutos: / Tulostustekstit muutettu * muutos: / lisätty kommentteja */ Tee jokaiselle sellaiselle riville kommentti, joita haluat selventää Auttaa jatkossa, kun tutkit ohjelmaa ja sen logiikkaa Tietotyypit (tieto)tyyppi liittyy moneen asiaan ohjelmointikielessä: muuttujalla on aina tyyppi arvolla on aina tyyppi parametrilla on aina tyyppi (käsitellään myöhemmin) metodin paluuarvolla on aina tyyppi (käsitellään myöhemmin) C#-kieli on ns. vahvasti tyypitetty kieli sijoitusoperaatioissa ja vertailuissa vaaditaan aina yhteensopivuus arvojen kesken 2

3 Tietotyypit Tietotyyppi Tunnus Muisti.Net tyyppi Arvoalue lyhyt kokonaisluku kokonaisluku pitkä kokonaisluku yksinkert. tark. liukuluku kaksoistarkkuden liukuluku pitkä liukuluku totuusarvo tavu merkki short int long float double decimal bool byte char 2 tavua 4 tavua 8 tavua 4 tavua 8 tavua 16 tavua 1 tavu 1 tavu 8 tavua Int16 Int32 Int64 Single Double Decimal Boolean Byte Char E E E E3080 enintään +/ * 10 ^24 True tai False Mikä tahansa Unicode symboli välillä * Huom! Desimaalierotin ohjelmassa on piste! Tietotyypit Merkki (char) jokaista merkkiä vastaa tietty numeroarvo C#:ssa merkit on koodattu ns. Unicode-merkkijärjestelmällä sisältää maailman useimpien kirjoitusjärjestelmien kirjain- ja numeromerkit vakioarvot esitetään heittomerkkien sisällä: c, C, 6, ; erikoismerkkejä: \t tabulaattori \\ kenoviiva \n rivinvaihto \ lainausmerkki \ heittomerkki 3

4 Tietotyypit Merkkijono (string) merkkijono alkaa ja tokau lainausmerkkeihin saa sisältää mitä tahansa merkkejä voidaan yhdistellä katenaatio-operaattorin (+) avulla esimerkkejä: Auto Auto on kulkuväline Auto\n on\n kulkuväline ( \n = rivinvaihtomerkki ) Auto + + on + + kulkuväline Tietotyypit Totuusarvo (boolean) mahdolliset arvot: true (= tosi) ja false (= epätosi) loogisen lausekkeen arvo on aina totuusarvo esimerkkejä: true, false, x > 0, (x ==5) && (y!= 3) 4

5 Muuttujat muuttuja määritellään ennen käyttöä muodossa tyyppi muuttujan_nimi; muuttujan nimi alkaa aina kirjaimella pienet ja isot kirjaimet ymmärretään eri merkeiksi: esim. Kissa ja kissa ovat eri nimiä esimerkkejä: int lkm, kpl; // lkm ja kpl ovat kokonaislukutyyppisiä double pinta_ala; // pinta_ala on desimaalilukutyyppinen boolean totuus; // totuus on totuusarvotyyppinen string nimi; // nimi on merkkijonoarvoinen useasti on tapana nimeämissä käyttää muuttujan nimessä 1. kirjaimena tyypin ensimmäistä kirjainta tai tyypin kolmea ensimmäistä kirjainta int iluku; string snimi; Muuttujat nimeämisessä suositaan seuraavaa tapaa: nimen 1. kirjain on pieni jokainen seuraava sana nimessä alkaa isolla kirjaimella kaikki muut kirjaimet ovat pieniä skandeja (ääkkösiä) ei pitäisi käyttää nimi ei saa olla C#-kielen varattu sana esimerkkejä muuttujanimistä nelionpintaala autonrenkaanilmanpaine keski_ika iyhteensa skatuosoite 5

6 Sijoituslauseita sijoitusoperaattori on yhtäsuuruusmerkki (=) muuttuja = lauseke; huom. älä sekoita sijoitusoperaattoria yhtäsuuruusoperaattoriin, joka on kaksi yhtäsuuruusmerkkiä (==) muuttujan ja lausekkeen tulee olla sijoitusyhteensopivia (eli lähes aina samaa tyyppiä) esimerkkejä: int luku; double pinta_ala; boolean totuus; string postiosoite; luku = 1237; pinta_ala = ; totuus = true; postiosoite = Tiedepuisto 3 ; Sijoituslauseita muuttujille voidaan antaa ekaarvo jo määrittelyssä: int luku = 1237; double pinta_ala = ; boolean totuus = true; string postiosoite = Tiedepuisto 3 ; algoritmeissa muuttujan uusi arvo lasketaan usein vanhasta arvosta luku = luku + 10; pinta_ala = pinta_ala - 3; näissä on mahdollista käyttää erityisiä sijoitusoperaattoreita luku += 10; pinta_ala -= 3; usein muuttujan arvoa kasvatetaan/vähennetään yhdellä luku = luku + 1; on sama kuin ++luku; luku++; pinta_ala = pinta_ala - 1; on sama kuin pinta_ala--; 6

7 Laskutoimitukset yhteenlasku (+) vähennyslasku (-) jakolasku (/) kertolasku (*) jäännösjako (%) jakolaskussa jaettavan ja jakajan ollessa kokonaisluku tuloskin on aina kokonaisluku (= ns. kokonaisjako) jäännösjako on kokonaislukujen jakolaskun jakojäännös esimerkki int luku = 5, kpl = 100; double leveys = 2.2, korkeus = 5; kpl = luku / 2; // arvo on 2 (eikä 2.5)! luku = 22 % 3; // arvo on 1 leveys = korkeus / 2; // arvo on 2.5 Katenointi katenointi tarkoittaa merkkijonojen liittämistä toisiinsa katenointioperaattori on +-merkki jos lauseke on muotoa merkkijono + numeerinen arvo, yhteenlasku tulkitaan katenaatioksi esimerkki string eka = luokka, toka = huone, yht; yht = eka + toka; // arvo on luokkahuone yht = toka + eka; // arvo on huoneluokka yht = eka + + toka; // arvo on huone luokka yht = toka + eka + an + toka; // arvo on huoneluokkaan huone yht = toka + 210; // arvo on huone210 7

8 Kirjoittaminen ja lukeminen näytölle tulostetaan valmiiksi määritellyn nimiavaruuden System avulla (using System;) Console.WriteLine( Hei maailma! ); // tulostaa tekstin ja rivinvaihdon Console.Write( Hei maailma! ); // tulostaa tekstin tulostettava on aina vain yksi arvo jos halutaan tulostaa esim. tekstiä ja lukuarvoja, niistä on tehtävä yksi merkkijono string snimi = Juha ; Console.WriteLine( Moi + snimi +! ); tämä tulostaisi (näytölle): Moi Juha! Kirjoittaminen ja lukeminen Console.WriteLine( Jos haluat tulostaa \ lainausmerkit\! ); Console.WriteLine( Tyhjiä rivejä kaksi:\n\n ); Console.WriteLine( \tyksi tabulointi ); Console.WriteLine( \t\t\ttabuloitu kolme kertaa ); Console.WriteLine( C:\\> ); Console.WriteLine( \\\\alfa\\yleiset ); Jos haluat tulostaa lainausmerkit! Tyhjiä rivejä kaksi: Yksi tabulointi Tabuloitu kolme kertaa C:\> \\alfa\yleiset 8

9 Loogiset lausekkeet lähtökohtana bool - tietotyyppi arvot true (tosi) ja false (epätosi) looginen lauseke (eli totuusarvoinen lauseke) muodostuu ehtolausekkeista ja niitä yhdistävistä loogisista operaattoreista ehtolausekkeen yleinen muoto: arvo vertailuoperaattori arvo muuttuja, vakio, lauseke > >= < <= ==!= muuttuja, vakio, lauseke Loogiset lausekkeet esimerkkejä: luku >= 0 imaara == 100 arvo < (luku * 2.4) älä sekoita yhtäsuuruusoperaattoria (==) ja sijoitusoperaattoria (=): luku == 10 // onko luku:n arvo 10? luku = 10 // luku saa arvokseen 10 merkkijonoja voit verrata samalla tavalla kuten lukuja snimi == Juha // onko snimi:n arvo Juha? ehtolausekkeita voidaan yhdistellä loogisin operaattorein: && ja (and) tai (or) ^ poissulkeva tai (xor)! ei (not) 9

10 Loogiset lausekkeet esimerkki int iluku = 2; double dpi = 3.14; bool b1, b2, b3; b1 = (i == 2) && (dpi > 10.0); b2 = (i == 2) && (dpi < 10.0); // b1 saa arvon false // b2 saa arvon true b1 = (i == 2) (dpi > 10.0); b2 = (i!= 2) (dpi > 10.0); // b1 saa arvon true // b2 saa arvon false b3 =!b1!!b2; // b3 saa arvon false Tehtävä Alustetaan seuraavat muuttujat: int a, b, c; short x, y, z; Kirjoita looginen lauseke seuraaviin tapauksiin: 1. a on parillinen 2. b on nollaa suurempi, ja b on pienempi kuin b on suurempi kuin c, ja b on pienempi kuin a < x < joko a on 4 ja b on negatiivinen tai y on suurempi kuin z:n ja x:n erotus 6. z < -1.7 tai z > 23.1, c:n ja a:n summa on parillinen ja b ei ole joko a on 7 tai b on c, mutta eivät molemmat 8. joko x on positiivinen tai y on negatiivinen, mutta eivät molemmat 10

11 Ratkaisu 1. a % 2 == 0 2. (b > 0) && (b < 120) 3. (b > c) && (b < a) 4. (x >-11.2) && (x < -2.42) 5. (a == 4) && (b < 0) (y > z x) 6. ((z < -1.7) (z > 23.1)) && ((a + c) % 2 == 0) && (b!= 543) 7. (a == 7) ^ (b == c) 8. (x > 0) ^ (y < 0) if-lause ehdollisella lauseella eli if-lauseella on kaksi muotoa: if (ehtolauseke) lause; if (ehtolauseke) lause1; else lause2; jos ehto on tosi, niin lause suoritetaan eli ehtolauseke ehdollistaa lauseen suorituksen jos ehto on tosi, niin suoritetaan lause1, muuten suoritetaan lause2 eli lauseet lause1 ja lause2 ovat vaihtoehtoisia 11

12 if-lause double dluku1, dluku2; Console.Write( Anna luku1: ); dluku1 = Convert.ToDouble(Console.ReadLine()); Console.Write( Anna luku2: ); dluku2 = Convert.ToDouble(Console.ReadLine()); if (dluku1 < dluku2){ Console.WriteLine( Luku1 on pienempi. ); else { Console.WriteLine( Luku2 on suurempi tai yhtäsuuri kuin luku1. ); if-lause if-lauseessa voidaan ehdollistaa/vaihtoehtoistaa vain yksittäisiä lauseita jos valittava vaihtoehto muodostuu useammasta kuin yhdestä lauseesta tulee käyttää koottua lausetta (= aaltosulkuparin sisällä olevat lauseet) kootun lauseen perässä EI ole koskaan puolipistettä! if (ehtolauseke) { if (ehtolauseke) { lause; lause; lause; lause; else { lause;... lause; huom. kootun lauseen sisällä määriteltyä muuttujaa ei voi käyttää kootun lauseen ulkopuolella 12

13 switch-lause valintalausetta eli switch-lausetta käytetään silloin kun valintavaihtoehtoja on useita valintalause on muotoa: switch (lauseke) { case vakio1: lause1; break; case vakio2: case vakio3: lause2; lause3; break; default: lause4; break; switch-lause int ikk, ipv; Console.Write( Anna kuukauden numero: ); ikk = Convert.ToInt32(Console.ReadLine()); switch (ikk) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: ipv = 31; break; case 2: ipv = 28; break; case 4: case 6: case 9: case 11: ipv = 30; break; default: ipv = 0; Console.WriteLine( Kuukaudessa + ikk + on + ipv + päivää. ); 13

14 while-lause while-lause on ns. alkuehtoinen toistolause toistokertojen määrä ei tarvitse olla etukäteen tiedossa voidaan käyttää myös lukumääräiselle toistolle (laskurimuuttujan avulla) while-lauseen muoto: while (ehto) { lause;... lause; (Koottua) lausetta toistetaan niin kauan, kun ehto on tosi. Ehto on totuusarvoinen lauseke ja sen arvo tarkastetaan aina ennen toistokerran suorittamista. Kun ehto saa arvon epätosi, siirrytään whilelausetta seuraavaan lauseeseen. while-lause int iluku, isumma; Console.WriteLine( Yhteenlaskuohjelma, negatiivinen luku lopettaa. ); iluku = Convert.ToInt32(Console.ReadLine()); while (iluku >= 0) { isumma = isumma + iluku; Console.WriteLine( Summa nyt: + isumma); iluku = Convert.ToInt32(Console.ReadLine()); Console.WriteLine( Loppu! ); 14

15 Tehtävä Ohjelman tulee tulostaa luvut 1, 2, 3 ja 4. Täytä puuttuvat kohdat: int ilaskuri ; ilaskuri = ; while (ilaskuri 4 ) { Console.WriteLine(iLaskuri); ilaskuri = ilaskuri + ; Ratkaisu Ohjelman tulee tulostaa luvut 1, 2, 3 ja 4. Täytä puuttuvat kohdat: int ilaskuri ; ilaskuri = 1; while (ilaskuri <= 4 ) { Console.WriteLine(iLaskuri); ilaskuri = ilaskuri + 1; 15

16 Tehtävä Ohjelman tulee tulostaa luvut Täytä puuttuvat kohdat: int ilaskuri ; ilaskuri = ; while (ilaskuri ) { Console.WriteLine(iLaskuri); ilaskuri = ilaskuri ; Ratkaisu Ohjelman tulee tulostaa luvut Täytä puuttuvat kohdat: int ilaskuri ; ilaskuri = 10; while (ilaskuri >= -10) { Console.WriteLine(iLaskuri); ilaskuri = ilaskuri - 1; 16

17 Tehtävä Mitä ao. koodi tekee? double dluku1 = 1, dluku2 = 0, dluku3 = 0; while (dluku1!= 0) { Console.WriteLine("Anna luku: "); dluku1 = Convert.ToDouble(Console.ReadLine()); if (dluku1!= 0) { dluku2 = dluku2 + 1; dluku3 = dluku3 + dluku1; Console.WriteLine(dLuku3 / dluku2); Ratkaisu Ohjelma siis kysyy käyttäjältä lukuja, niin kauan kuin ne ovat erisuuria kuin 0. Jos luku ei ole nolla lisätään se muuttujaan dluku3 ja samalla lisätään yhdellä muuttujan arvoa dluku2. Lopuksi jaetaan dluku3 dluku2:lla eli saadaan keskiarvo syötetyistä luvuista ja tulostetaan se. 17

18 Tehtävä Tee ohjelma, joka pyytää käyttäjältä alku- ja loppuarvon sekä tulostaa kaikki kokonaisluvut näiden arvojen väliltä. Käytä toteutukseen while-lausetta. Kirjoita paperille vastaus ja käytä mahdollisimman eksaktia C# - syntaksia. Ratkaisu int ialku, iloppu; Console.WriteLine("Anna alkuarvo: "); ialku = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Anna loppuarvo: "); iloppu = Convert.ToInt32(Console.ReadLine()); while (ialku <= iloppu) { Console.WriteLine(iAlku); ialku = ialku + 1; 18

19 do-while -lause do-while lause on ns. loppuehtoinen toistolause toistokertojen määrä ei ole etukäteen tiedossa do-while -lauseen muoto: do { lause;... lause; while(ehto); (Koottua) lausetta toistetaan niin kauan, kun ehto on tosi. Huomaa puolipiste! Ehto on totuusarvoinen lauseke ja sen arvo tarkastetaan aina toistokerran suorittamisen jälkeen. Kun ehto saa arvon epätosi, siirrytään while-lausetta seuraavaan lauseeseen. do-while -lause int ialku, iloppu; Console.WriteLine("Anna alkuarvo: "); ialku = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Anna loppuarvo: "); iloppu = Convert.ToInt32(Console.ReadLine()); do { Console.WriteLine(iAlku); ialku = ialku + 1; while (ialku <= iloppu); 19

20 Tehtävä : Mitä tulostaa ao. koodi ( syöte: 2 ja 5) int ialku, iloppu; Console.Write("Anna alkuarvo: "); ialku = Convert.ToInt32(Console.ReadLine()); Console.Write("Anna loppuarvo: "); iloppu = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("while - rakenteen avulla "); while (ialku <= iloppu) { Console.WriteLine(iAlku); ialku = ialku + 1; Console.WriteLine("vielä do while - rakenteen avulla "); do { Console.WriteLine(iAlku); ialku = ialku + 1; while (ialku <= iloppu); Console.WriteLine(""); Ratkaisu Miksi näin? 20

21 for-lause for-lause on ns. lukumääräinen toistolause toistokertojen määrä on etukäteen tiedossa for-lauseen muoto: for (alkuasetus; ehto; eteneminen) { lause;... lause; Alkuasetus suoritetaan yhden kerran ennen toistokertojen alkamista. Alkuasetusta käytetään toistokertojen lukumäärää ylläpitävän laskurimuuttujan (eli ns. indeksimuuttujan) määrittelyyn. Ehto on totuusarvoinen lauseke ja sen arvo tarkastetaan aina ennen toistokerran suorittamista. Eteneminen on lause, joka suoritetaan jokaisen toistokerran jälkeen. Etenemistä hallitaan laskurimuuttujan arvon muuttamisella. for lause; esimerkki int ilkm; Console.WriteLine( Montako tähteä haluat: ); ilkm = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i < ilkm; i=i+1) { Console.Write( * ); 21

22 for lause; harjoitus Miten muuttaisit edellistä tehtävää, jotta saisit seuraavanlaisen lopputuloksen? for lause; ratkaisu int ilkm, irivit, i, x; Console.Write("Montako tähteä riville haluat: "); ilkm = Convert.ToInt32(Console.ReadLine()); Console.Write("Montako riviä tähtiä haluat: "); irivit = Convert.ToInt32(Console.ReadLine()); Console.WriteLine(""); for (x = 0; x < irivit; x = x+1){ for (i = 0; i < ilkm; i=i+1) { Console.Write("* "); Console.WriteLine(""); Console.WriteLine(""); 22

23 for lause; tehtävä Tee ohjelma, joka pyytää käyttäjältä alku- ja loppuarvon sekä tulostaa kaikki kokonaisluvut näiden arvojen väliltä. Tee ohjelmasta sellainen, että se toimii suuremmasta luvusta pienempään eli siis tulostaa esim. numerot alkuarvosta 6 0. Käytä toteutukseen for-lausetta. for lause; ratkaisu int ialku, iloppu, i; Console.Write("Anna alku: "); ialku = Convert.ToInt32(Console.ReadLine()); Console.Write("Anna loppu: "); iloppu = Convert.ToInt32(Console.ReadLine()); for (i = ialku ; i >= iloppu ; i = i - 1) { Console.WriteLine(i); 23

24 Taulukko jos tarvitaan n kappaletta keskenään samantyyppisiä muuttujia, ne voidaan koota taulukoksi esimerkki: pyydetään käyttäjältä 8 kokonaislukua ensin ilman taulukkoa: int iluku1, iluku2, iluku3, iluku4, iluku5, iluku6, iluku7, iluku8; Console.Write( Anna 1. luku: ); iluku1 = Convert.ToInt32(Console.ReadLine()); Console.Write( Anna 2. luku: ); iluku2 = Convert.ToInt32(Console.ReadLine()); Console.Write( Anna 3. luku: ); iluku3 = Convert.ToInt32(Console.ReadLine());... Console.Write( Anna 7. luku: ); iluku7 = Convert.ToInt32(Console.ReadLine()); Console.Write( Anna 8. luku: ); iluku8 = Convert.ToInt32(Console.ReadLine()); Taulukko ja sitten sama taulukon avulla int i; int[] iluku = new int[8]; for (i=0; i<8; i=i+1) { Console.Write( Anna + (i+1) +. luku: ); iluku[i] = Convert.ToInt32(Console.ReadLine()); taulukko koostuu keskenään samantyyppisistä (muuttujatyyppejä) alkioista alkio 24

25 Taulukko taulukolla on nimi taulukon alkioihin viitataan nimen ja alkion järjestysnumeron (eli indeksin) avulla indeksointi alkaa aina nollasta! Taulukko: iluku indeksi iluku[0] iluku[1] iluku[2] iluku[3] iluku[4] iluku[5] iluku[6] iluku[7] alkioita käytetään kuten tavallisia muuttujia iluku[2] = 12; iluku[3] = iluku[3] + 2; iluku[4] = iluku[1] + iluku[2] + iluku[3]; Taulukko taulukko on nimi on muotoa: tietotyyppi[] esim. kokonaislukutaulukko int[], jonka alkioiden arvoina voi olla inttyyppisiä arvoja taulukkotyyppisen muuttujan tietotyyppinä on taulukko uusi taulukko luodaan siis tyyliin tietotyyppi[n], jossa n kertoo alkioiden lukumäärän esim. 8-alkioinen kokonaislukutaulukko luodaan int[8] taulukkomuuttujan määrittely tietotyyppi[] nimi = new tietotyyppi[n]; int[] luku = new int[8]; 25

26 Taulukko int[] iluku = new int[8]; int i; // sijoitetaan luvut taulukoon for (i=0; i<8; i = i + 1) { iluku[i] = i; // tulostetaan syötetyt luvut for (i=0; i<8; i = i + 1) { Console.WriteLine( Alkiossa + i + : + iluku[i]); 1. tenttiin tuleva aineisto päättyy tähän! 26

27 Olio-ohjelmointi olioperustaisuus on eräs ohjelmointiparadigma paradigma = esikuva, malli, kaava tapa kuvata erilaisten järjestelmien rakennetta ja toimintaa terminologia on osin vakiintumatonta miksi? tarve systematisoida ohjelmistojen rakentamista vastaa hyvin ihmisen tapaa hahmottaa maailmaa Oliotermistöä keskeistä olioajattelussa on tiedostaa ero abstraktin ja konkreettisen välillä abstrakti käsite konkreettinen ilmentymä teos Visual C#.NET - kirja auto Nissan Primera auto parkkipaikalla henkilö opiskelija Matti Möttönen abstrakti käsite kirjoitetaan C#-kielessä luokaksi ja jokainen sen pohjalta luotu konkreettinen ilmentymä on olio 27

28 Oliotermistöä se, mitä abstraktille käsitteelle (luokalle) voidaan tehdä, kirjoitetaan metodeiksi kaikki tieto, mikä abstraktiin käsitteeseen (luokkaan) liittyy, kirjoitetaan kentiksi esimerkki: luokka Henkilö kenttä syntymäaika kenttä nimi kenttä ikä metodi ristiminen() metodi tervehdi() metodi vanhene() Oliotermistöä luokan perusteella luodaan konkreettisia (fyysisiä) olioita Henkilö luokka kenttä syntymäaika kenttä nimi kenttä ikä metodi ristiminen() metodi tervehdi() metodi vanhene() Luodaan uusi olio Henkilö olio Matti Möttönen 23 v ristiminen() tervehdi() vanhene() Matti Möttönen oliota siis käytetään metodiensa välityksellä. Hän kentät perintönä luokalta ja osaa toimia metodien mukaan. 28

29 Tehtävä Suunnittele luokka Auto. Mitä tietoja autoon liittyy? = kentät Mitä autolla voidaan tehdä? = metodit Ratkaisu Auto-luokka kentät: polttoainesäiliön tilavuus merkki malli hinta moottoritilavuus Metodit: LisääPolttoAinetta(litramäärä) UusiHinta(uusi hinta) AvaaOvet() KäynnistäMoottori() Aja(suunta) 29

30 Kenttä kentät kuvaavat kaikki tiedot, jotka luokkaan liittyvät luokan pohjalta luodun olion kentillä on oliota kuvaavat arvot kenttiä käsitellään tyypillisesti vain metodien kautta kenttä määritellään lähes samoin kuin muuttuja: näkyvyysmääreitä tyyppi nimi; näkyvyysmääreillä säädellään kentän käytettävyyttä private = kenttä on käytettävissä vain luokan metodien välityksellä public = kenttä on käytettävissä luokan ulkopuolelta esimerkki: private string ssukunimi; private string setunimi; private int iika; Metodi metodilla toteutetaan jokin palvelu, ja sitä ohjataan parametriensa välityksellä Esimerkki Onko vuosi 2005 karkausvuosi? karkausvuosiko(2005) Ei karkausvuosiko(vuosi) 1. Vastaanotetaan parametrina vuosi 2. Selvitetään vuodesta karkausvuosi 3. Palautetaan paluuarvona vastaus 30

31 Metodi Metodin toiminta perustuu seuraavaan kaavaan: lähtötiedot toiminta vastaus Esimerkki C# - metodina tulo - metodi public int Tulo(int iluku1, int iluku2) { int itulos; itulos = iluku1 * iluku2; return itulos; Metodi metodien avulla luokkaa voidaan käsitellä jollakin tavalla luokasta luotua oliota käytetään vain metodiensa välityksellä metodin määrittely (kirjoitetaan johonkin luokkaan elementiksi): [näkyvyysmääreitä] paluuarvon_tyyppi nimi (parametrit) { algoritmi näkyvyysmääreillä säädellään metodin käytettävyyttä private = luokan omassa käytössä oleva metodi public = muiden luokkien käytössä oleva metodi static = luokkametodi, jota kutsutaan luokan kautta (kaikille luokan olioille yhteinen) paluuarvon tyyppi tietotyyppi, joka kertoo, minkä tyyppisen arvon metodi palauttaa void = metodi ei palauta lainkaan arvoa 31

32 Metodi esimerkki: public void ristiminen(string n) { nimi = n; public void tervehdi() { Console.WriteLine( Morjens, olen + nimi); metodi käynnistetään kutsumalla sitä metodikutsu muodostuu metodin nimestä sekä mahdollisten parametrien arvoista esimerkki: ristiminen( Matti Möttönen ); tervehdi(); Metodi metodin parametrit ovat metodin muuttujia, joita käytetään välittämään tietoa metodille sen kutsumisen yhteydessä parametrit saavat aina (alku)arvonsa metodin kutsumisen yhteydessä parametrin arvoa ei voi muuttaa itse metodissa parametrin määrittely on samanlainen kuin muuttujalla: tietotyyppi nimi Esimerkki koodista public void Toista(string stext, int ikerta) { int i; for (i=0; i < ikerta; i = i + 1) { Console.WriteLine(sText); Koodissa kutsu tapahtuu seuraavasti: Toista( Hello World, 2); Hello World Hello World 32

33 Metodi metodin paluuarvo osa metodeista on arvon palauttavia paluuarvon tyyppi kirjoitetaan metodimäärittelyyn ennen metodin nimeä void tarkoittaa, että paluuarvoa ei ole jos metodi palauttaa arvon, siinä on oltava return-lause, joka ilmaisee palautettavan arvon kun return-lause suoritetaan, metodin suoritus päättyy esimerkki public int KuukaudessaPaivia(int ikk) { switch (ikk) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return(31); break; case 2: return(28); break; case 4: case 6: case 9: case 11: return(30); break; default: return (0); Miten olio luodaan? Miten käytetään? public static void Main(string[] args) { PapuKaija pk = new PapuKaija(); pk.ristiminen("polly"); pk.toista("terve maailma", 2); // luodaan pk niminen olio luokasta PapuKaija // kutsutaan metodia Ristiminen // kutsutaan metodia Toista // HUOM! Tämä eri tiedostoon class PapuKaija { private string snimi; // määritellään kenttä snimi, luokalle public void Toista(string stext, int ikerta) // toistetaan haluttua tekstiä haluttu määrä { int i; for (i=0; i < ikerta; i = i + 1) { Console.WriteLine(sText); public void Ristiminen(string stext) // tämä metodi asettaa oliolle ( PapuKaijalle) nimen eli siis muuttaa kentän snimi arvoa { snimi = stext; 33

34 Miten metodeja käytetään samassa tiedostossa? public static void Main(string[] args) { Ristiminen("Polly"); Toista("Terve maailma", 2); // kutsutaan metodia Ristiminen // kutsutaan metodia Toista private static string snimi; // määritellään kenttä snimi luokalle public static void Toista(string stext, int ikerta) // toistetaan haluttua tekstiä haluttu määrä { int i; for (i=0; i < ikerta; i = i + 1) { Console.WriteLine(sText); // tämä metodi asettaa nimen eli siis muuttaa kentän snimi arvoa public static void Ristiminen(string stext) { snimi = stext; // kun metodit samassa tiedostossa kuin Main metodi pitää avainsana static lisätä näkyvyysmääreen (public) perään sekä metodeilla että kentillä. Metodi itsenäisessä (= suoritettavassa) C#-ohjelmassa on aina main()-metodi public static void main(string[] args) C#-ohjelman suoritus tarkoittaa käytännössä mainmetodin suorittamista 34

35 Metodi luokassa voi olla myös useita samannimisiä metodeja, joilla on erilaiset parametrit tätä ilmiötä kutsutaan kuormittamiseksi esimerkki: public void TulostaNelio(double dsivunpituus) public void TulostaNelio(int isivunpituus) public void TulostaNelio(int isivu1, int isivu2) esim. metodi Console.WriteLine() on kuormitettu useille erityyppisille parametreille C# - kääntäjä päättää suoritettavan metodin kutsussa olevien parametriarvojen tyyppien perusteella Olio olio luodaan luokka-määrityksen pohjalta jokaisella oliolla on omat kentät ja metodit luominen tehdään operaatiolla new luokkaa käytetään samoin kuin tietotyyppiä muuttujan tyypiksi voidaan asettaa luokka esimerkki olkoon määritelty luokka Henkilo nyt voidaan määritellä tätä tyyppiä oleva muuttuja: Henkilo henk; muuttujan arvoksi sijoitetaan luokasta luotu (new-operaatio) olio: henk = new Henkilo(); tämän jälkeen muuttujan arvona olevan olion metodeja voidaan suorittaa: henk.ristiminen( Matti Möttönen ); henk.tervehdi(); 35

36 Olio Olio Olio A B nimi: Polly Ristiminen() Tervehdi() nimi: Pedro Ristiminen() Tervehdi() Ohjelma 1. Luo PapuKaija-olio A; 2. A.ristiminen( Polly ); 3. A.tervehdi(); Luo PapuKaija-olio B; 5. B.ristiminen( Pedro ); 6. B.tervehdi(); Luokka nimi Papukaija Ristiminen() Tervehdi() Olio main.cs: class MainClass { public static void main(string[] args) { PapuKaija pka, pkb; pka = new PapuKaija(); pka.ristiminen( Polly ); pka.tervehdi( Terve, 2); pkb = new Henkilo(); pkb.ristiminen( Pedro ); pkb.tervehdi( Moro,3); PapuKaija.cs: public class PapuKaija { private string snimi; public void Ristiminen(string n) { snimi = n; public void Tervehdi(string stext, int ikrt ) { int i; for ( i = 0;i < ikrt; i++) { Console.WriteLine(sText + olen + snimi ); 36

37 Konstruktori luokassa voi olla metodi, jota käytetään olion luomiseen tällaista metodia kutsutaan konstruktoriksi eli rakentajaksi konstruktorin nimi on aina sama kuin luokan nimi esimerkiksi luokan Henkilo konstruktori on Henkilo() konstruktorin määrittelyssä ei käytetä lainkaan paluuarvon tyyppi määrettä konstruktori asettaa tyypillisesti kenttien alkuarvoja kenttien alkuarvoja ei siis tule asettaa kentän määrittelyssä vaan konstruktorissa luokassa voi olla useita konstruktoreita keskenään samannimisiä, mutta parametriosat ovat erilaisia (= kuormittaminen) jos luokassa ei ole määritelty konstruktoria, suoritetaan oliota luotaessa parametriton ns. oletuskonstruktori käynnistää ns. yliluokan konstruktorin liittyy olio-ohjelmoinnin käsitteeseen periytyminen, jota emme ole käsitelleet Konstruktori public class Piste { private int x; private int y; // kentät public Piste() { // konstruktori x = 0; y = 0; public Piste(int iarvox, int iarvoy) { // konstruktori x = iarvox; y = iarvoy; public int GetX() { // metodi return x; public int GetY() { // metodi return y; public void Siirry(int iarvox, int iarvoy) { // metodi x = x + iarvox; y = y + iarvoy; 37

38 Aksessori Käsittele luokkien kenttiä vain metodien avulla metodi, joka asettaa kenttään arvon tai palauttaa paluuarvonaan kentän arvon, kutsutaan aksessorimetodiksi aksessorimetodit nimetään tyypillisesti Get- ja Set-alkuisiksi esimerkki public class Henkilo { private int iika public Henkilo() { iika = 0; public void SetIka(int iarvo) { iika = iarvo; public int GetIka() { return iika; // kenttä // konstruktori // set-aksessorimetodi // get-aksessorimetodi Aksessorit tapa 2. Toinen tapa käyttää aksessoria public class Henkilo { private int iika; // kenttä public Henkilo() { // konstruktori iika = 0; public int Ika { //aksessori get { return iika; //palautetaan arvo set { iika = value; //asetetaan arvo value - nimisen parametrin avulla 38

39 Aksessorit; Miten käytetään? voit käyttää kumpaa tahansa Aksessori metodia käytät kuten metodeja yleensä Tapa 2 eli aksessoria käytät seuraavasti: public static void Main(string[] args) { Henkilo h = new Henkilo(); // olio.aksessori h.ika++; // voit käyttää aksessoria kuten sekoittaen metodin ja muuttujan Console.WriteLine(h.Ika); // tulostuksessa viittaa suoraan aksessoriin 39

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 Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

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

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

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

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

Lisätiedot

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

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

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

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

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

Lisätiedot

13. Loogiset operaatiot 13.1

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

Lisätiedot

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

7. Näytölle tulostaminen 7.1

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

Lisätiedot

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

13. Loogiset operaatiot 13.1

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

Lisätiedot

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

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 perusteet Y Python

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

Lisätiedot

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

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

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

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

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

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

Python-ohjelmointi Harjoitus 2

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

Lisätiedot

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

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

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

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

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

Lisätiedot

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

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

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

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

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

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

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

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

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

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

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

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

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

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

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

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

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

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

Ohjelmoinnin peruskurssi Y1

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

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

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

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

Lisätiedot

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

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

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

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

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

4. Luokan testaus ja käyttö olion kautta 4.1

4. Luokan testaus ja käyttö olion kautta 4.1 4. Luokan testaus ja käyttö olion kautta 4.1 Olion luominen luokasta Java-kielessä olio määritellään joko luokan edustajaksi tai taulukoksi. Olio on joukko keskusmuistissa olevia tietoja. Oliota käsitellään

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 20. huhtikuuta 2018 Vastaa kaikkiin tehtäviin. Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä.

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

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

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

Lisätiedot

11. Javan valintarakenteet 11.1

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

Lisätiedot

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

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

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

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.

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

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

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

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

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

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

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

Tietorakenteet (syksy 2013)

Tietorakenteet (syksy 2013) Tietorakenteet (syksy 2013) Harjoitus 1 (6.9.2013) Huom. Sinun on osallistuttava perjantain laskuharjoitustilaisuuteen ja tehtävä vähintään kaksi tehtävää, jotta voit jatkaa kurssilla. Näiden laskuharjoitusten

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

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

Tietotyypit ja operaattorit

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

Lisätiedot

Ohjelmoinnin perusteet, 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

811120P Diskreetit rakenteet

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

Lisätiedot

Oliot viestivät metodeja kutsuen

Oliot viestivät metodeja kutsuen 6. Metodit 6.1 Sisällys Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit). Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 12. huhtikuuta 2019 Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä. Yksi A4-kokoinen lunttilappu

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

5/20: Algoritmirakenteita III

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

Lisätiedot

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

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

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

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

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

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A Olio-ohjelmointi Peruskäsitteet jatkoa 812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää

Lisätiedot

811120P Diskreetit rakenteet

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

Lisätiedot

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

Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2

Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2 Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2 Syntaksilomake (22.4.2007) C-kielen standardikirjaston funktioita gets(merkkijono); scanf("formaatti", &muuttuja1,..., &muuttujan); sscanf(merkkijono,

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

C++ rautaisannos. Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout:

C++ rautaisannos. Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout: C++ rautaisannos Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout: # include #include main ( ) main (

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

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

12 Mallit (Templates)

12 Mallit (Templates) 12 Mallit (Templates) Malli on määrittely, jota käyttämällä voidaan luoda samankaltaisten aliohjelmien ja luokkien perheitä. Malli on ohje kääntäjälle luoda geneerisestä tyyppiriippumattomasta ohjelmakoodista

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

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