Aulikki Hyrskykari

Koko: px
Aloita esitys sivulta:

Download "Aulikki Hyrskykari"

Transkriptio

1 Aulikki Hyrskykari Aulikki Hyrskykari

2 o Edellinen luento Taustaa Perusteita Tulkattava kieli työkalut selaimessa Operaattorit Tietotyypit perustietotyypit (primitive datatypes) o Tällä kertaa: JavaScript Perustietotyypit Lauseet Oliot Built in oliot Funktiot o Esittelyn ja arvon alustuksen voi tehdä erikseen tai yhdistää <script type="text/javascript"> var luku, nimi; // muuttujilla ei vielä tietotyyppiä luku = 0; // kokonaislukumuuttuja nimi = "Onni Ohjelmoija "; // merkkijonomuuttuja var luku2 = 12; //Number // uusi kokonaislukumuuttuja var nimi2 = "Outi Ohjelmoija"; // uusi merkkijonomuuttuja nimi = 123; // muuttui kokonaislukumuuttujaksi </script> o Muuttujan tyyppi määräytyy dynaamisesti siihen sijoitetun arvon perusteella o Voiko muuttujaa käyttää esittelemättä sitä ensin voi, silloin sen esittely tehdään automaattisesti siitä tehdään automaattisesti globaali muuttuja

