6. Funktiot 85. Kuinka funktioita määritellään ja kutsutaan. Kuinka funktioille viedään arvoja ja niistä palautetaan arvoja
|
|
- Laura Nurmi
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 6. Funktiot 85 OPPITUNTI 6 Funktiot Funktiot ovat hyvin laaditun skriptin perusta. Ne tekevät koodista helppolukuista ja uudelleen käytettävää. Laajoja projekteja on mahdotonta hallita ilman funktioiden käyttöä. Kaikkialla tässä luvussa tutkimme funktioita ja esittelemme joitakin tapoja välttyä toistuvalta koodin kirjoittamiselta. Tämän tunnin aiheita ovat seuraavat: Kuinka funktioita määritellään ja kutsutaan Kuinka funktioille viedään arvoja ja niistä palautetaan arvoja Kuinka funktiota kutsutaan dynaamisesti käyttäen muuttujaan tallennettua merkkijonoa Kuinka funktiolle annetaan muistia Kuinka funktiolle viedään tietoa viittausmuodossa
2 86 6. Funktiot Mikä funktio on? Voit pitää funktioita ikään kuin koneina. Kone ottaa sille syöttämäsi materiaalin ja työstää sitä tavoitteen tai tuotteen saavuttamiseksi. Funktio ottaa vastaan sille antamasi arvot, käsittelee niitä ja suorittaa sitten toiminnon (esimerkiksi tulostuksen selaimelle) tai palauttaa jonkin uuden arvon. Usein funktio suorittaa nuo molemmat vaiheet. Jos sinun on leivottava yksi kakku, teet sen ehkä itse. Mutta jos sinun on tehtävä tuhansia kakkuja, saatat rakentaa tai hankkia kakuntekokoneen. Samaten, kun mietit funktion kehittämistä, tärkeintä on saada selville, tarvitaanko funktiota useamminkin, jolloin samaa koodia ei tarvitse kirjoittaa useaan kertaan. Funktio sisältää koodilohkon, jota skriptistä voidaan kutsua. Kutsun yhteydessä funktion koodi suoritetaan. Funktiolle voidaan viedä arvoja, joita funktio sitten hyödyntää koodissaan. Kun funktio päättyy, se voi palauttaa arvon kutsuvalle koodille. Funktio on koodilohko, jota ei suoriteta välittömästi, vaan vasta sitten, kun sitä kutsutaan muualta skriptistä. Funktiot voivat olla sisäisiä funktioita tai itse kehitettyjä funktioita. Ne voivat vaatia, että niille viedään tietoa ja ne voivat palauttaa arvoja. Funktion kutsuminen Funktioita on kahta eri tyyppiä: sisäiset funktiot ja itsemääritellyt funktiot. PHP4 sisältää satoja sisäisiä funktioita. Ensimmäinen tässä kirjassa esiintynyt skriptisi sisälsi yhden funktion kutsun: print("hello Web"); print() ei ole tyypillinen funktio siinä mielessä, että se vaatisi sulkumerkit aina kutsun yhteydessä. Lauseet print(("hello Web"); ja print "Hello Web"; ovat täysin identtisiä. Tämä on poikkeustapaus funktioiden joukossa: kaikki muut funktiot vaativat sulkumerkit, ottivatpa ne argumentteja tai eivät. Tässä esimerkissä kutsutaan print()-funktiota, jolle viedään merkkijono Hello Web. Funktio hoiti sitten hommansa ja tulosti merkkijonon. Funktion kutsu koostuu funktion nimestä (nyt print) ja sulkumerkeistä. Jos funktiolle viedään kutsun yhteydessä tietoa, on tieto laitettava sulkumerkkien sisälle. Tuollaista vietävää tietoa kutsutaan argumentiksi. Jotkut funktiot ottavat useamman kuin yhden argumentin. Argumentit tulee erottaa toisistaan pilkuilla: some_function( $argu1, $argu2 );
3 6. Funktiot 87 Print() on esimerkki funktiosta, joka palauttaa arvon. Useimmat funktiot antavat jotain tietoa sinulle takaisin, kun ne ovat suorittaneet tehtävänsä, ainakin tiedon siitä, onko tehtävä onnistunut. Siksi print() palauttaa totuusarvon. Esimerkiksi abs()-funktio ottaa etumerkillisen numeerisen arvon ja palauttaa tuon numeroarvon absoluuttisen arvon. Kokeilkaamme sitä listauksen 6.1 myötä. Listaus 6.1 Sisäisen abs()-funktion kutsuminen 3: <title>listing 6.1</title> 7: $num = -321; 8: $newnum = abs( $num ); 9: print $newnum; 10: // tulostaa "321" 11:?> 12: </body> 13: </html> Tässä esimerkissä yhdistetään arvo -321 muuttujaan $num. Sitten tuo muuttuja viedään abs()-funktiolle, joka tekee välttämättömät laskennat ja palauttaa uuden arvon. Palautettu arvo sijoitetaan muuttujaan $newnum ja tulostetaan. Olisimme itse asiassa voineet käyttää tilapäismuuttujia koko ajan viemällä numeromme suoraan abs()-funktiolle ja tulostamalla tuloksen suoraan: print( abs( -321 ) ); Käyttäjän laatimien funktioiden kutsuminen noudattaa lähes samoja periaatteita. Argumentti on arvo, joka viedään funktiolle. Argumentit laitetaan sulkumerkkeihin funktion kutsun yhteydessä. Argumentit erotetaan toisistaan pilkuilla funktion määrittelyssä ja kyseisistä argumenteista tulee funktion paikallisia muuttujia.
4 88 6. Funktiot Funktion määrittely Voit määrittää funktion function-lauseella: function some_function( $argument1, $argument2 ) { // funktion runko } Funktion nimi kerrotaan avainsanan function jälkeen ja sen jälkeen tulevat sulkumerkit. Jos funktio ottaa argumentteja, on vastaavat muuttujanimet sijoitettava pilkuilla erotettuina sulkumerkkien sisälle. Kyseisten muuttujien paikalle sijoitetaan sitten vietävät arvot funktiota kutsuttaessa. Jos funktio ei ota argumentteja, ei niitä tule kutsussakaan käyttää. Listaus 6.2 määrittelee funktion. Listaus 6.2 Funktion määrittely 3: <title>listing 6.2</title> 7: function bighello() 9: print "<h1>hello!</h1>"; 10: } 11: bighello(); 12:?> 13: </body> 14: </html> Listauksen 6.2 skripti tulostaa merkkijonon HELLO HTML-otsikkoelementin (<H1>) sisälle. Esimerkissä esitellään funktio nimeltä bighello(), joka ei ota argumentteja. Siitä johtuen sulkumerkkien sisältö jää tyhjäksi. Bighello() on toimiva funktio, mutta ei kovinkaan hyödyllinen. Listaus 6.3 luo funktion, joka ottaa argumentin ja tekee jotain hyödyllistä argumentin kanssa.
5 6. Funktiot 89 Listaus 6.3 Funktio, joka ottaa argumentin 3: <title>listing 6.3</title> 7: function printbr( $txt ) 9: print ("$txt<br>\n"); 10: } 11: printbr("this is a line"); 12: printbr("this is a new line"); 13: printbr("this is yet another line"); 14:?> 15: </body> 16: </html> Näet listauksen 6.3 aikaansaaman tulostuksen kuvassa 6.1. Esimerkkimme printbr() ottaa argumentikseen merkkijonon, joten määrittelyssä sijoitamme muuttujanimen $txt sulkumerkkien sisälle. Se tieto, joka kutsun yhteydessä viedään funktiolle, sijoitetaan tuohon $txt-muuttujaan. Funktion rungossa $txt tulostetaan ja tulostukseen lisätään <BR>-elementti sekä rivinvaihtomerkki. Kun haluamme nyt kirjoittaa rivin selaimelle, voimme kutsua printbr()-funktiota sisäisen print()-funktion sijaan, jolloin meidän ei tarvitse itse vaivautua kirjoittamaan <BR>-elementtiä tulostukseen. KUVA 6.1 Funktio, joka tulostaa merkkijonon lisäten tulostukseen <BR>tagin. Arvojen palauttaminen käyttäjien laatimista funktioista
6 90 6. Funktiot Funktio voi palauttaa arvon käyttäen return-lausetta arvon tai kohteen yhteydessä. Return lopettaa funktion suorituksen ja lähettää palautettavan arvon kutsuvalle koodille. Listaus 6.4 luo funktion, joka palauttaa kahden luvun summan. Listaus 6.4 Funktio, joka palauttaa arvon 3: <title>listing 6.4</title> 7: function addnums( $firstnum, $secondnum ) 9: $result = $firstnum + $secondnum; 10: return $result;11: } 12: print addnums(3,5); 13: // tulostaa "8" 14:?> 15: </body> 16: </html> Listauksen 6.4 skripti tulostaa arvon 8. AddNums()-funktio ottaa kaksi numeerista argumenttia (nyt kutsussa viedään arvot 3 ja 5). Arvot tallennetaan muuttujiin $firstnum ja $secondnum. Arvattavasti addnums() laskee muuttujissa olevat arvot yhteen ja laittaa summan muuttujaan $result. Olisimme nytkin voineet kirjoittaa suppeampaa koodia ja jättää tilapäisen välimuuttujan $result pois koodista: function addnums( $firstnum, $secondnum ) { return ( $firstnum + $secondnum ); } Return-lause voi palauttaa arvon tai olla palauttamatta mitään. Se, millä lailla return-lauseen palauttama arvo lähetetään, voi vaihdella. Arvo voidaan antaa suoraan arvona: return 4;
7 6. Funktiot 91 Palautusarvo voi olla myös lausekkeen tulos: return ( $a/$b );.Black plate (99,1) Palautettava arvo voi olla toisen funktiokutsun palauttama arvo: return ( another_function( $an_argument ) ); Dynaamiset funktiokutsut Funktio nimi voidaan sijoittaa merkkijonona muuttujaan ja sitten muuttujanimeä voidaan pitää ikään kuin itse funktionimenä. Listaus 6.5 on tästä yksinkertainen esimerkki. Listaus 6.5 Funktion kutsuminen dynaamisesti 3: <title>listing 6.5</title> 7: function sayhello() 9: print "hello<br>"; 10: } 11: $function_holder = "sayhello"; 12: $function_holder(); 13:?> 14: </body> 15: </html> Nyt muuttujaan $function_holder sijoitetaan funktionimeä sayhello() vastaava merkkijono. Sen jälkeen tuota muuttujanimeä voidaan käyttää sulkumerkkien kanssa kutsumaan sayhello()-funktiota.
8 92 6. Funktiot Miksi siitä olisi hyötyä? Tässä esimerkissä teimme vain ylimääräistä työtä, kun sijoitimme merkkijonon sayhello() muuttujaan $function_holder. Dynaamiset funktiokutsut ovat hyödyllisiä silloin, kun ohjelman kulkua halutaan muuttaa muuttuvien olosuhteiden mukaan. Haluamme skriptimme esimerkiksi käyttäytyvän eri lailla URL:n kyselyyn asetetun parametrin arvon mukaan. Voimme ottaa tuon parametrin arvon esille ja käyttää sitä juuri oikean funktion kutsumiseen. PHP:n sisäiset funktiot hyödyntävät nekin tätä piirrettä. Esimerkiksi array_walk() käyttää merkkijonoa kutsumaan funktiota jokaisen taulukon elementin kohdalla. Näet esimerkin array_walk()-funktion käytöstä luvussa 16. Muuttujien näkyvyysalue Funktion sisällä esitelty muuttuja on funktion paikallinen muuttuja. Toisin sanoen tuohon muuttujaan ei päästä käsiksi funktion ulkopuolelta tai muista funktioista. Laajemmissa projekteissa paikallisuus voi estää muuttujan arvon muuttamisen vahingossa, kun esittelet samannimisiä muuttujia eri funktioissa. Listaus 6.6 luo muuttujan funktion sisällä ja yrittää sitten tulostaa sen funktion ulkopuolella. Listaus 6.6. Muuttujan näkyvyysalue: funktion sisällä oleva muuttuja ei ole käytettävissä funktion ulkopuolella 3: <title>listing 6.6</title> 7: function test() 9: $testvariable = "this is a test variable"; 10: } 11: print "test variable: $testvariable<br>"; 12:?> 13: </body> 14: </html>
9 6. Funktiot 93 KUVA 6.2 Yritetään viitata muuttujaan, joka on määritelty funktion sisällä. Kuva 6.2 esittää listauksen 6.6 tuloksen. Muuttujan $testvariable arvo ei tulostu, koska kyseinen muuttuja ei ole olemassa test()-funktion ulkopuolella. Huomaa, että tuollaiseen muuttujaan viittaaminen ei aiheuta virheilmoitusta. Samalla lailla funktion ulkopuolella esitelty muuttuja ei ole automaattisesti käytettävissä funktion sisällä. Muuttujien määrittely global-määreellä Funktiosta käsin ei ole mahdollista viitata alkuaan muuttujaan, joka on määritelty muualla. Jos yrität käyttää samannimistä muuttujaa, tulet vain asettaneeksi paikallisen muuttujan. Testatkaamme tätä listauksessa 6.7. Listaus 6.7 Funktioiden ulkopuolella esitellyt muuttujat eivät ole oletuksena käytettävissä funktion sisällä 3: <title>listing 6.7</title> 7: $life = 42; 8: function meaningoflife() 9: { 10: print "The meaning of life is $life<br>"; 11: } 12: meaningoflife(); 13:?> 14: </body> 15: </html>
10 94 6. Funktiot Listauksen 6.7 tulostus on kuvassa 6.3. Kuten saatoit odottaa, meaningoflife()-funktiolla ei ole pääsyä $lifemuuttujaan. Muuttuja on tyhjä, mikä näkyy tulostuksesta. Kaiken kaikkiaan tämä on hyvä asia. Olemme säästyneet mahdollisilta sotkuilta, joita samannimiset muuttujat voivat aiheuttaa; funktiohan voi aina ottaa argumentteja, jos sen on käsiteltävä ulkopuolisia muuttujia. Joskus saattaa kuitenkin olla paikallaan antaa funktion käyttää muuttujaa viemättä sitä argumenttina. Sellaisessa tapauksessa voidaan käyttää globallisämäärettä. Listaus 6.8 käyttää global-määrettä maailmankaikkeuden järjestyksen tallentamisen yhteydessä. Listaus 6.8 Globaalin muuttujan käyttäminen global-määreen avulla 3: <title>listing 6.8</title> 7: $life=42; 8: function meaningoflife() 9: { 10: global $life; 11: print "The meaning of life is $life<br>"; 12: } 13: meaningoflife(); 14:?> 15: </body> 16: </html> Kuva 6.4 näyttää listauksen 6.8 tulostuksen. Sijoittamalla avainsana global funktion ulkopuolella esitellyn $life-muuttujan eteen muuttujaan voidaan viitata funktion sisällä. Tuota global-määrettä on käytettävä kaikissa funktioissa, joissa muuttujaa halutaan käyttää. Ole kuitenkin varovainen. Jos muuttujaa muutetaan jossakin funktiossa, muutos vaikuttaa koko ohjelmassa. Tavallisesti funktioille viedään kopiot muuttujista eikä kopioiden muuttaminen vaikuta alkuperäisiin muuttujiin. Globaalin muuttujan muuttaminen vaikuttaa alkuperäiseen muuttujaan, ei siis muuttujan kopioon. Käytä siis global-määrettä säästeliäästi.
11 6. Funktiot 95 KUVA 6.3 Yritämme tulostaa globaalin muuttujan funktion sisällä Tilan tallentaminen funktiokutsujen välillä staticmääreen avulla Funktioiden sisällä olevilla muuttujilla on onnellinen mutta lyhyt elämä. Ne syntyvät, kun funktiota aletaan ajaa ja kuolevat, kun funktion ajaminen päättyy. Juuri niin tuleekin olla. Usein ohjelmoinnissa on järkevintä sijoittaa eri toiminnot erillisiin funktioihin, jotka tietävät mahdollisimman vähän toisistaan. Joskus funktion tietojen tulisi kuitenkin kestää kauemminkin. Olettakaamme, että haluaisimme funktion pitävän kirjaa siitä, kuinka monta kertaa sitä on kutsuttu. Miksi? Esimerkeissämme funktio on kehitetty luomaan numeroituja otsikoita skriptissä, joka muodostaa dynaamisesti online-dokumentaation. Me voisimme tietenkin käyttää juuri opittua global-määrettä numeroinnin toteuttamiseen ja listauksessa 6.9 kokeillaankin tuota menettelyä. Listaus 6.9 Globaalin muuttujan käyttäminen arvon muistamiseen funktiokutsujen välillä 3: <title>listing 6.9</title> 7: $num_of_calls = 0; 8: function andanotherthing( $txt ) 9: { 10: global $num_of_calls; 11: $num_of_calls++; 12: print "<h1>$num_of_calls. $txt</h1>";
12 96 6. Funktiot 13: } 14: andanotherthing("widgets"); 15: print("we build a fine range of widgets<p>"); 16: andanotherthing("doodads"); 17: print("finest in the world<p>"); 18:?> 19: </body> 20: </html> Tehtävän suoritus onnistuu noin. Esittelemme muuttujan $num_of_calls funktion andanotherthing() ulkopuolella. Tuo muuttuja on käytettävissä funktiossa global-määreen avulla. Tulostus esitetään kuvassa 6.5. Joka kerta, kun funktiota kutsutaan, $num_of_calls-muuttujaa kasvatetaan yhdellä. Otsikon tulostuksessa voidaankin sitten esittää myös numerot. KUVA 6.4 Funktiossa viitataan paikalliseen muuttujaan. Tämä ei kuitenkaan ole hienoin ratkaisu. Funktiot, jotka käyttävät global-määrettä, eivät ole itsenäisiä funktioita. Jos niitä käytetään uudelleen jossain toisessa ohjelmassa, on tuossa toisessakin ohjelmassa esiteltävä globaali $num_of_calls-muuttuja. Juuri tällaisessa tapauksessa on static-määre hyödyllinen. Jos esittelet muuttujan funktion sisällä käyttämällä static-määrettä, muuttuja säilyy paikallisena, mutta se muistaa kuitenkin arvonsa kutsusta toiseen. Kun funktiota kutsutaan uudelleen, funktion staattisessa muuttujassa on siihen edellisellä suorituskerralla tallennettu arvo. Listauksessa 6.10 on edellistä esimerkkiä muutettu käyttämään staticmäärettä. KUVA 6.5 Global-määreen avulla voidaan seurata funktion kutsujen määrää.
13 6. Funktiot 97 Listaus 6.10 Staattisen muuttujan arvo säilyy kutsujen välillä 3: <title>listing 6.10</title> 7: function andanotherthing( $txt ) 9: static $num_of_calls = 0; 10: $num_of_calls++; 11: print "<h1>$num_of_calls. $txt</h1>"; 12: } 13: andanotherthing("widgets"); 14: print("we build a fine range of widgets<p>"); 15: andanotherthing("doodads"); 16: print("finest in the world<p>"); 17:?> 18: </body> 19: </html> Nyt andanotherthing() on täysin itsenäinen funktio. Kun nyt esittelemme $num_of_calls-muuttujan, sijoitamme siihen alkuarvon. Tämä alustus ohitetaan, kun funktiota kutsutaan toisen kerran. Sen sijaan toisessa kutsussa muistetaan muuttujaan ensimmäisessä kutsussa sijoitettu arvo. Nyt funktio voidaan sijoittaa muihin skripteihin ilman, että tarvitsisi huolehtia globaaleista muuttujista. Vaikka listauksen 6.10 tulostus on aivan sama kuin listauksen 6.9 tulostus, koodi on paljon elegantimpaa. Lisää argumenteista Olet jo nähnyt, kuinka funktioille viedään argumentteja. Aiheesta on kuitenkin käsittelemättä vielä paljon. Tässä osassa tutkimme argumenttien oletusarvoja ja viittausten viemistä funktioille.
14 98 6. Funktiot Argumenttien oletusarvot PHP tarjoaa näppärän lisäpiirteen joustavien funktioiden kehittämiseen. Olemme toistaiseksi sanoneet, että funktiot ottavat yhden tai useamman argumentin. Tekemällä joistakin argumenteista valinnaisia saadaan funktioista joustavampia. Listaus 6.11 luo hyödyllisen funktion, joka osaa muotoilla merkkijonoa, joka taas on HTML:n <font>elementissä. Haluamme nyt antaa käyttäjälle funktion, jonka avulla hän voi muuttaa <font>-elementin sizemäärettä, joten funktion argumentiksi on annettava merkkijonon lisäksi myös $size. Listaus 6.11 Funktio, joka ottaa kaksi argumenttia 3: <title>listing 6.11</title> 7: function fontwrap( $txt, $size ) 9: print "<font size=\"$size\" face=\"helvetica,arial,sans-serif\">$txt</ A font>";10: } 11: fontwrap("a heading<br>",5); 12: fontwrap("some body text<br>",3); 13: fontwrap("some more body text<br>",3); 14: fontwrap("yet more body text<br>",3); 15:?> 16: </body> 17: </html> Kuva 6.6 esittää listauksen 6.11 tulostuksen. Vaikka funktiomme onkin hyödyllinen, käyttäjät halunnevat muuttaa fontin kokoa vain ajoittain. Useimmiten oletuskoko 3 riittää. Sijoittamalla tuon arvon argumenttina olevan $size-muuttujan arvoksi funktion määrittelyssä teemme argumentista valinnaisen. Jos funktion kutsussa ei anneta argumentin arvoa, käytetään tuota oletusarvoa argumenttina.
15 6. Funktiot 99 KUVA 6.6 Funktio, joka muotoilee tulostettavaa merkkijonoa. Listaus 6.12 käyttää tätä tekniikkaa tehden $size-argumentista valinnaisen. Listaus 6.12 Funktio, jossa on valinnainen argumentti 3: <title>listing 6.12</title> 7: function fontwrap( $txt, $size=3 ) 9:print"<fontsize=\"$size\"face=\"Helvetica,Arial,Sans-Serif\">$txt</font> "; 10: } 11: fontwrap("a heading<br>",5); 12: fontwrap("some body text<br>"); 13: fontwrap("some more body text<br>"); 14: fontwrap("yet more body text<br>"); 15:?> 16: </body> 17: </html> Kun fontwrap()-funktion kutsussa annetaan toinen argumentti, sitä arvoa käytetään argumentissa ja siten funktion sisällä size-attribuutissa. Kun argumentti jätetään pois kutsun yhteydessä, funktio käyttää arvona oletusarvoa 3. Voit luoda niin monta valinnaista argumenttia kuin haluat. Kun annat oletusarvon yhdelle argumentille, on oletusarvo annettava myös kaikille muille tuon argumentin jälkeen tuleville argumenteille.
16 Funktiot Muuttujaviittausten vienti funktioille Kun viet argumentteja funktioille, niiden kopiot tallennetaan parametrimuuttujiin. Noihin muuttujiin funktion sisällä tehdyt muutokset eivät näy funktion ulkopuolella; muutoksethan tapahtuvat kopioihin eivätkä alkuperäisiin muuttujiin. Listaus 6.13 havainnollistaa tätä. Listaus 6.13 Argumentin vieminen funktiolle arvona 3: <title>listing 6.13</title> 7: function addfive( $num ) 9: $num += 5; 10: } 11: $orignum = 10; 12: addfive( $orignum ); 13: print( $orignum ); 14:?> 15: </body> 16: </html> Listauksen addfive()-funktio ottaa yhden numeroarvon parametrikseen ja lisää siihen arvon 5. Se ei palauta mitään. Sijoitamme arvon muuttujaan $orignum ja viemme sitten muuttujan addfive()-funktiolle. Kopio muuttujan sisällöstä tallennetaan muuttujaan $num. Funktion sisällä lisätään $num-muuttujaan arvo 5, mutta alkuperäinen $orignum-muuttuja ei muutu lainkaan. Tulostus näyttää, että arvo on edelleen 10. Oletuksena muuttujat viedään funktioille arvoina. Toisin sanoen muuttujien arvoista tehdään paikalliset kopiot. Argumentit on mahdollista viedä funktioille viittauksina. Tällöin funktio voi muokata viittausta haluttuun muuttujaan eikä muokkauksen kohteena ole enää pelkkä muuttujan arvon kopio. Viittauksia käytettäessä voidaan funktioiden sisällä muuttaa alkuperäisiä muuttujia: viittaus on jonkun muuttujan aliasnimi, viittaus ja viittauksen kohteena oleva muuttuja jakavat saman muistipaikan. Argumentti muutetaan viittaukseksi sijoittamalla et-merkki (&) funktion määrittelyssä argumenttinimen eteen tai funktiokutsun yhteydessä muuttujanimen eteen. Listaukset 6.14 ja 6.15 esittelevät näitä menettelytapoja.
17 6. Funktiot 101 Listaus 6.14 Argumentin vieminen viittauksena funktiolle 3: <title>listing 6.14</title> 7: function addfive( $num ) 9: $num += 5; 10: } 11: $orignum = 10; 12: addfive( &$orignum ); 13: print( $orignum ); 14:?> 15: </body> 16: </html> Listaus 6.15 Viittausparametri funktion määrittelyssä 3: <title>listing 6.15</title> 7: function addfive( &$num ) 9: $num += 5; 10: } 11: $orignum = 10; 12: addfive( $orignum ); 13: print( $orignum );
18 Funktiot 14:?> 15: </body> 16: </html> Kaiken kaikkiaan on järkevämpää lisätä & funktion määrittelyyn. Sillä tavoin voidaan varmistua siitä, että funktio käyttäytyy aina johdonmukaisesti. Yhteenveto Tällä tunnilla opiskelit funktioita, niiden kehittämistä ja käyttöä. Opit funktion argumenttien merkityksen sekä global- ja static-määreiden käyttämisen. Opit myös viemään funktioille viittauksia ja luomaan valinnaisia argumentteja. K&V K Voiko funktio käsitellä globaaleja muuttujia millään muulla tavalla kun global-määreen avulla? V Globaaleja muuttujia voidaan käsitellä skriptin sisällä myös sisäisen assosiatiivisen $GLOBALS-taulukon kautta. Esimerkiksi globaaliin $test-muuttujaan voidaan funktion sisällä viitata tunnuksella $GLOBAL[test]. Saat lisätietoa assosiatiivisista taulukoista seuraavalla tunnilla. Voit muuttaa globaaleja muuttujia funktion sisällä myös viittauksia käyttämällä. K Voiko funktion kutsun laittaa merkkijonoon samalla lailla kuin muuttujan? V Ei. Funktion kutsu ei voi olla lainausmerkeissä.
19 6. Funktiot 103 Työpaja Työpaja tarjoaa pikakysymyksiä, joiden avulla voit kerrata läpikäytyä materiaalia. Yritä ymmärtää vastaukset ennen kuin jatkat seuraavaan lukuun. Vastaukset annetaan liitteessä A. Kysymyksiä 1. Onko tämä totta? Jos funktio ei ota argumenttia, voit jättää sulkumerkit pois kutsun yhteydessä. 2. Kuinka funktio palauttaa arvon? 3. Mitä seuraava koodi tulostaisi selaimelle? $number = 50; function tentimes() { $number = $number * 10; } tentimes(); print $number; 4. Mitä seuraava koodi tulostaisi selaimelle? $number = 50; function tentimes() { global $number; $number = $number * 10; } tentimes(); print $number;
20 Funktiot 5. Mitä seuraava koodi tulostaisi selaimelle? $number = 50; function tentimes( $n ) { $n = $n * 10; tentimes( $number ); print $number; 6. Mitä seuraava koodi tulostaisi selaimelle? $number = 50; function tentimes( &$n ) { $n = $n * 10; } tentimes( $number ); print $number; Toiminta 1. Luo funktio, joka ottaa argumenteikseen neljä merkkijonoa ja palauttaa merkkijonon, joka sisältää HTML-taulukkoelementin, jossa kukin muuttuja (viety merkkijono) on omassa solussaan.
OPPITUNTI 3 Ensimmäinen skripti
3. Ensimmäinen skripti 35 OPPITUNTI 3 Ensimmäinen skripti Kun olet asentanut PHP:n ja asettanut sen kokoonpanon, on aika laittaa ohjelmisto testaukseen. Tällä tunnilla luot ensimmäisen skriptisi ja tutkit
LisätiedotOPPITUNTI 5 Ohjelman kulku
5. Ohjelman kulku 67 OPPITUNTI 5 Ohjelman kulku Viime tunnilla luomamme skriptit olivat suoraviivaisia. Ohjelmalauseet suoritettiin aina samassa järjestyksessä, joten ohjelmissamme ei ollut lainkaan joustavuutta.
LisätiedotOsa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: {
Osa I 2. oppitunti C++-ohjelman osat Ennen kuin menemme yksityiskohtaisemmin sisälle C++-luokkiin, -muuttujiin jne, katsokaamme ensin, millaisista osista C++-ohjelma koostuu. Tämän tunnin aikana opit seuraavat
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ätiedotOsoitin ja viittaus C++:ssa
Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja
Lisä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ätiedot11. oppitunti III. Viittaukset. Osa. Mikä on viittaus?
Osa III 11. oppitunti Viittaukset Kahdessa viime luvussa opit käyttämään osoittimia kohteiden käsittelyyn vapaalla muistialueella sekä viittaamaan noihin kohteisiin epäsuorasti. Tässä luvussa käsiteltävät
LisätiedotIDL - 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ätiedotATK 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ätiedotTutoriaalilä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ätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
Lisätiedot8. Oliot 123. Kuinka luokkia luodaan ja olioita saadaan aikaan. Kuinka luodaan ja käsitellään ominaisuuksia ja metodeja
8. Oliot 123 OPPITUNTI 8 Oliot Oliopohjainen ohjelmointi on vaarallista. Se muuttaa koodaamista koskevia ajatuksiasi ja kun uudet käsitteet ovat saaneet jalansijaa, ne eivät katoa mitenkään. PHP on Perlin
Lisätiedot11/20: Konepelti auki
Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon
Lisätiedot7. Taulukot 105. Kuinka taulukoiden tietoa käsitellään ja lajitellaan
7. Taulukot 105 OPPITUNTI 7 Taulukot Taulukot ja niiden käsittelyyn liittyvät toiminnot laajentavat suuresti PHP4-skriptien käyttöaluetta ja joustavuutta. Kun tunnet taulukot, voit tallentaa niihin monimutkaisia
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ä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ätiedot3.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ä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ätiedotHarjoitus 2 (viikko 45)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista lisätä static-määre operaatioidesi otsikoihin, jotta ohjelmasi kääntyvät. Muista noudattaa hyvän
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ä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ä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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2009 1 / 43 Funktiot Tähän asti esitetyt ohjelmat ovat oleet hyvin lyhyitä. Todellisessa elämässä tarvitaan kuitenkin
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ätiedotOSA II Kieli. Oppitunti. 4. Rakennuslohkot 5. Ohjelman kulku 6. Funktiot 7. Taulukot 8. Oliot
43 OSA II Kieli Oppitunti 4. Rakennuslohkot 5. Ohjelman kulku 6. Funktiot 7. Taulukot 8. Oliot 4. Rakennuslohkot 45 OPPITUNTI 4 Rakennuslohkot Tällä tunnilla joudut paneutumaan itse ohjelmointikieleen.
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti
LisätiedotOhjelmoinnin 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ätiedotJava-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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")
LisätiedotSisällys. Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2
6. Metodit 6.1 Sisällys Metodien kuormittaminen. Luokkametodit ja -attribuutit. Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen Olio-ohjelmoinnissa ohjelma
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 31.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 31.1.2011 1 / 41 Luentopalaute kännykällä käynnissä! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 1.2.2010 1 / 47 Sijoituksen arvokehitys, koodi def main(): print "Ohjelma laskee sijoituksen arvon kehittymisen."
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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotOhjelmointikielet ja -paradigmat 5op. Markus Norrena
Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja
LisätiedotOsa III. Edelliset kolme lukua ovat käsitelleet viittausten ja osoittimien käyttöä. Tämän luvun aiheita ovat:
Osa III 12. oppitunti Kehittyneet viittaukset ja osoittimet Edelliset kolme lukua ovat käsitelleet viittausten ja osoittimien käyttöä. Tämän luvun aiheita ovat: Kuinka viittausten viemisellä voidaan tehostaa
LisätiedotOhjelmoinnin 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ätiedotGeoGebra-harjoituksia malu-opettajille
GeoGebra-harjoituksia malu-opettajille 1. Ohjelman kielen vaihtaminen Mikäli ohjelma ei syystä tai toisesta avaudu toivomallasi kielellä, voit vaihtaa ohjelman käyttöliittymän kielen seuraavasti: 2. Fonttikoon
Lisätiedot2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma muuttaa parametrejaan tai globaaleja muuttujia, tulostaa jotakin jne.
Proseduurit Proseduuri voi olla 1) Funktio, joka palauttaa jonkin arvon: real function sinc(x) real x sinc = sin(x)/x... y = sinc(1.5) 2) Aliohjelma, jonka toiminta perustuu sivuvaikutuksiin: aliohjelma
LisätiedotKotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne
Kotisivuohjeet Tässä ohjeessa käydään läpi kotisivujen tekemisen perusteet keskittyen html-koodiin ja sen ominaisuuksiin. Sivupohjissa ulkoasu ja rakenne on pääasiassa jaettu erilliseen css-tyylitiedostoon,
Lisätiedot3. Muuttujat ja operaatiot 3.1
3. Muuttujat ja operaatiot 3.1 Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit.
LisätiedotZeon PDF Driver Trial
Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin
LisätiedotHarjoitus 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ätiedotOhjelmoinnin 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ätiedotLuokat ja oliot. Ville Sundberg
Luokat ja oliot Ville Sundberg 12.9.2007 Maailma on täynnä olioita Myös tietokoneohjelmat koostuvat olioista Σ Ο ω Μ ς υ φ Ϊ Φ Θ ψ Љ Є Ύ χ Й Mikä on olio? Tietokoneohjelman rakennuspalikka Oliolla on kaksi
LisätiedotKirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.
Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 27.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 27.1.2010 1 / 37 If-käsky toistokäskyn sisällä def main(): HELLERAJA = 25.0 print "Anna lampotiloja, lopeta -300:lla."
LisätiedotTietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla
Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään
Lisä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ätiedotOPPITUNTI 20 Tilan tallentaminen istuntofunktioilla
20. Tilan tallentaminen istuntofunktiolla 353 OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla Edellisellä tunnilla tutkimme tilan tallentamista evästeiden ja kyselymerkkijonojen avulla. PHP4 on kuitenkin
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ätiedotJohdatus Ohjelmointiin
Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin
Lisätiedot5.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ätiedot815338A 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ätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2015 1 / 25 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
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ätiedotVerkkosivut perinteisesti. Tanja Välisalo 11.2.2009
Verkkosivut perinteisesti Tanja Välisalo 11.2.2009 WWW-sivujen vieminen omaan kotisivutilaan yliopiston mikroverkossa https://salasana.jyu.fi Klikkaa painiketta Activate WWW Klikkaa painiketta Activate
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ätiedotMaastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla
Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla Viimeksi muokattu 5. toukokuuta 2012 Maastotietokannan torrent-jakeluun sisältyy yli 5000 zip-arkistoa,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin
LisätiedotPong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana
Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä
LisätiedotTAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2
TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos TKT-3200 Tietokonetekniikka I Harjoitustyö 4: Cache, osa 2.. 2010 Ryhmä Nimi Op.num. 1 Valmistautuminen Cache-työn toisessa osassa
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ätiedotSisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.
3. Muuttujat ja operaatiot Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi.. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit. Arvojen
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2011 1 / 34 Luentopalaute kännykällä käynnissä! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast
LisätiedotTietorakenteet ja algoritmit syksy Laskuharjoitus 1
Tietorakenteet ja algoritmit syksy 2012 Laskuharjoitus 1 1. Tietojenkäsittelijä voi ajatella logaritmia usein seuraavasti: a-kantainen logaritmi log a n kertoo, kuinka monta kertaa luku n pitää jakaa a:lla,
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ätiedotOPPITUNTI 11 DBM-funktioiden käyttö
11. DBM-funktioiden käyttö 193 OPPITUNTI 11 DBM-funktioiden käyttö Jos sinulla ei ole pääsyä SQL-tietokantaan, esimerkiksi MySQL- tai Oracle-tietokantaan, sinulla on varmaankin mahdollisuus käyttää DBM-tyylistä
LisätiedotApuja ohjelmointiin» Yleisiä virheitä
Apuja ohjelmointiin» Yleisiä virheitä Ohjelmaa kirjoittaessasi saattaa Visual Studio ilmoittaa monenlaisista virheistä "punakynällä". Usein tämä johtuu vain siitä, että virheitä näytetään vaikket olisi
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ä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ä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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 28.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 28.1.2009 1 / 28 Esimerkki: murtoluvun sieventäminen Kirjoitetaan ohjelma, joka sieventää käyttäjän antaman murtoluvun.
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 8.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 8.2.2010 1 / 38 Debuggeri Tyypillinen tilanne: ohjelma on kirjoitettu, Python-tulkki ei valita virheistä, mutta ohjelma
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ä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ätiedot815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 16.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 16.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
Lisä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ä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ätiedot815338A Ohjelmointikielten periaatteet 2014-2015
815338A Ohjelmointikielten periaatteet 2014-2015 X Skriptiohjelmointi Sisältö 1. Johdanto 2. Skriptikielten yleispiirteitä 3. Python 815338A Ohjelmointikielten periaatteet, Skriptiohjelmointi 2 X.1 Johdanto
LisätiedotOPPITUNTI 21 Palvelinympäristö
21. Palvelinympäristö 365 OPPITUNTI 21 Palvelinympäristö Edellisellä tunnilla tutkimme tekniikoita, joiden avulla voidaan kommunikoida etäkoneiden kanssa ja saada tietoa käyttäjiltä. Tällä tunnilla käsittelemme
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ätiedotC-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ä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ä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ätiedotHarjoitus 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ätiedotTietueet. Tietueiden määrittely
Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään
LisätiedotOPPITUNTI 16 Tiedon käsittely
16. Tiedon käsittely 283 OPPITUNTI 16 Tiedon käsittely Tällä tunnilla käsittelemme tarkemmin tiedon testaamista ja muokkaamista. Tutkimme uudelleen tietotyyppejä. PHP käsittelee tietotyyppejä automaattisesti
LisätiedotTEEMA 2 TAULUKKODATAN KÄSITTELY JA TIEDON VISUALISOINTI LUENTO 3
TEEMA 2 TAULUKKODATAN KÄSITTELY JA TIEDON VISUALISOINTI LUENTO 3 TIEY4 Tietotekniikkataidot Kevät 2019 Juhani Linna 20.3.2019 TÄLLÄ LUENNOLLA Taustaa harjoituksiin 4 ja 5: 1. Harjoitusten 4 ja 5 esittely
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ätiedotKäyttöpaneelin käyttäminen
Tässä luvussa on tietoja käyttöpaneelista, tulostinasetusten muuttamisesta ja käyttöpaneelin valikoista. Useimmat tulostinasetukset voidaan muuttaa sovellusohjelmalla tai tulostinajurilla. Sovellusohjelmalla
Lisätiedotadd_action( wordcamp_jkl, johdatus_filttereihin );
add_action( wordcamp_jkl, johdatus_filttereihin ); WordCamp JKL 9.2.2018 Mikko Saari Painava sana oy mikko@mikkosaari.fi @msaari Mitä filterit ja actionit ovat? Filter ja action ovat melkein samoja asioita:
LisätiedotOhjelmassa 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ätiedotOPPITUNTI 10 Tiedostojen käsittely
10. Tiedostojen käsittely 173 OPPITUNTI 10 Tiedostojen käsittely Tiedostojen testaaminen, lukeminen ja kirjoittaminen ovat yleisiä toimenpiteitä käytännön ohjelmissa ja niitä vastaava tekniikka on mukana
LisätiedotOhjelmoinnin 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ätiedotOhjelmoinnin 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ätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 18.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 18.3.2009 1 / 51 Olioista (kertausta) Olioiden avulla voidaan kuvata useammasta arvosta koostuvaa kokonaisuutta
Lisätiedot15. Ohjelmoinnin tekniikkaa 15.1
15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien
Lisätiedot