1. ohjelman selitystä Muutamien ohjelman yksityiskohtien läpikäyntiä
|
|
- Anton Saarinen
- 8 vuotta sitten
- Katselukertoja:
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 Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero
LisätiedotJava-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ätiedotJava-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ätiedotOhjelmointitaito (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ätiedotLuokka 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ätiedotMetodit. 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ätiedotJavan 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ätiedotAlkuarvot 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ätiedotOhjelmointitaito (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ätiedotOhjelmassa 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ätiedot13. 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ätiedotVertailulauseet. 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ätiedot7. 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ätiedotHarjoitus 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ätiedot13. 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ätiedotOlio-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ätiedotKoottu 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ätiedotOhjelmoinnin 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ätiedotEhto- 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ätiedotOhjelmoinnin 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ätiedotITKP102 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ätiedotJava-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ätiedot2. 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ätiedotJava-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ätiedotPython-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ätiedotITKP102 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ätiedotITKP102 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ätiedotOhjelmointiharjoituksia 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ätiedotTaulukot. 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ätiedot1. 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ätiedotMuuttujat 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ätiedotSisä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ätiedotLauseet. 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ätiedotOhjelmoinnin 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ätiedot11. 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ätiedotSisä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ätiedotJavan 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ätiedotC-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ätiedot12. 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ätiedot12. 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ätiedot11. 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ätiedot815338A 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ätiedotPerusteet. 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ätiedotOhjelmoinnin 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ätiedotTietorakenteet. 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ätiedotJava-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ätiedotSisä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ätiedotOhjelmoinnin 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ätiedotJava 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ätiedotPerusteet. 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ätiedotSisä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ätiedotJAVA-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ätiedot19. 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ätiedotEhto- 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ätiedotOhjelmoinnin 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ätiedot4. 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ätiedotSisä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ätiedotITKP102 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ätiedotInformaatioteknologian 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ätiedotITKP102 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ätiedot11. 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ätiedotRajapinta (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ätiedot17. 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ätiedotSisä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ätiedot9. 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ätiedotMetodien 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ätiedotOlion 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ätiedotKää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ätiedotSisä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ätiedotMuuttujatyypit 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ätiedotYleistä. 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ätiedotOhjelmoinnin 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ätiedotTietorakenteet (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ätiedotListarakenne (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ätiedotLuokan 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ätiedotTietotyypit 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ätiedotOhjelmoinnin 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ätiedot811120P 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ätiedotOliot 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ätiedotITKP102 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ätiedot9. 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ätiedot5/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ätiedotOhjelmoinnin 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ätiedot20. 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ätiedotSisä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ätiedotSisä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ätiedotTaulukot. 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ätiedotOhjelmointi 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ätiedotTaulukot. 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ätiedot812341A 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ätiedot811120P 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ätiedotOhjausrakenteet. Valinta:
Ohjausrakenteet Luento antaa yleiskuvan siitä kuinka ohjelmassa suorittaan vaihtoehtoisia tehtäviä valintarakenteiden avulla ja kuinka samanlaisia ohjelma-askeleita toistetaan toistorakenteiden avulla
LisätiedotJohdatus 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ätiedotMikä 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ätiedotC++ 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ätiedotP 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ätiedotOhjelmointi 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ätiedot12 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ätiedotOperaattoreiden 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ätiedotImperatiivisen 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