3 o Viittausalue sidottu funktioihin (siis ei lohkoihin) funktiossa esitellyt muuttujat aina paikallisia omassa funktiossaan funktioiden ulkopuolella esitellyt globaaleja muuttujia o Huom: jos muuttuja otetaan käyttöön funktiossa, esittelemättä, siitä tulee globaali <script type="text/javascript"> var a = 5; var xsumma = 0; function TekeeJotain () { var a=10, b=12; // paikallisia muuttujia, olemassa vain funktion sisällä c=10; // globaali muuttuja, olemassa myös funktion ulkopuolella... </script> o Muuttujaa voi käyttää ennen sen esittelyä, variable hoisting <script type="text/javascript"> var mja = "globaali"; function f() { alert(mja); // näyttää arvon "globaali" ; </script> <script type="text/javascript"> var mja = 'globvalue'; function f() { alert(mja); // näyttää arvon "undefined" var mja = "lokaali"; ; </script> o Funktion alussa tapahtuu implisiittinen muuttujan esittely (var mja;) tätä tulee kuitenkin välttää (!) esittele muuttujat itse aina funktion alussa

4 o JavaScript on dynaamisesti tyypitetty kieli muuttujan tyyppi määräytyy sen arvon perusteella voi vaihtua ohjelman suorituksen aikana o Tietotyypit perustietotyypit (primitive data types): number, string, boolean, undefined oliot (objects) - olioita voi luoda itse - joukko valmiiksi määriteltyjä ydinolioita (built in objects): Array, Boolean, Date, Function, Math, Number, RegExp, ja String o lainausmerkkien tai heittomerkkien väliin kirjoitetuista merkeistä ja mahdollisesti erikoismerkeistä (escape characters) yleisimmät erikoismerkit: \n rivinvaihto \t sarkain \' heittomerkki \" lainausmerkki \\ kenoviiva var mjono1 = "Tämä on merkkijono"; var mjono2 = 'Tähän sisältyy "lainaus", siksi käytetty heittomerkkejä'; var mjono3 = "Tähän sisältyy \"lainaus\", ts. sen voi tehdä myös näin"; var mjono4 = "123"; // tämäkin on merkkijono, ei luku var mjono5 = "ensimmäinen rivi\ntoinen rivi"; // tulostuisi kahdelle riville

5 o Jos operaattori on plus (+), ja toinen operandi merkkijono yhteenlaskuoperaatio tulkitaan konkatenaatio operaatioksi yhdistää merkkijonoja toinenkin operandi muutetaan merkkijonoksi var alku = "Tässä on alku"; var loppu = "ja tässä loppu"; var mjono = alku + ", " + loppu + "."; var sostunnus = " C"; var vuosi = sostunnus.substr(4, 2); var svuosi = "19" + vuosi; var vuosi2 = vuosi + 1; var vuosi3 = parseint(vuosi) + 1; var vuosi4 = Number(vuosi)+1; var luku = 12; var luku = 12 + " "; // "Tässä on alku, ja tässä loppu." // vuosi on "89" // merkkijono "1989" // merkkijono "891" // luku 90 // luku 90 // luku 12 // merkkijono "12" o Luku voi olla kokonais tai desimaaliluku jos luvussa ei ole desimaaliosaa, sitä kohdellaan kokonaislukuna eksponenttiliteraalit (e tai E = kymmenen potenssi) var luku1 = 3535; var luku2 = 1000; var luku3 = ; var luku4 = 12.3e 2; // = var luku5 = 2E3; // = 2000

6 o Oktaaliluvut alkavat numerolla 0 o Heksadesimaaliluvut Luvun aloittavaa nollaa seuraa x var n1 = 0377; var n2 = 0xff; molemmat yllä olevista luvuista ovat lukuarvoltaan 255 o Infinity ja Infinity suurempi/pienempi kuin mitä kielessä voidaan esittää suurempi kuin e+308 (voi siis olla 308 nollaa) pienempi 5e324 o NaN arvo not a number aritmeettinen lauseke, jonka kaikkia operandeja ei voida tulkita numeroiksi (yhteenlaskuoperaatio on poikkeus) NaN kuitenkin tietotyypiltään number var n3 = 1e309; var toobig = (n3 == infinity) var n4 = 3 / 0; var n5 = n3 / 100; var n6 = 10 * "12"; var n7 = "10" * "12"; var n8 = 10 * "ff"; typeof n8; // muuttujan toobig arvo on true // nollalla jako tuottaa arvon infinity // mikä tahansa laskuoperaatio jossa yksi // operandeista infinity, tuottaa arvon infinity // automaattinen tyyppimuunnos, n6 = 120 // tyyppimuunnos, n7 = 120 // n8 saa arvokseen NaN (not a number) // tyyppi on "number"

7 o Totuusarvoisen perustietotyypin mahdolliset arvot: true ja false arvoja ei suljeta heittomerkkeihin automaattikonversiot boolean tyyppiin "", 0, null, undefined, NaN => false kaikki muut arvot => true, esim. lukuarvo 0 => true mitätahansapaitsityhjä => true mikä tahansa olio => true var aviossa = false; if (aviossa) {.. // ehto on epätosi var b = (luku === 1000); if (b) {.. // ehto on true, jos luku oli 1000 ilman tyyppikonversiota var s = "false"; // tämä on merkkijonomuuttuja if (s) {.. // joten ehto on tosi var n=0; mjono= "jokin merkkijono"; var b =!!(n); // = false var b =!!(mjono); // = true o Muuttujan tietotyyppi määräytyy sen arvon perusteella mikä on sellaisen muuttujan tietotyyppi, jolla ei ole arvoa? o undefined vain yhden arvon (arvon undefined) sisältävä tietotyyppi o Muuttujan tyyppi ja arvo on siis undefined jos sille ei ole annettu arvoa jos sitä yritetään käyttää, vaikka sitä ei ole määritelty kokeile: var mja1; alert("muuttujan mja1 tyyppi on " + typeof mja1); alert("muuttujan mja1 arvo on " + mja1); // alustamaton, joten // tyyppi undefined // arvo on myös undefined

8 o muuttuja voidaan alustaa myös tyhjäksi: null muuttuja, jonka arvon ei haluta olevan määrittelemätön, mutta sille ei myöskään haluta antaa arvoa kokeile var mja2= null; alert("muuttujan mja2 tyyppi on " + typeof mja2); alert("muuttujan mja2 arvo on " + mja2); // tyyppi object // arvo on null muuttuja voi saada arvon null vain jos siihen eksplisiittisesti sijoitetaan arvo null (siis ei koskaan automaattisesti taustalla) o Automaattiset muunnokset null arvosta eri tietotyyppeihin muuntavat sen tyhjäksi merkkijonoksi, nollaksi tai arvoksi false (riippuen tilanteesta) var mja= null; var mja2 = mja + 1; var mja3 = mja * 1; var mja4 = "Arvo on " + mja; var mja5 =!!(mja) // = 1 (0+1) // = 0 (0*1) //= Arvo on null // = false

9 if (ehtolauseke) lause [else lause] var ika;... if (ika<10) { document.write("lapsi"); //ehkä muitakin lauseita else if (ika <30) { document.write("nuori"); //ehkä muitakin lauseita else if (ika <65) { document.write("aikuinen"); //ehkä muitakin lauseita else document.write("seniori"); o break lause siirtää konrtollin pois lauseesta switch (lauseke) { case arvo1: [lause;]* break; case arvo2: [lause;]* break;... case arvon: [lause;]* break; default: statement(s) switch (luku) { case 10: alert("luku on 10"); break; case 20: alert("luku on 20"); break; default: alert("ei ollut luku 10 eikä 20, ei.");

10 o Silmukan lauseita suoritetaan niin kauan kuin ehto voimassa while (ehtolauseke) lause [;lause]* var i=10; while (i>0) { document.write(i+"\n"); i ; o Ehto tarkastetaan silmukan lauseiden jälkeen o Lauseet tulee suoritetuksi aina ainakin kerran do{ lause [;lause]* while (ehtolauseke) var i=10; do { document.write(i+"\n"); i ; while (i>0)

11 o Silmukan toiston täysi kontrollointi suoraan lauseen alussa for (aloituslause; lopetuslause; silmukkamuuttujan muutos){ lause [;lause]* for (var i=0; i<10; i++) document.write(taulu[i,j]) o break suoritus määrätään siirtymään ulos lauseesta break lauseen avulla voidaan tulla ulos mistä tahansa lauselohkosta o continue l käytetään silmukan sisällä määräämään, että suoritus siirtyy välittömästi testaamaan silmukkaehdon voimassaolemista mikäli se vielä täyttyy, silmukan lauseiden suoritusta jatketaan seuraavan kierroksen alusta.

12 okokoelmia piirteitä, jotka voivat olla ominaisuuksia (properties) - perustietotyyppejä tai edelleen olioita metodeja (methods) - funktioita o Olio voidaan luoda alustajalla (initializer) luetellaan aaltosulkeissa lista piirre:arvo pareja eräänlainen lyhennemerkintätapa var kirja1 = {aihe:"jquery", tekija:"david Sawyer McFarland"; Esim. // Luodaan ja alustetaan kirja olio, jolla kaksi ominaisuutta var kirja = {aihe:"jquery", tekija:"david Sawyer McFarland"; // kutsutaan edellä luotua oliota document.write("kirjan nimi: " + kirja.aihe + "<br>"); document.write("kirjoittaja: " + kirja.tekija + "<br>");

13 o Olio voidaan luoda new operaattoria käyttäen sen jälkeen annetaan oliolle ominaisuudet sijoituslausein olio = new Object(); var kirja = new Object(); // Luodaan olio kirja.aihe = "jquery"; // ja asetetaan oliolle ominaisuudet kirja.tekija = "David Sawyer McFarland"; // kutsutaan luotua oliota document.write("kirjan nimi: " + kirja.aihe + "<br>"); document.write("kirjoittaja: " + kirja.tekija + "<br>"); o Selkeämpää luoda konstruktorifunktiolla, tällöin kirja olio voidaan luoda konstruktoria käyttäen vain tarvittaessa samalla konstruktorilla voidaan luoda muitakin kirjaoliomuuttujia o Konstruktorissa varattu sana this käytetään funktion sisällä viittaa funktiota kutsuvaan olioon

14 <!DOCTYPE HTML> <head> <meta charset="utf 8"> <title>konstruktorilla määritelty olio</title> <script <script type="text/javascript"> type="text/javascript"> //kostruktori: funktio funktio Kirja tyyppisen Kirja tyyppisen olion olion luomiseksi luomiseksi function Kirja(mj1, mj2){ mj2){ this.aihe = mj1; this.tekija = = mj2; </script> </script> </head> <body> <h1>opetellaan JavaScriptiä 4</h1> <script type="text/javascript"> var kirja1 = new Kirja("jQuery","David Sawyer Sawyer McFarland"); McFarland"); document.write("<p class='tausta'>kirjan nimi: nimi: "+kirja1.aihe+"<br>"); document.write("kirjoittaja: "+kirja1.tekija+"<br>"); " + + "<br>"); </script> </body> </html> " " " " " " " " " " o" Olion ominaisuuteen voi viitata paitsi " pistenotaatiolla, " myös käyttäen hakasulkuja kirja1= new Kirja("Object Oriented JavaScript", "Stefanov"); kirjailija = kirja1.tekija; kirjailija = kirja1["tekija"]; // myös tämä mahdollinen tapa o Jos tekijä olisi edelleen olio, jolla ominaisuudet etunimi ja sukunimi kirja1.tekija.etunimi="stoyan"; kirja1["tekija"][ etunimi"]="stoyan"; o Hakasulkunotaation avulla voi uuden ominaisuuden luonti oliolle tapahtuisi siten seuraavasti kirja1["kustantaja"]="packt Publishing";

15 o Olion metodien määritys tapahtuu samaan tapaan kuin edellä ominaisuuksien määrittely o Metodille vain annetaankin arvoksi funktio olion metodit ovat sellaisia olion ominaisuuksia, jolle ei annetakaan arvoksi perustietotyyppiä, vaan funktio o Seuraavassa konstruktori oliolle Asiakas, oliolla kolme ominaisuutta: etunimi, sukunimi ja syntynyt neljäs oliolle osoitettu piirre: ika ika ei olekaan perustietotyyppi, vaan sille annetaan arvoksi funktion nimi (laskeika) o Metodin toteuttava funktio laskeika on määritelty erikseen

16 <!DOCTYPE html> <head> <meta charset="utf 8"> <title>metodin itse tehdylle oliolle</title> <script type="text/javascript"> function Asiakas(mj1, mj2, luku) { this.etunimi = mj1; this.sukunimi = mj2; this.syntynyt = luku; this.ika = laskeika; // liitetään myös metodi function laskeika(svuosi) { // laskee iän karkeasti ei ota </script> </head> // jatkuu var nyt = new Date(); var ika = nyt.getfullyear() this.syntynyt; return svuosi; // huomioon onko jo täyttänýt <body> <h1>opetellaan JavaScriptiä 5</h1> <script type="text/javascript"> var varasiakas_001 = = new newasiakas("kalle", "Kuluttaja", 1989); 28); document.write("asiakkaan nimi nimi on: on: " " + + asiakas_001.etunimi + " " + asiakas_001.sukunimi + " (" + asiakas_001.ika + "v)" + ", hän on siis syntynyt vuonna: " + asiakas_001.syntynyt(2013)); asiakas_001.syntynyt()); </script> </body> </html>

17 o Tiedonpaketoija oliot (data wrappers) perustietotyyppisen muuttujan voi määritellä "tiedonpaketoija olioksi jos tarpeen käsitellä muuttujaa oliona, esim. tarvitaan metodeja Object, Number, Boolean, String, Array ja Function o Apuväline oliot Math, Date ja RegExp tuovat mukanaan monia käyttökelpoisiin tietoihin ja toimintoihin o Virheoliot niiden avulla saadaan tietoa avuksi odottamattomista tilanteista selviytymiseen o Kaikkien JavaScript olioiden äiti var o1 = new Object(); var o2 = {; // o1 ja o2 samanlaisia olioita o Tyhjälläkin oliolla joukko metodeja, esim. o1.tostring() // palauttaa olion merkkijonoesitysmuodossa o1.valueof // palauttaa olion itsensä

18 o Jos luvulle esimerkiksi halutaan määritellä metodeja, se voidaan esitellä perustietotyypin number sijasta olioksi Number tofixed(), palauttaa luvun desimaalipiste esitymuotoisena merkkijonona toexponential(), palauttaa luvun eksponenttinotaation merkkijonona jos näille funktioille antaa parametrin, se määrittelee käytetyn tarkkuuden var n = new Number(15.565); var mja1 = n.tofixed(1); var mja2 = n.tofixed(); var mja3 = n.toexponential(3); // = 15.6 yksi desimaali // = 16 pyöristys kokonaisluvuksi // = "1.556e+1" o Number oliolla myös ominaisuuksia esim. MAX_VALUE suurin esitettävissä oleva luku MIN_VALUE pienin esitettävissä oleva NEGATIVE_INFINITY = Infinity POSIVITIVE_INFINITY = Infinity o Kutsutaan suoraan built in oliota käyttäen esim. var luku1 = Number.MAX_VALUE; var luku2 = Number.MIN_VALUE; var luku3 = Number.MIN_VALUE*1000; // e+308 // = 5e 324 // = 4.94e 321

19 var b = new Boolean(totuusarvo); o On tärkeätä muistaa, että konstruktori luo Boolean olion, ei perustietotyyppiä boolean: typeof b on siis object olion sisältämän boolean arvon voi kysyä valueof metodilla: typeof b.valueof() on boolean o Jos ei tyhjä olio konvertoidaan boolean arvoksi, sen arvo on aina tosi var b1 = new Boolean(true); var b2 = new Boolean(false); if (b1) lause1; else lause2; // suoritetaan lause1 if (b2) lause1; else lause2; // suoritetaan myös lause1 if (b1.valueof()) lause1; else lause2; // suoritetaan lause1 if (b2.valueof()) lause1; else lause2; // suoritetaan lause2 o Huomaa siis, että vaikka konstruktorille annetaan parametriksi false, Boolean olion arvo on true samoin käy vaikka parametrina annettaisiin mikä tahansa arvo joka konvertoituu totuusarvoksi false var b = new Boolean(totuusarvo); o On tärkeätä muistaa, että konstruktori luo Boolean olion, ei perustietotyyppiä boolean: typeof b on siis object olion sisältämän boolean arvon voi kysyä valueof metodilla: typeof b.valueof() on boolean o Jos ei tyhjä olio konvertoidaan boolean arvoksi, sen arvo on aina tosi var b1 = new Boolean(true); var b2 = new Boolean(false); if (b1) lause1; else lause2; if (b2) lause1; else lause2; if (b1.valueof()) lause1; else lause2; if (b2.valueof()) lause1; else lause2; // suoritetaan lause1 // suoritetaan lause1 (!) // suoritetaan lause1 // suoritetaan lause2

20 o Muista siis, että vaikka konstruktorille annetaan parametriksi false, Boolean olion arvo on true samoin käy vaikka parametrina annettaisiin mikä tahansa arvo joka konvertoituu totuusarvoksi false o Boolean olioilla ei paljon käyttöä, koska sillä ei ole omia metodeita, eikä ominaisuuksia (vain perityt) o Jos Boolean kostruktoria kutsuu ilman new operaattoria saa aikaan parametrin muutoksen boolean perustietotyypiksi var b1 = Boolean(true); var b2 = Boolean(false); var b3 = Boolean(10); var b4 = Boolean(0); var b5 = Boolean(null); var b6 = Boolean("false"); // b1 = true // b2 = false // b3 = true // b4 = false // b5 = false // b6 = true o Taulukko on JavaScriptissä toteutettu oliona järjestetty joukko arvoja, joihin voi viitata joko nimellä tai indeksillä voidaan luoda useammalle tavalla var taulu1 = new Array(alkio0, alkio1,..., alkion); var taulu2 = [alkio0, alkio1,..., alkion]; o Jos taulukko luodaan antamatta sille sisältöä pituuden kuitenkin määrittää taulukkoa jo luotaessa alkiot, joille ei annettuna arvoa, ovat luonnollisestikin arvoltaan ja tyypiltään undefined var taulu3 = new Array(3); // taulukko olio, sisältää kolme alkiota sisältävä var taulu4 = Array(3); // kolme alkiota sisältävä taulukko olio kuten // edellä, vaikka ei käytettykään operaattoria new var taulu5 = []; taulu5.length = 3; taulu5[0]=alkio1; taulu5[1]=alkio2; taulu5[2]=alkio3;

21 o Taulukon alkioilla ei ole kiinnitettyä tyyppiä taulukko voi sisältää eri tyyppisiä arvoja alkioiden tyypit voivat muuttua dynaamisesti o Myös taulukon koko on dynaaminen var tmp = new Array(1, "a", true); tmp.length = 10; // taulukon pituus kasvoi ja alkioiden // tmp[3].. tmp[9] arvo on undefined tmp[100] = false; // sijoitus kasvattaa taulukon 100 alkion // mittaiseksi, tmp[3].. tmp[98] arvoltaan undefined o Moniulotteiset taulukot luodaan sisäkkäisten taulukoiden avulla solu edelleen taulukko o Mitä seuraava koodinpätkä kirjoittaisi HTML dokumenttiin? var imax = 5; var i, j; // silmukkamuuttujat var matriisi = new Array(iMax + 1); // taulukon pituudeksi imax+1, // (indeksointi lähtee nollasta) for (i = 1; i <= imax; i++) { // kullekin taulukon riville matriisi[i] = new Array(iMax + 1); // Luo taulukon sarakkeet for (j = 1; j <= imax; j++) { // täytetään taulukko matriisi[i][j] = i * j; document.write(matriisi[3][4] + <br /> ); document.write(matriisi[5][2] + <br /> ); document.write(matriisi[1][4] + <br /> );

22 o Array ominaisuus length palauttaa taulukon pituuden o Array oliolle määriteltyjä metodeja, esim. indexof() etsii taulukon alkion ja palauttaa sen indeksin pop() palauttaa viimeisen alkion ja poistaa sen taulukosta push() lisää uuden alkion taulukon loppuun ja palauttaa taulukon uuden pituuden reverse() kääntää taulukon alkiot päinvastaiseen järjestykseen shift() palauttaa ensimmäisen alkion ja poistaa sen taulukosta sort() lajitteleen taulukon unshift() lisää elementin taulukon alkuun ja palauttaa taulukon uuden pituuden var hedelmat = new Array("omena", "appelsiini", "banaani", "mango"); var i = hedelmat.indexof("omena"); // i:n arvo 0 hedelmat.sort(); // hedelmät aakkosjärjestyksesä var j = hedelmat.indexof("omena"); // j:n arvo 3 var k = hedelmat.indexof( rypale ); // k:n arvo on 1 o Lisää taulukko olion metodeja: concat(), every(), filter(), foreach(), join(), lastindexof(), map(), slice(), some(), sort(), splice() o Date muuttujaan voi tallentaa päiväyksen ja ajan o Ajan voi ilmaista oliomuuttujaa luodessaan antamalla konstruktorille kokonaisluku: millisekunteja - tulkitaan samoin kuin metodin Date.now() antama kokonaisluku - millisekunteina lähtien ajankohdasta :00:00 merkkijono - esimerkiksi "April 27, :02:00 kolme kokonaislukua pilkulla toisistaan erotettuna: - esim. 2013, 04, 26 luo päiväyksen vuosi, kuukausi, päivä kuusi kokonaislukua pilkulla tosistaan eroteltuna: , 04, 26, 16, 02, 00, edellisen lisäksi määritellään myös tunnit, minuutit ja sekunnit

23 Jos parametreja ei anneta - new operaattorin avulla luotuun Date olioon alustetaan automaattisesti olion luontihetken aika var luotu = new Date(2013, 04, 27, 16, 02, 00); var nyt = new Date(); // kutsuhetken aika o Date oliolle määriteltyjä metodeja mm. getdate() palauttaa päiväyksen kuukauden päivän (1 31) getday() palauttaa päiväyksen viikonpäivän (0 6) getfullyear() palauttaa päiväyksen vuoden getminutes() palauttaa päiväyksen minuutit getmonth() palauttaa päiväyksen kuukauden (0 11) gettime palauttaa lukuarvon millisekunteina ajankohdasta parse() jäsentää merkkijonosta päiväyksen ja palauttaa lukuarvon millisekunteina tostring() muuntaa päiväyksen merkkijonoksi var nyt = new Date(); var paiva = nyt.getdate(); var kuukausi = nyt.getmonth(); var min = nyt.getminutes(); var sec = getseconds(); var nowinseconds = Date.now(); o Myös get metodeja vastaavat set metodit

24 o Math olioille on määriteltynä ominaisuuksia ja metodeita, jotka helpottavat matemaattisten operaatioiden tekemistä. esimerkiksi tallennettu piin (Π) arvo ominaisuudeksi Math.PI ja trigonometriset funktiot metodeiksi. o Math prototyypistä ei normaalisti ole tarvetta luoda oliota, vaan sen ominaisuuksia ja metodeita voi käyttää suoraan prototyypistä var pii = Math.PI; var rad = Math.sin(x); // x kokonaisluku, palauttaa arvon sin(x) radiaaneissa o Vakion π (PI) lisäksi oliolle on määriteltynä joukko muitakin matemaattisia vakioita Math prototyypin ominaisuuksina E, LN2, LN10, LOG2E, LOG10E, SQRT1_2, SQRT2 o Matemaattisia metodit ovat: abs, sin, cos, tan, acos, asin, atan, atan2, ceil, exp, floor, log, max, min, pow, random, round, sqrt o RegExp oliot ovat säännöllisiä lausekkeita, joiden avulla on mahdollista tehdä hahmontunnistusta (pattern matching) merkkijonoille käsitellä merkkijonoja (etsiä ja korvata tunnistettuja osamerkkijonoja) o Ei käsitellä tässä tarkemmin, mutta esimerkiksi mjono = "33100 ; var okpostinro = new RegExp("^\d{5$ ); // tai var okpostinro = /^\d{4$/; if (document.lomake.postinro.value.search== 1) // ei ole käypä postinumero alert( Anna oikea postinumero ); o y.o. esimerkin säännössä käytetyt merkit sovitetaan merkkijonoon seuraavasti: ^ sopii merkkijonon alkuun \d sopii mihin tahansa numeromerkkiin {n sopii juuri n lukumäärään edeltävää merkkiä $ sopii merkkijonon loppuun

25 o for...in silmukan avulla käydään läpi olion kaikki ominaisuudet o silmukkamuuttuja saa vuorollaan arvokseen kunkin olion ominaisuuden nimen for (var mja in olio) { [lause;]* o voidaan laittaa käymään läpi myös taulukon alkiot var indeksit = "", arvot = ""; var omalista = new Array("Chinese", "English", "French"); omalista.uusikentta = "jotain"; for (var indeksi in omalista) { indeksit += indeksi + " "; arvot += omalista[indeksi] + " "; // indeksit sisältää "0 1 2 uusikentta" // arvot sisältää "Chinese English French jotain" o for...in silmukan avulla käydään läpi olion kaikki ominaisuudet (esimerkki Olion ominaisuuksien läpikäynti ) <!DOCTYPE html> <html> <head> <meta charset="utf 8"> <title>for..in esimerkki</title> </head> <body> <h1>opetellaan JavaScriptiä 6</h1> <p> Käydään läpi asiakastiedot ja muodostetaan niistä merkkijono. </p> <p> Tuloksena on: <span id= msg">ei tietoja.</span> </p> <script> var tieto; var str = ""; var asiakas={etunimi:"aarne", sukunimi:"asiakas",ika:30; for (tieto in asiakas) str+=asiakas[tieto]+" "; document.getelementbyid("msg").innerhtml = str; </script> </body> </html> getelementbyid("tunnus") document olion metodi, noutaa elementin jonka id=="tunnus" innerhtml() DOM solmun ominaisuus, jäsentää merkkijonon ja korvaa solmun sisällön jäsennetyllä sisällöllä.

26 o Sekvenssi lauseita voidaan sulkea funktioksi lauseiden suoritus mistä tahansa kohdasta funktion kutsulla funktioon voidaan viedä kutsukohdasta arvoja parametrien avulla parametrit annetaan sulkeissa (sulkeet kirjoitetaan, vaikka parametreja ei olisikaan) <!DOCTYPE html> <html> <head> <meta charset="utf 8"> <title>asiakastietojen käsittely</title> <script type="text/javascript"> function Asiakas(p1, p2, p3) { this.etunimi = p1; this.sukunimi = p2; this.ika = p3; function muodostaasiakastiedot(tamaasiakas) { var tieto; var asiakastiedot = ""; for (tieto in tamaasiakas) asiakastiedot = asiakastiedot + tamaasiakas[tieto] + " "; return asiakastiedot; </script> </head> <body> <h1>opetellaan JavaScriptiä 7 </h1> <p> Käydään läpi asiakastiedot ja muodostetaan niistä merkkijono. </p> <p> Tuloksena on: <span id= msg">ei tietoja.</span> </p> <script type="text/javascript"> var asiakas1 = new Asiakas("Kalle", "Kuluttaja", 28); var str1 = muodostaasiakastiedot(asiakas1); document.getelementbyid("msg").innerhtml=str1; </script> </body> </html> o Funktiossa esitelty muuttuja on paikallinen funktiolle var a=1; var b=2; var c=3; function f1() { var a=11; b=22; function f2(){ var b=222; c=333; alert("f2 a,b,c: "+a+", "+b+", "+c); f2(); alert("f1 a,b,c: "+a+", "+b+", "+c); f1(); alert("globaali a,b,c: "+a+", "+b+", "+c); o Lohkossa esitellyt muuttujat näkyvät sisemmille hierarkiatasoille (funktioihin) o Jos muuttujaa ei ole esitelty lainkaan, siitä tulee automaattisesti globaali

27 var luku, tulos; //globaaleja muuttujia function square(n) { var b = n * n; // b, n lokaaleja muuttujia return b; // palauta n * n; luku = 6; tulos = 2*square(luku); n funktion muodollinen parametri luku funktiolle välitetty, todellinen parametri Jos return lausetta ei ole käytetty, palautettu arvo on undefined o Funktion palauttamaa arvoa voi käyttää lausekkeessa function iseven(n) { return (n%2 ==0); // palauttaa boolean arvon var arvo = 6; if (iseven(val)) { // tee jotain o Jos if lauseen ehtolausekkeen arvo on määrittelemätön, tulkki lähettää virheen (throws an error) o try catch lauseella voidaan ottaa kiinni virheisiin

28 o Funktiolle välitettyjen parametrien lukumäärä ja tyyppi voi vaihdella eri kutsukerroilla o Paikallinen muuttuja (taulukko) "arguments automaattisesti käytettävissä kaikissa funktioissa o Parametreihin pääsee käsiksi sekä muodollisten parametrien, että arguments taulukon kautta add(1, 2, 3); // palauttaisi 6 add(1, 2, 3, 4, 5); // palauttaisi 19 o Miten näin toimiva funktio toteutettaisiin? function add () { var s = 0; for (var i = 0; i < arguments.length; i++) s += arguments[i]; return s; add(1, 2, 3, 4, 5); // palauttaisi 15 add(1, 2, "3", 4, 5); // entä tämä? o Funktio voi palauttaa eri tyyppisiä arvoja eri kutsukerroilla function teejotain (p1) { if (typeof(p1) == "number") return 0; // palauttaa luvun else if (typeof(p1) == "string") return nolla"; // palauttaa merkkijonon teejotain(1); // palautuu 0 teejotain("abc"); // palautuu "nolla" teejotain(); // palautuu undefined

29 o Voidaan luoda funktio ja antaa se arvoksi muuttujalle o Se voidaan edelleen antaa arvoksi toiselle muuttujalle var tieto, vastaus; tieto = function (a,b) { return a + b; var tieto2 = tieto; vastaus = tieto2(10,2); o Koska funktio on vain tietoa, se voidaan välittää toiselle funktiolle parametrina function summaa(a,b){ return a() + b(); function yy(){ return 1; function kaa(){ return 2; answer = summaa(yy, kaa);

30 o Kun funktio fa välitetään toiselle funktiolle fb parametrina, ja fb suoritta funktion fa, kutsutaan fa:ta callback funktioksi o Tämä antaa mahdollisuuden käyttää toisten kirjoittamia funktioita, jotka toteuttavat heidän määrittelemänsä toiminnan o Tätä käytetään tapahtumankäsittelijöiden toteutuksessa

Aulikki Hyrskykari Antti Sand

Aulikki Hyrskykari Antti Sand 27.4.2015 Aulikki Hyrskykari Antti Sand o Edellinen luento Taustaa Perusteita Tulkattava kieli työkalut selaimessa Operaattorit Tietotyypit Perustietotyypit Lauseet Oliot o Tällä kertaa: JavaScript Built-in

Lisätiedot

Olion ominaisuuksiin ja metodeihin viitataan pistenotaatiolla:

Olion ominaisuuksiin ja metodeihin viitataan pistenotaatiolla: 2.5.2013 Aulikki Hyrskykari Javascript DOM jquery Oliot ovat kokoelmia piirteitä; piirteet voivat olla joko o ominaisuuksia (properties, perustietotyyppejä tai edelleen olioita) tai o metodeja (methods,

Lisätiedot

Aulikki Hyrskykari. JWT Hyrskykari, SIS, Tampereen yliopisto 4/23/2014

Aulikki Hyrskykari. JWT Hyrskykari, SIS, Tampereen yliopisto 4/23/2014 15.4.2014 Aulikki Hyrskykari JWT 2014 @Aulikki Hyrskykari, SIS, Tampereen yliopisto o Edellinen luento Asemoinnista Mukautuva suunnittelu responsiivinen suunnittelu Sommitteluruudukkojen käyttö layout

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

JavaScript alkeet Esimerkkikoodeja moniste 3 (Metropolia 11/2011)

JavaScript alkeet Esimerkkikoodeja moniste 3 (Metropolia 11/2011) JavaScript alkeet Esimerkkikoodeja moniste 3 (Metropolia 11/2011) Array (taulukko) olio Esim. 9.1. taulukko eli Array olio kirjataulukko

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

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

Digitaalisen median tekniikat JavaScript

Digitaalisen median tekniikat JavaScript Digitaalisen median tekniikat JavaScript 5.4.2004 Harri Laine 1 JavaScript ent. LiveScript (Netscape), muunnelma JScript (Microsoft) yhteensopivat yksinkertaisissa asioissa, aiemmin yhteensopimattomat

Lisätiedot

Digitaalisen median tekniikat JavaScript Harri Laine 1

Digitaalisen median tekniikat JavaScript Harri Laine 1 Digitaalisen median tekniikat JavaScript 5.4.2004 Harri Laine 1 JavaScript ent. LiveScript (Netscape), muunnelma JScript (Microsoft) yhteensopivat yksinkertaisissa asioissa, aiemmin yhteensopimattomat

Lisätiedot

05/04/2004. Digitaalisen median tekniikat, k2004 HY/TKTL, javascript_1. Harri Laine 1. JavaScript

05/04/2004. Digitaalisen median tekniikat, k2004 HY/TKTL, javascript_1. Harri Laine 1. JavaScript Digitaalisen median tekniikat ent. LiveScript (Netscape), muunnelma JScript (Microsoft) yhteensopivat yksinkertaisissa asioissa, aiemmin yhteensopimattomat hiemankin edistyneemmissä nyk. ECMAScript (standardi)

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

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

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

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

Lisätiedot

Sisältö. 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

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja

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

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

JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia)

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

Lisätiedot

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

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

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

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

Lisätiedot

JavaScript alkeet Esimerkkikoodeja moniste 2

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

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

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

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

Digitaalisen median tekniikat. Luento 4: JavaScript

Digitaalisen median tekniikat. Luento 4: JavaScript Digitaalisen median tekniikat Luento 4: JavaScript Luennot 1. Intro 2. XHTML 3. CSS 4. JavaScript Historia Syntaksi Dom Esimerkki: kuvagalleria 5. JavaScript-kirjastot & AJAX 6. Käytettävyys & saavutettavuus

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

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

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

Lisätiedot

Harjoitustyö: virtuaalikone

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

Lisätiedot

Java 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

o Edellinen luento o Tällä kertaa: JavaScript Perustietotyypit Lauseet Oliot Built in oliot

o Edellinen luento o Tällä kertaa: JavaScript Perustietotyypit Lauseet Oliot Built in oliot 29.4.2014 Aulikki Hyrskykari o Edellinen luento Perustietotyypit Lauseet Oliot Built in oliot o Tällä kertaa: JavaScript Built in oliot ja for in lause HTML ja DOM Funktiot parametrit callback funktiot

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

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

JavaScript alkeet Esimerkkikoodeja moniste 3 ( av-heltech)

JavaScript alkeet Esimerkkikoodeja moniste 3 ( av-heltech) JavaScript alkeet Esimerkkikoodeja moniste 3 (27.04.11 av-heltech) Esim. 9.1. taulukko eli Array olio kirjataulukko var kirja = new Array(6); // Create an Array object

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

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

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

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia Javascript 2: Ohjelmointikielen ominaisuudet Jaana Holvikivi Metropolia HTML - sivun rakenne ja osiot HTML HEAD STYLE SCRIPT STYLEsheet Javascript file BODY Javascript

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

1. Omat operaatiot 1.1

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

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

Lisätiedot

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

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

Lisätiedot

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

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

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä.

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. PHP-kielen perusteet Käytä lähteenä PHP:n virallista manuaalia http://www.php.net/docs.php tai http://www.hudzilla.org/php (siirry Paul Hudsonin verkkokirjaan). Lisää materiaalia suomeksi esimerkiksi ohjelmointiputkan

Lisätiedot

- Komposiittityypit - Object (Mukaanlukien funktiot) - Array. - Erikoisdatatyypit - null - undefined

- Komposiittityypit - Object (Mukaanlukien funktiot) - Array. - Erikoisdatatyypit - null - undefined Ohjelmointitekniikka Tyyppiturvallisuuden tavoittelua Javascriptissa muuttujat ovat tyypittömiä, mutta arvoilla on tyyppi. Muuttuja esitellään var -avainsanalla ja muuttujan tyypin arvoa ei erikseen määritellä.

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava

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

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

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen Chapel TIE-20306 Ryhmä 91 Joonas Eloranta Lari Valtonen Johdanto Chapel on Amerikkalaisen Cray Inc. yrityksen kehittämä avoimen lähdekoodin ohjelmointikieli. Chapel on rinnakkainen ohjelmointikieli, joka

Lisätiedot

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

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

Lisätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat

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

Luento 3. Jouni Ikonen - Jouni.Ikonen lut.fi

Luento 3. Jouni Ikonen - Jouni.Ikonen lut.fi CT30A3200 - WWW-sovellukset Luento 3 Jouni Ikonen - Jouni.Ikonen lut.fi Kalvot Arto Hämäläisen kalvojen pohjalta 1 Jouni Ikonen HTML-lomakkeet HTML-lomakkeiden avulla voidaan WWW-sovelluksessa hakea käyttäjän

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 23.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 23.2.2009 1 / 44 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta

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

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

Harjoitus 1 -- Ratkaisut

Harjoitus 1 -- Ratkaisut Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin

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

Harjoitus 1 -- Ratkaisut

Harjoitus 1 -- Ratkaisut Kun teet harjoitustyöselostuksia Mathematicalla, voit luoda selkkariin otsikon (ja mahdollisia alaotsikoita...) määräämällä soluille erilaisia tyylejä. Uuden solun tyyli määrätään painamalla ALT ja jokin

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

Olio-ohjelmointi Syntaksikokoelma

Olio-ohjelmointi Syntaksikokoelma C++-kielen uusia ominaisuuksia Olio-ohjelmointi Syntaksikokoelma 31.10.2008 Bool-tietotyyppi: Totuusarvo true (1), jos ehto on tosi ja false (0) jos ehto epätosi. Dynaaminen muistinvaraus: Yhden muuttuja

Lisätiedot

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

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

Lisätiedot

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

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

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

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

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

Tutoriaaliläsnäoloista

Tutoriaaliläsnäoloista Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

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

Taulukot, silmukat ja muut joka koodin pikku veijarit

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

Lisätiedot

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

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

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

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

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

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

Lisätiedot

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä /+^2 Kirjoita muuten sama, mutta ota välilyönti :n jälkeen / +^2 Kopioi molemmat matematiikka-alueet ja liiku alueen sisällä

Lisätiedot

Hohde Consulting 2004

Hohde Consulting 2004 Luento 5: XQuery AS-0.110 XML-kuvauskielten perusteet Janne Kalliola XQuery XQuery uudet funktiot sekvenssit muuttujat Iterointi järjestys suodatus järjestäminen Ehtorakenteet Muita toimintoja www.hohde.com

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

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

Opiskelijan pikaopas STACK-tehtäviin. Lassi Korhonen, Oulun yliopisto

Opiskelijan pikaopas STACK-tehtäviin. Lassi Korhonen, Oulun yliopisto Opiskelijan pikaopas STACK-tehtäviin Lassi Korhonen, Oulun yliopisto 21.3.2016 SISÄLLYSLUETTELO Oppaan käyttäminen... 2 Vastauksen syöttämisen perusteet... 2 Operaatiot... 2 Luvut ja vakiot... 3 Funktiot...

Lisätiedot

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

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

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

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

Lisätiedot