OPPITUNTI 17 Merkkijonoilla työskentely

Koko: px
Aloita esitys sivulta:

Download "OPPITUNTI 17 Merkkijonoilla työskentely"

Transkriptio

1 17. Merkkijonoilla työskentely 301 OPPITUNTI 17 Merkkijonoilla työskentely World Wide Web on paljolti pelkkä tekstiympäristö. Olipa sisältö kuinka monipuolista tahansa, kaiken takana on aina HTML-koodi. Niinpä ei olekaan sattuma että PHP4 tarjoaa käyttöön useita funktioita, joilla voit muotoilla, tutkia ja muokata merkkijonoja. Tämän tunnin aiheita ovat seuraavat: Kuinka merkkijonoja muotoillaan Kuinka määritetään merkkijonon pituus Kuinka löydetään osamerkkijono merkkijonosta Kuinka merkkijono pilkotaan komponentteihin Kuinka merkkijonon alusta ja lopusta poistetaan tyhjä tila (white space) Kuinka merkkijonoja vaihdetaan Kuinka merkkijonon kirjaimet muunnetaan isoiksi tai pieniksi

2 Merkkijonoilla työskentely Merkkijonojen muotoilu Toistaiseki olemme vain tulostaneet merkkijonoja selaimelle. PHP sisältää kaksi funktiota, joilla kohde voidaan muotoilla eri tavoin: esimerkiksi desimaaliluvun desimaalien määrä voidaan päättää, kentän asettelu voidaan määrittää halutuksi tai tieto voidaan esittää toisessa lukujärjestelmämuodossa. Tässä jaksossa tutkimme, mitä muotoilumahdollisuuksia printf()- ja sprintf()-funktiot tarjoavat. Muotoileva tulostus printf()-funktiolla Jos olet käyttänyt aiemmin C-kieltä, olet jo tutustunut printf()-funktioon. PHP-versio on samanlainen, mutta ei identtinen. Funktio ottaa argumentikseen muotoilumerkkijonon ja eri tyyppisiä valinnaisia lisäargumentteja. Muotoilumerkkijono sisältää ohjeet, joiden mukaan nuo lisäargumentit esitetään. Esimerkiksi seuraava koodi käyttää printf()-funktiota kokonaisluvun tulostamiseksi kymmenjärjestelmälukuna: printf("this is my number: %d", 55 ); // tulostaa "This is my number: 55" Muotoilumerkkijonon sisällä (ensimmäinen argumentti) on nyt erikoiskoodi, jota kutsutaan muunnosmäärittelyksi. Muunnosmäärittely alkaa prosenttimerkillä (%) ja se määrittää, kuinka funktion vastaava argumentti muotoillaan. Muotoilumerkkijonoon voidaan laittaa haluttu määrä muunnosmäärittelyjä, kunhan vastaava määrä argumentteja on mukana funktiossa. Seuraava koodi tulostaa kaksi lukua printf()-funktion avulla: printf("first number: %d<br>\nsecond number: %d<br>\n", 55, 66 ); // Tulostus: // First number: 55 // Second number: 66 Ensimmäinen muunnosmäärittely vastaa ensimmäistä lisäargumenttia, joka on nyt 55. Toinen muunnosmäärittely vastaa lukua 66. Prosenttisymbolia seuraava merkki 'd' vaatii, että kohdetietoa käsitellään kymmenjärjestelmän kokonaislukuna. Tämä muunnosmäärittelijän osa on tyypin määrittäjä. Tyypin määrittäjä printf()-funktiossa Olet jo tavannut yhden tyypinmäärittäjän, merkin 'd', joka esittää tiedon kokonaislukuna. Taulukko 17.1 luettelee muut tyypin määrittäjät.

3 17. Merkkijonoilla työskentely 303 Taulukko 17.1 Tyypin määrittäjät Tyypin määrittäjä Kuvaus d Kohde esitetään kymmenjärjestelmän kokonaislukuna b Kohde esitetään binäärilukuna c Kohde esitetään ASCII-merkkinä f Kohde esitetään desimaalilukuna (double) o Kohde esitetään oktaalilukuna (kantaluku on 8) s Kohde esitetään merkkijonona x Kohde esitetään heksadesimaalimuodossa pienin kirjaimin (kantaluku on 16) X Kohde esitetään heksadesimaalimuodossa isoin kirjaimin (kantaluku on 16) Listaus 17.1 käyttää printf()-funktiota esittämään yksittäisen luvun käyttämällä muutamia taulukossa olevia tyypin määrittäjiä. Huomaa, että emme vain lisänneet muunnosmäärittelyjä muotoilumerkkijonoon. Myös kaikki mukana oleva lisäteksti tulostetaan. Listaus 17.1 Muutaman tyypin määrittäjän esitteleminen 1: <html> 2: <head> 3: <title>demonstrating some type specifiers</title> 4: </head> 5: <body> 6: <?php 7: $number = 543; 8: printf("decimal: %d<br>", $number ); 9: printf("binary: %b<br>", $number ); 10: printf("double: %f<br>", $number ); 11: printf("octal: %o<br>", $number ); 12: printf("string: %s<br>", $number ); 13: printf("hex (lower): %x<br>", $number ); 14: printf("hex (upper): %X<br>", $number ); 15:?> 16: </body> 17: </html> Kuva 17.1 näyttää koodin tulostuksen. Kuten näet, printf() on näppärä keino muuntaa tieto toisesta järjestelmästä toiseen.

4 Merkkijonoilla työskentely KUVA 17.1 Muunnosmäärittäjien esittely. Kun määrittelet värin HTML-koodilla, yhdistät kolme heksadesimaalinumeroa, jotka ovat väliltä 00 - FF. Nuo kolme lukua esittävät punaisen, vihreän ja sinisen värin osuuksia. Voit käyttää printf()-funktiota muuntamaan värejä vastaavat kymmenjärjestelmäluvut, jotka ovat väliltä 0-255, vastaaviksi heksadesimaaliluvuiksi. Seuraavassa on esimerkkikoodi: $red = 204; $green = 204; $blue = 204; printf( "#%X%X%X", $red, $green, $blue ); // tulostaa "#CCCCCC" Vaikka voitkin käyttää näitä tyypin määrittäjiä muuntamaan kymmenjärjestelmän lukuja heksadesimaalimuotoon, et voi käyttää niitä määrittämään, kuinka monta merkkiä käytetään kunkin argumentin tulostuksessa. HTML-värikoodissa kukin väri esitetään kahdella numerolla, joten koodimme aiheuttaisi ongelmia, jos kohteena oleva luku voidaan esittää yhdellä heksadesimaalinumerolla. Jos muuttujissa $red, $green ja $blue on arvo 1, olisi vastaava heksadesimaaliluku "#111". Voimme pakottaa etunollien esittämisen tilan määrittäjällä. Tulostustilan määrittäminen tilan määrittäjällä Voit määrittää tulostuksen sellaiseksi, että eteen tulee haluttuja etumerkkejä. Tilan määrittäjä tulee sijoittaa heti prosenttimerkin jälkeen. Jos tulostukseen halutaan etunollat, tulee tilan määrittäjään sijoittaa nolla, jota seuraa tulostuksessa käytettävän tilan koko. Jos tulostuksessa käytetään tilaa vähemmän kuin kyseinen tilan koko, täytetään etuosa nollilla: printf( "%04d", 36 ); // tulostaa "0036" Jos eteen halutaan välilyöntejä, tarvitsee tilan määrittäjään vain lisätä nollan sijaan välilyönti, jota sitten seuraa tulostuksessa käytettävän tilan koko:

5 17. Merkkijonoilla työskentely 305 printf( "% 4d", 36 ) // tulostaa " 36" Selain ei esitä toistuvia välilyöntejä HTML-asiakirjassa. Voit pakottaa välilyönnit ja rivinvaihdot esitettäviksi laittamalla tekstisi <PRE>-tagien sisälle. <pre> <?php print "The spaces will be visible";?> </pre> Jos haluat muotoilla koko asiakirjan tekstiksi, voit käyttää header()-funktiota muuttamaan Content-Type-otsikko: header("content-type: Text/Plain"); Muista, että skriptisi ei saa lähettää mitään tulostusta selaimelle, jotta tämä header()-temppu onnistuisi. Etunollan sijaan voit määrittää minkä tahansa merkin; tällöin merkki laitetaan heittomerkkien sisälle: printf ( "%'x4d", 36 ); // tulostaa "xx36" Nyt meillä on työkaluja HTML-koodiesimerkkimme täydentämiseksi. Toistaiseksi olemme voineet muuntaa kolme numeroa heksadesimaaleiksi, mutta emme ole voineet ottaa mukaan etunollia: $red = 1; $green = 1; $blue = 1; printf( "#%02X%02X%02X", $red, $green, $blue ); // tulostaa "#010101"

6 Merkkijonoilla työskentely Kukin muuttuja tulostetaan heksadesimaalimuodossa. Jos tulostus vie tilaa vähemmän kuin kaksi merkkiä, lisätään etunollat. Kentän leveyden määrittäminen Voit määrittää merkkien määrän, johon tulostuksen tulee sovittautua. Kentänleveysmäärittäjä on kokonaisluku, joka tulee sijoittaa muunnosmäärittäjässä prosenttimerkin jälkeen (olettaen, että mitään etumerkin määrittäjää ei ole määritetty). Seuraava koodi tulostaa neljä kohdetta, joista jokainen käyttää 20 merkkiä tilaa. Jotta tila näkyisi myös selaimessa, on koodiin lisätty PRE-elementti: print "<pre>"; printf("%20s\n", "Books"); printf("%20s\n", "CDs"); printf("%20s\n", "Games"); printf("%20s\n", "Magazines"); print "</pre>"; Kuva 17.2 esittää koodin tulostuksen. KUVA 17.2 Asettelu kentänleveysmäärittäjiä käyttäen. Oletuksena tulostus käyttää oikean reunan tasausta määritetyn kentän sisällä. Voit ottaa käyttöön vasemman reunan tasauksen lisäämällä väliviivan (-) kentänleveysmäärittäjään: printf("%-20s\n", "Left aligned"); Huomaa, että asettelu kohdistuu vain tulostuskohteen desimaaliosaan. Toisin sanoen vain desimaalipisteen vasemmalla puolella oleva osa sijoittuu tulostuskenttään, kun oikean reunan tasaus on päällä.

7 17. Merkkijonoilla työskentely 307 Tarkkuuden määrittely Jos haluat tulostaa tietoa liukulukumuodossa, voit määrittää pyöristystarkkuuden. Se on erityisen hyödyllistä valuutta-arvoilla työskenneltäessä. Tarkkuuden määrittäjä tulee sijoittaa juuri ennen tyypinmäärittäjää. Se koostuu pisteestä, jota seuraa pyöristyksessä käytettävä desimaalien määrä. Tämä määrittäjä käsittelee vain tietoa, joka tulostetaan 'f'-tyypinmäärittäjää käyttäen: printf( "%.2f", ); // tulostaa "5.33" C-kielessä on mahdollista käyttää tarkkuuden määrittäjää printf()- funktiossa desimaalitulostuksen etumerkkien määrä määrittämiseksi. Tarkkuuden määrittäjällä ei ole PHP4:ssä vaikutusta desimaalitulostukseen. Käytä etumerkkien määrittäjää etunollien lisäämiseksi kokonaislukuihin. Muunnosmäärittäjät: yhteenveto Taulukko 17.2 luettelee määrittäjät, jotka muodostavat muunnosmäärittelyn, siinä järjestyksessä, jossa ne on sijoitettava. Huomaa, että on vaikeaa käyttää sekä siirtymän määrittäjää että kentänleveysmäärittäjää. Sinun tuleekin valita, kumpaa käytät eri tilanteissa. Taulukko 17.2 Muunnosmäärittäjän osat Nimi Kuvaus Esimerkki Siirtymän määrittäjä Määrittää niiden merkkien ' 4' määrän, jotka tulostuksen tulee käyttää, sekä merkin, jota sijoitetaan eteen, jos tila ei muutoin tule täyteen Kentänleveyden Määrittää tilan, jota tulostuksessa '20' määrittäjä käytetään Tarkkuuden määrittäjä Määrittää desimaalien määrän, '.4' johon double pyöristetään Tyypin määrittäjä Määrittää tietotyypin, joka tulostetaan 'd' Listaus 17.2 käyttää printf()-funktiota tulostamaan luettelo tuotteista ja hinnoista. Listaus 17.2 Tuotteiden hintaluettelo muotoillaan printf()-funktiolla 1: <html> 2: <head> 3: <title>using printf() to format a list of product prices</title> 4: </head>

8 Merkkijonoilla työskentely 5: <body> 6: <?php 7: $products = Array( "Green armchair"=>"222.4", 8: "Candlestick"=>"4", 9: "Coffee table"=> : ); 11: print "<pre>"; 12: printf("%-20s%23s\n", "Name", "Price"); 13: printf("%'-43s\n", ""); 14: foreach ( $products as $key=>$val ) 15: printf( "%-20s%20.2f\n", $key, $val ); 16: printf("</pre>"); 17:?> 18: </body> 19: </html> Ensiksi määrittelemme assosiatiivisen taulukon, joka sisältää tuotteiden nimiä ja hintoja. Tulostamme PREelementin, jotta selain tunnistaisi välilyönnit ja rivinvaihdot. Ensimmäinen printf()-kutsu määrittää seuraavan muotoilun ohjausmerkkijonon: "%-20s%23s\n" Ensimmäinen muunnosmääritys ("%-20s") asettaa kentänleveysmäärittäjäksi 20 merkkiä ja käyttää vasenta tasausta. Tyypin määrittäjä on 's', joka vastaa merkkijonoa. Toinen muunnosmääritys ("%23s") asettaa myös kentänleveyden ja käyttää oikean reunan tasausta. Tämä printf()-kutsu tulostaa kenttien otsikot. Toinen printf()-kutsu piirtää väliviivan, joka koostuu tavuviivasta ja sisältää 43 merkkiä. Saamme sen aikaan käyttämällä siirtymämäärittäjää, joka lisää siirtymän tyhjään merkkijonoon. Viimeinen printf()-kutsu on osa foreach-lausetta, joka käy silmukassa läpi tuotetaulukkomme. Siinä käytämme kahta muunnosmääritystä. Ensimmäinen ("%-20s") tulostaa tuotteen nimen käyttäen vasenta tasausta ja 20 merkin tulostusleveyttä. Toinen muunnosmääritys ("%20.2f") käyttää 20 merkin kentänleveyttä, oikean reunan tasausta ja kahden desimaalin pyöristystarkkuutta. Kuva 17.3 esittää listauksen 17.2 tulostuksen.

9 17. Merkkijonoilla työskentely 309 KUVA 17.3 Tuotteet ja hinnat muotoiltuina printf()-funktiolla. Muotoillun merkkijonon tallentaminen Yleensä printf() vain tulostaa tiedot selaimelle, emmekä pääse tutkimaan tuloksia skripteissä. Voimme kuitenkin käyttää funktiota sprintf(), joka toimii aivan samalla tavalla kuin printf(), paitsi että se palauttaa merkkijonon, jonka voit tallentaa muuttujaan myöhempää käyttöä varten. Seuraava koodi käyttää sprintf()-funktiota doublen pyöristämiseksi kahteen desimaaliin ja tuloksen sijoittamiseksi muuttujaan $dosh: $dosh = sprintf("%.2f", ); print "You have $dosh dollars to spend"; Varsinainen käyttötapa sprintf()-funktiolle on muotoillun tiedon kirjoittaminen tiedostoon. Voit kutsua sprintf()-funktiota ja sijoittaa sen palautusarvon muuttujaan, joka voidaan sitten tulostaa tiedostoon fputs()-funktiolla. Merkkijonojen tutkiminen Et aina tiedä kaikkea tiedosta, jota käsittelet. Merkkijonot voivat tulla monesta eri lähteestä: käyttäjän syöttötietoina, tietokannoista, tiedostoista ja Web-sivuilta. Ennen kuin alat työstää tietoa, joka tulee ulkoisesta lähteestä, on hyvä tietää kyseisestä tiedosta enemmän. PHP4 tarjoaa käyttöön monia funktioita, joilla voidaan ottaa selville tietoa merkkijonoista. Huomautus merkkijonojen indeksoinnista Käytämme toistuvasti sanaa indeksi merkkijonojen yhteydessä. Yleensä indeksi liittyy taulukoihin. Itse asiassa merkkijonot ja taulukot muistuttavat toisiaan: voit pitää merkkijonoja merkkitaulukkoina. Voit siis päästä käsiksi merkkijonon yksittäiseen merkkiin indeksiä käyttäen: $test = "scallywag"; print $test[0]; // tulostaa "s" print $test[2]; // tulostaa "a"

10 Merkkijonoilla työskentely Siksi on tärkeää muistaa, että samalla lailla kuin taulukoiden kohdalla, myös merkkijonojen kohdalla ensimmäinen indeksi on nolla. Merkkijonon pituuden selvittäminen strlen()-funktiolla Voit käyttää strlen()-funktiota määrittämään merkkijonon pituuden. Se ottaa argumenteikseen merkkijonon ja palauttaa kokonaisluvun, joka edustaa muuttujassa olevien merkkien määrää. Merkkijonon pituus tarkistetaan usein, kun käyttäjä syöttää tietoa, jota skriptin tulee käsitellä. Seuraava koodi testaa, onko membership-muuttujassa (joka sisältää jäsenkoodin) oleva merkkijono pituudeltaan 4 merkkiä: if ( strlen( $membership ) == 4 ) print "Thank you!"; else print "Your membership number must have 4 digits<p>"; Käyttäjää kiitetään hänen antamistaan tiedoista vain, jos globaali $membership-muuttuja sisältää nelä merkkiä, muutoin generoidaan virheilmoitus. Osamerkkijonon etsiminen strstr()-funktiolla Voit käyttää strstr()-funktiota tutkimaan, onko merkkijonossa sisällä toinen merkkijono. Funktio ottaa kaksi argumenttia: lähdemerkkijonon ja osamerkkijonon, joka halutaan löytää. Funktio palauttaa arvon false, jos osamerkkijonoa ei löydy. Muutoin funktio palauttaa sen osan lähdemerkkijonosta, joka alkaa osamerkkijonolla. Kuvittele, että haluamme käsitellä seuraavassa esimerkissä "AB"-alkuisia jäsenkoodeja eri tavalla kuin muita jäsenkoodeja: $membership = "pab7"; sif ( strstr( $membership, "AB" ) ) print "Thank you. Don't forget that your membership expires soon!"; else print "Thank you!"; Koska testimuuttujamme $membership sisältää merkkijonon "AB", strstr() palauttaa merkkijonon "AB7". Se vastaa totuusarvoa tosi, joten tulostamme erikoisviestin. Mitä tapahtuu, jos käyttäjä syöttää tekstin "pab7"? PHP tunnistaa isot ja pienet kirjaimet ja niin tekee myös strstr()-funktio, joten merkkijonoa "AB" ei löydy merkkijonosta. If-lauseen testi epäonnistuu ja oletusviesti tulostetaan selaimelle. Jos haluamme hakea joko "AB"-merkkijonoa tai "ab"-merkkijonoa, on meidän käytettävä stristr()-funktiota, joka toimii täsmälleen samalla tavalla kuin strstr(), paitsi että se ei erottele isoja ja pieniä kirjaimia.

11 17. Merkkijonoilla työskentely 311 Osamerkkijonon paikan löytäminen strpos()-funktiolla Funktio strpos() kertoo sekä sen, onko merkkijono sisällä isommassa merkkijonossa, että osamerkkijonon sijainnin. Funktio ottaa kaksi argumenttia: lähdemerkkijonon ja haettavan osamerkkijonon. Funktio voi ottaa vielä kolmannen valinnaisen argumentin, joka on kokonaisluku, joka edustaa hakemisen aloituskohtaa. Jos osamerkkijonoa ei ole olemassa, strpos() palauttaa arvon false. Muutoin se palauttaa kokonaisluvun, joka kertoo, mistä osamerkkijono alkaa. Seuraava koodi käyttää strpos()-funktiota takaamaan, että merkkijono alkaa merkkijonolla "mz": $membership = "mz00xyz"; if ( strpos($membership, "mz") === 0 ) print "hello mz"; Huomaa, että käytimme edellä pientä jekkua odotetun tuloksen saamiseksi. Funktio strpos() hakee merkkijonoa "mz" merkkijonostamme, mutta löytää sen heti merkkijonon alusta. Tällöin funktio siis palauttaa arvon nolla, joka on vertailussa sama kuin epätosi. Ratkaisemme ongelman käyttämällä PHP4:n uutta yhtäsuuruusoperaattoria, jossa on kolme yhtäsuuruusmerkkiä (===); tuo operaattori palauttaa arvon tosi, jos vasemmalla ja oikealla puolella olevat operandit ovat yhtäsuuria ja samaa tyyppiä. Merkkijonon osan sieppaaminen substr()-funktiolla Funktio substr() palauttaa merkkijonosta osan, joka määritetään alkuindeksin ja osan pituuden avulla. Funktio ottaa kaksi argumenttia, lähdemerkkijonon ja aloitusindeksin. Se palauttaa kaikki merkit alkaen alkuindeksistä merkkijonon loppuun. Funktio hyväksyy kolmannen, valinnaisen argumentin, joka on kokonaisluku ja edustaa palautettavan merkkijonon pituutta. Jos tuota argumenttia käytetään, substr() palauttaa vain halutun osan lähdemerkkijonosta aloitusindeksistä eteenpäin: $test = "scallywag"; print substr($test,6); // tulostaa "wag" print substr($test,6,2) // tulostaa "wa" Jos funktiolle viedään negatiivinen arvo toisena argumenttina (aloitusindeksi), se aloittaa laskennan lopusta. Seuraava koodi kirjoittaa tietyn viestin ihmisille, joiden lähettämät -osoitteet päättyvät merkkijonoon ".uk". $test = "matt@corrosive.co.uk"; if ( $test = substr( $test, -3 ) == ".uk" ) print "Don't forget our special offers for British customers"; else print "Welcome to our shop!";

12 Merkkijonoilla työskentely Merkkijonon jäsentely strtok()-funktiolla Voit jäsennellä merkkijonon sana sanalta käyttämällä strtok()-funktiota. Se ottaa alustavasti kaksi argumenttia, lähdemerkkijonon ja erottimet, joita pilkkomisessa käytetään. Erotinmerkkijono voi sisältää halutun määrän merkkejä. Funktio palauttaa ensimmäisen sanan. Kun funktiota kutsutaan ensimmäistä kertaa, lähdemerkkijono laitetaan välimuistiin. Peräkkäisissä kutsuissa sinun tulee viedä strtok()-funktiolle pelkästään erotinmerkkijono. Funktio palauttaa seuraavan sanan jokaisen kutsun yhteydessä. Funktio palauttaa arvon epätosi, kun merkkijonon loppu on saavutettu. Funktiota kutsutaan yleensä toistuvasti silmukan sisällä. Listaus 17.3 käyttää strtok()-funktiota jäsentelemään URL-osoite; funktio erottelee isäntäosan ja polun kyselymerkkijonosta ja jakaa sitten kyselymerkkijonon nimi/arvo-pareihin. Kuva 17.3 esittää listauksen 17.3 tulostuksen. Listaus 17.3 Merkkijonon jakaminen osiin strtok()-funktiolla 1: <html> 2: <head> 3: <title>listing 17.3 Dividing a string into 4: tokens with strtok()</title> 5: </head> 6: <body> 7: <?php 8: $test = " 9: OP=dnquery.xp&ST=MS&DBS=2&QRY=developer+php"; 10: $delims = "?&"; 11: $word = strtok( $test, $delims ); 12: while ( is_string( $word ) ) 13: { 14: if ( $word ) 15: print "$word<br>"; 16: $word = strtok( $delims); 17: } 18:?> 19: </body> 20: </html> Käyttämämme strtok()-funktio on hieman raaka työkalu ja vaatii muutamia temppuja toimiakseen jouhevammin. Ensiksi tallennamme erottimet muuttujaan $delims. Kutsumme sitten strtok()-funktiota käyttäen argumentteina URL-merkkijonoa ja $delims-erotinta. Tulos tallennetaan muuttujaan $word. While-

13 17. Merkkijonoilla työskentely 313 silmukan ehtolauseessa testaamme sitten, onko $word merkkijono. Jos se ei ole merkkijono, tiedämme, että merkkijonon loppu on saavutettu eikä muita toimintoja enää vaadita. Testaamme palautustyypin, koska merkkijono, joka sisältää kaksi erotinta rivillä, saisi strtok()-funktion palauttamaan tyhjän merkkijonon, kun se saavuttaa ensimmäisen näistä erottimista. Niinpä seuraavanlainen perinteinen testi while ( $word ) { $word = strtok( $delims ); } ei toimisi, koska $word sisältää tyhjän merkkijonon, vaikka lähdemerkkijonon loppua ei vielä olekaan saavutettu. Kun olemme varmistaneet, että $word sisältää merkkijonon, voimme siirtyä eteenpäin työskentelemään sillä. Jos $word ei sisällä tyhjää merkkijonoa, tulostamme sen selaimelle. Sitten meidän tulee kutsua strtok()- funktiota uudelleen täyttämään $word seuraavaa testiä varten. Huomaa, että emme vie lähdemerkkijonoa strtok()-funktiolle toista kertaa. Jos teemme niin, palautuu ensimmäinen sana uudelleen tutkittavaksi ja joudumme ikuiseen silmukkaan. Merkkijonojen muokkaaminen PHP4 tarjoaa käyttöön useita funktioita, joilla merkkijonoargumenttia voidaan manipuloida eri tavoin. Merkkijonon puhdistaminen trim()- ja ltrim()-funktioilla Kun teksti on saatu käyttäjältä tai tiedostosta, on hyvä varmistaa, että merkkijonoissa ei ole ylimääräisiä välilyöntejä tai muita 'white space' -merkkejä. Yleensä ylimääräisiä välilyöntejä tulee merkkijonon alkuun tai loppuun. Funktio trim() poistaa kaikki ylimääräiset 'white space' -merkit (rivinvaihto, sarkainpainallukset, välilyönnit) sekä merkkijonon alusta että lopusta. Se ottaa argumentikseen muokattavan merkkijonon ja palauttaa puhdistetun version. $text = "\t\t\tlots of room to breath "; $text = trim( $text ); print $text; // tulostaa "lots of room to breath"; Joskus haluat ehkä säilyttää merkkijonon alun tyhjät merkit. Siinä tapauksessa voit käyttää PHP:n chop()- funktiota, joka toimii aivan samoin kuin trim(), mutta poistaa vain merkkijonon lopussa olevat 'white space' -merkit: $text = "\t\t\tlots of room to breath ";

14 Merkkijonoilla työskentely $text = chop( $text ); print $test; // tulostaa " lots of room to breath"; PHP tarjoaa vielä käyttöön ltrim()-funktion, joka poistaa 'white space' -merkit vain merkkijonon alusta. Sekin palauttaa puhdistetun merkkijonon: $text = "\t\t\tlots of room to breath "; $text = ltrim( $text ); print $test; // tulostaa "lots of room to breath "; Merkkijonon osan muuttaminen substr_replace()-funktiolla Tämä substr_replace()-funktio toimii samalla lailla kuin substr(), paitsi että se sallii sinun korvata haluttu osamerkkijono toisella osamerkkijonolla. Funktio ottaa kolme argumenttia: muokattavan merkkijonon, lisättävän tekstin ja aloitusindeksin. Se hyväksyy myös valinnaisen argumentin, pituuden. Funktio etsii merkkijonosta osan, joka määritetään alkuindeksin ja pituuden avulla ja korvaa tuon osan argumenttina annetulla merkkijonolla. Funktio palauttaa muokatun merkkijonon. Seuraava koodi muokkaa jäsenkoodia: <? $membership = "mz99xyz"; $membership = substr_replace( $membership, "00", 2, 2 ); print "New membership number: $membership<p>"; // tulostaa "New membership number: mz00xyz"?> Osamerkkijonon korvaaminen str_replace()-funktiolla str_replace()-funktio muuttaa kaikki merkkijonoesiintymät toisesta merkkijonosta. Se ottaa kolme argumenttia: haettavan osamerkkijonon, korvaavan osamerkkijonon ja kohdemerkkijonon. Funktio palauttaa muutetun merkkijonon. Seuraava esimerkki käyttää str_replace()-funktiota muuttamaan kaikki merkkijonon "1999" esiintymät muotoon "2000": $string = "Site contents copyright "; $string.= "The 1999 Guide to All Things Good in Europe"; print str_replace("1999","2000",$string);

15 17. Merkkijonoilla työskentely 315 Isot ja pienet kirjaimet PHP sisältää useita funktioita, joilla voidaan muuntaa kirjaimet isoiksi tai pieniksi. Kun kirjoitat käyttäjän lähettämää tietoa tiedostoon tai tietokantaan, saatat haluta muuntaa sen kokonaan isoiksi kirjaimiksi tai kokonaan pieniksi kirjaimiksi ennen muita toimenpiteitä. Merkkijonon kirjaimet muunnetaan isoiksi funktiolla strtoupper(). Se ottaa argumentikseen muunnettavan merkkijonon ja palauttaa muunnetun merkkijonon: $membership = "mz00xyz"; $membership = strtoupper( $membership ); print "$membership<p>"; // tulostaa "MZ00XYZ" Merkkijonon merkit muunnetaan pieniksi kirjaimiksi funktiolla strtolower(). Sekin ottaa argumentikseen muunnettavan merkkijonon ja palauttaa muunnetun version: $home_url = " $home_url = strtolower( $home_url ); if (! ( strpos ( $home_url, " ) === 0 ) ) $home_url = " print $home_url; // tulostaa " PHP tarjoaa käyttöön myös etukirjainta koskevan funktion: ucwords() muuntaa merkkijonon ensimmäisen kirjaimen isoksi. Seuraavassa koodissa muunnetaan käyttäjän lähettämän nimitiedon ensimmäinen kirjain isoksi: $full_name = "violet elizabeth bott"; $full_name = ucwords( $full_name ); print $full_name; // tulostaa "Violet Elizabeth Bott" Vaikka tämä funktio muuntaakin ensimmäisen kirjaimen isoksi, se ei koske muita kirjaimia. Jos olet epävarma muista kirjaimista (tulos on esimerkiksi VIolEt elizabeth bott), voit aina tehdä muunnoksen koko merkkijonolle. Onneksi PHP4 tarjoaa vielä käyttöön funktion ucwords(), joka osaa muuntaa merkkijonon jokaisen erillisen sanan ensimmäisen kirjaimen isoksi: $full_name = "VIolEt elizabeth bott"; $full_name = ucwords( strtolower($full_name) ); print $full_name; // tulostaa "Violet Elizabeth Bott"

16 Merkkijonoilla työskentely Merkkijonon pilkkominen taulukoiksi explode()-funktiolla Ihastuttavasti nimetty explode() toimii samalla lailla kuin strtok(). Se jakaa kuitenkin merkkijonon taulukoksi, jota voidaan sitten vaikkapa lajitella ja tutkia. Funktio ottaa kaksi argumenttia: erotinmerkkijonon, jonka avulla sanojen erottelu tapahtuu, ja itse lähdemerkkijonon. Erotinmerkkijonossa voi olla enemmän kuin yksi kirjain; merkit muodostavat yhden erotinmerkkijonon (strtok() sen sijaan käytti erotinmerkkijonon yksittäisiä merkkejä erillisinä erottimina). Seuraava koodi pilkkoo päivämäärän ja tallentaa tuloksen taulukkoon: $start_date = " "; $date_array = explode("-", $start_date); // $date[0] == "2000" // $date[1] == "01" // $date[2] == "12" Yhteenveto Merkkijonot ovat PHP:n peruskeino kommunikoida ulkoisen maailman kanssa ja tallentaa tietoa myöhempää käyttöä varten. Tällä tunnilla olet tutustunut muutamiin funktioihin, joilla voidaan käsitellä merkkijonoja skripteissä. Opit muotoilemaan merkkijonoja printf()- ja sprintf()-funktioilla. Sinun tulisi voida käyttää näitä funktioita sekä merkkijonojen luomiseen että tiedon muuntamiseen ja asettelemiseen. Opit myös tutkimaan merkkijonoja erikoisfunktioiden avulla ja muun muassa ottamaan selville merkkijonon pituuden strlen()- funktiolla, määrittämään osamerkkijonon esiintymisen strpos()-funktiolla ja ottamaan esille osamerkkijonon substr()-funktiolla. Luvun lopussa käsiteltiin merkkijonon perkaamista trim()-, ltrim()- ja chop()- funktioilla. Merkkijonon merkit opittiin muuntamaan isoiksi strtoupper()-funktiolla, pieniksi strtolower()- funktiolla; sanojen ensimmäiset merkit muunnettiin isoiksi ucwords()-funktiolla. Merkkijonon kaikki tietyn osamerkkijonon esiintymät voitiin muuttaa toisiksi str_replace()-funktiolla. Usko tai älä, mutta emme vielä ole lopettaneet merkkijonon käsittelyä kokonaan. PHP tarjoaa käyttöön säännöllisiä lausekkeita, joiden avulla merkkijonojen käsittely on funktioita tehokkaampaa. Säännöllisiä lausekkeita tutkimme seuraavassa luvussa. K&V K Onko olemassa vielä muita hyödyllisiä merkkijonofunktioita? V Kyllä. PHP4 sisältää noin 60 merkkijonofunktiota! Voit lukea niistä kaikista PHP4:n online-manuaaleista osoitteesta K Esimerkissä, jossa esiteltiin printf()-funktion käyttöä, näytimme, kuinka rivinvaihtoja voitiin tehdä <PRE>tagin avulla. Onko tämä paras keino esittää muotoiltua tekstiä selaimella? V

17 17. Merkkijonoilla työskentely 317 Kyllä <PRE>-tagit ovat hyödyllisiä, jos haluat säilyttää puhtaan tekstin muotoilun HTML-sivullasi. Jos haluat tulostaa koko tekstiasiakirjan selaimellesi, on parasta antaa selaimen esittää koko teksti puhtaana tekstinä. Se voidaan toteuttaa header()-funktion avulla: Header("Content-Type: Text/Plain"); 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. Mitä muunnosmäärittäjää käyttäisit printf()-funktion yhteydessä muotoillaksesi kokonaisluvun desimaaliluvuksi? Kirjoita koko syntaksi, kun kokonaislukuna on Kuinka siirtäisit edellisen kysymyksen muunnoksen siten, että tulostuksen eteen tulee tarvittava määrä nollia, jotta desimaaliosa olisi neljä merkkiä? 3. Kuinka määrittäisit kahden desimaalin tarkkuuden edellisten kysymysten liukuluvulle? 4. Millä funktiolla määrittäisit merkkijonon pituuden? 5. Millä funktiolla saat esille jonkin osamerkkijonon esiintymän aloituskohdan? 6. Millä funktiolla saat esille jonkin osamerkkijonon merkkijonosta? 7. Kuinka voit poistaa tyhjät merkit merkkijonon alusta? 8. Kuinka muuttaisit merkkijonon kirjaimet isoiksi kirjaimiksi? 9. Kuinka jakaisit merkkijonon osiin, jotka sijoitetaan sitten taulukkoon? Toiminta 1. Luo palautelomake, johon voidaan syöttää käyttäjän koko nimi ja -osoite. Käytä kirjainten muuntamisfunktioita muuntaaksesi nimien ensimmäiset kirjaimet isoiksi. Tulosta sitten lomakkeen tiedot selaimelle. Tarkista, että käyttäjän -osoite Jos symbolia ei löydy, ohjelma varoituksen. 2. Luo desimaalilukuja (double) ja kokonaislukuja sisältävä taulukko. Käy läpi taulukko silmukassa ja muunna jokainen alkio liukuluvuksi, jossa on kaksi desimaalia. Käytä tulostuksessa oikean reunan tasausta ja 20 merkin kentänleveyttä.

18 Merkkijonoilla työskentely

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita Käyttäjän kanssa keskusteleva ohjelma 1 Kirjoittaminen konsolinäkymään //Java ohjelma, joka tulostaa konsoli-ikkunaan public class HeiMaailma { public void aja() { // kirjoitus ja

Lisätiedot

Python-ohjelmointi Harjoitus 2

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

Lisätiedot

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

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

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

OPPITUNTI 16 Tiedon käsittely

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

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille: Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin

Lisätiedot

OPPITUNTI 5 Ohjelman kulku

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

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

Ohjelmoinnin peruskurssi Y1

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

Ohjelmoinnin perusteet Y Python

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

7. Taulukot 105. Kuinka taulukoiden tietoa käsitellään ja lajitellaan

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 26.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 26.9.2018 1 / 21 Oppimistavoitteet: tämän luennon jälkeen Osaat kirjoittaa for-käskyn avulla ohjelman, joka toistaa haluttua

Lisätiedot

Kappale 20: Kantaluvut

Kappale 20: Kantaluvut Kappale 20: Kantaluvut 20 Johdanto: Kantaluvut... 328 Kantalukujen syöttäminen ja muuntaminen... 329 Matemaattiset toiminnot Hex- ja Bin-luvuilla... 330 Bittien vertaileminen ja manipulointi... 331 Huom!

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

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

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

OPPITUNTI15 Päivämäärien käsittely

OPPITUNTI15 Päivämäärien käsittely 15. Päivämäärien käsittely 269 OPPITUNTI15 Päivämäärien käsittely Päivämäärät kuuluvat niin usein jokapäiväiseen elämään, että niiden käsittely on rutiininomaista. Kalenterin käsittely ei aina ole kuitenkaan

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

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin perusteet Y Python

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

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,

Lisätiedot

OPPITUNTI 18 Säännöllisten lausekkeiden käyttäminen

OPPITUNTI 18 Säännöllisten lausekkeiden käyttäminen 18. Säännöllisten lausekkeiden käyttäminen 319 OPPITUNTI 18 Säännöllisten lausekkeiden käyttäminen Säännölliset lausekkeet ovat tehokas keino tutkia ja muokata tekstiä. Ne mahdollistavat kuvioiden etsimisen

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

6. Funktiot 85. Kuinka funktioita määritellään ja kutsutaan. Kuinka funktioille viedään arvoja ja niistä palautetaan arvoja

6. Funktiot 85. Kuinka funktioita määritellään ja kutsutaan. Kuinka funktioille viedään arvoja ja niistä palautetaan arvoja 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

Lisätiedot

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 Luento 6: Tiedon esittäminen tietokoneessa, osa 1 Tekijät: Antti Virtanen, Timo Lehtonen, Matti Kujala, Kirsti Ala-Mutka, Petri M. Gerdt et al. Luennon

Lisätiedot

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja

Lisätiedot

OPPITUNTI 11 DBM-funktioiden käyttö

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

Vesa Ollikainen, päivitys Juha Haataja 3.8.2010

Vesa Ollikainen, päivitys Juha Haataja 3.8.2010 METROPOLIA Tekstinkäsittely1 Peruskäyttö Vesa Ollikainen, päivitys Juha Haataja 3.8.2010 Tavoitteet ja sisältö Tavoite Lyhyen asiakirjan kirjoitustaito Word-tekstinkäsittelyohjelmalla Sisältö Tekstinkäsittelyohjelman

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin perusteet Y Python

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

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan

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

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

OSA II Kieli. Oppitunti. 4. Rakennuslohkot 5. Ohjelman kulku 6. Funktiot 7. Taulukot 8. Oliot

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

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

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

Lisätiedot

Harjoitus 4 (viikko 47)

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

Lisätiedot

OPPITUNTI 3 Ensimmäinen skripti

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

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

Ohjelmoinnin perusteet Y Python

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

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

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

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

Lisätiedot

Tietotyypit ja operaattorit

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

Lisätiedot

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

// Tulostetaan double-tyyppiseen muuttujaan hinta tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf(%.1f euros. Lue kukin tehtävänanto huolellisesti ja kokonaisuudessaan ennen kuin aloitat vastaamisen. Kustakin tehtävästä voi saada 0 6 pistettä. Tentin läpipääsyraja on 12 / 24 pistettä. Ratkaisut palautetaan WETO-järjestelmään

Lisätiedot

Tekstinkäsittely 1. Peruskäyttö. Tietotekniikan perusteet Metropolia Ammattikorkeakoulu Vesa Ollikainen

Tekstinkäsittely 1. Peruskäyttö. Tietotekniikan perusteet Metropolia Ammattikorkeakoulu Vesa Ollikainen Tekstinkäsittely 1 Peruskäyttö Tavoitteet ja sisältö Tavoite Lyhyen asiakirjan kirjoitustaito Word-tekstinkäsittelyohjelmalla Sisältö Tekstinkäsittelyohjelman esittely Tekstinkäsittelyprosessi Tekstin

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

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

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

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

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

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

FrontPage 2000 - Näkymät

FrontPage 2000 - Näkymät FrontPage 2000 - Näkymät FrontPagessa on kuusi erilaista näkymää sivustoon. Sivunäkymä Tässä näkymässä luodaan sivut eli näkymä vastaa paljolti Wordin tekstinkäsittelyohjelman näkymää. Tässä on myös muokattava

Lisätiedot

Ohjelmointi 1 Taulukot ja merkkijonot

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

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

8. Oliot 123. Kuinka luokkia luodaan ja olioita saadaan aikaan. Kuinka luodaan ja käsitellään ominaisuuksia ja metodeja

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

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

Ohjelmoinnin perusteet Y Python

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

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A. Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

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

OpenOffice.org Base 3.1.0

OpenOffice.org Base 3.1.0 OpenOffice.org Base 3.1.0 Sisällysluettelo 1 Tietokannan luominen...1 2 Taulukon eli taulun luominen...3 3 Kysely...9 4 Raportti...14 1 Tietokannan luominen Tietokanta on kokoelma tietoja, joilla on yhteys

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 1 / 41 Valintakäsky if Tähänastiset ohjelmat ovat toimineen aina samalla tavalla. Usein ohjelman pitäisi

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 27.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 27.9.2017 1 / 30 Mahdollisuus antaa luentopalautetta Luennon aikana voit kirjoittaa kommentteja ja kysymyksiä sivulle

Lisätiedot

811120P Diskreetit rakenteet

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

Lisätiedot

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

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

Lisätiedot

Harjoitus 3 (viikko 39)

Harjoitus 3 (viikko 39) Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien

Lisätiedot

OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla

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

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

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

Lisätiedot

Harjoitus 2 (viikko 45)

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

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 6 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto Condess ratamestariohjelman käyttö Aloitus ja alkumäärittelyt Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto Kun kysytään kilpailun nimeä, syötä kuvaava nimi. Samaa nimeä käytetään oletuksena

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

PHP tehtävä 3 Atte Pekarinen TIKT13A 4.12.2014

PHP tehtävä 3 Atte Pekarinen TIKT13A 4.12.2014 PHP-kielen perusteet 3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. Heredoc on ominaisuus PHP-koodaamisessa, jolla voidaan kirjoittaa pitkiä tekstejä

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Ohjelmointi 1 C#, kevät 2013, 2. tentti

Ohjelmointi 1 C#, kevät 2013, 2. tentti ITKP102 Ohjelmointi 1 C# 15.5.2013 1 / 6 Ohjelmointi 1 C#, kevät 2013, 2. tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yhden arkin verran. Tentin valvojalla

Lisätiedot

Python-ohjelmointi Harjoitus 5

Python-ohjelmointi Harjoitus 5 Python-ohjelmointi Harjoitus 5 TAVOITTEET Kerrataan silmukkarakenteen käyttäminen. Kerrataan jos-ehtorakenteen käyttäminen. Opitaan if else- ja if elif else-ehtorakenteet. Matematiikan sisällöt Tehtävät

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

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

12.10.2011. Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle

12.10.2011. Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle (Ei yhtään videota tällä kertaa.) X niin kuin Cross-Platform, Apache, MySql, PHP, Perl Kehitysympäristö EI tuotantokäyttöön Monet tärkeät tietoturva-asetukset ovat oletuksena pois päältä Erittäin nopea

Lisätiedot

Harjoitus 5 (viikko 48)

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

Lisätiedot

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

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5 Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät tekniset ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida

Lisätiedot

Harjoitus 6 (viikko 42)

Harjoitus 6 (viikko 42) Nämä ovat kurssin viimeiset harjoitukset. Hyväksytyistä ratkaisuista ja läsnäoloista kerättyjen pisteiden summan tulee olla vähintään 4 % (2 pistettä) tehtävien ja läsnäolopisteiden kokonaislukumäärien

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,

Lisätiedot

Yhdistäminen. Tietolähteen luominen. Word-taulukko. Joukkokirje, osoitetarrat Työvälineohjelmistot 1(5)

Yhdistäminen. Tietolähteen luominen. Word-taulukko. Joukkokirje, osoitetarrat Työvälineohjelmistot 1(5) Työvälineohjelmistot 1(5) Yhdistäminen Yhdistämistoiminnolla voidaan tehdä esimerkiksi joukkokirjeitä, osoitetarroja, kirjekuoria, jne. Siinä yhdistetään kaksi tiedostoa: Pääasiakirja Tietolähde Pääasiakirjassa

Lisätiedot

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

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

Lisätiedot

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB Datatähti 2019 alku task type time limit memory limit A Kolikot standard 1.00 s 512 MB B Leimasin standard 1.00 s 512 MB C Taulukko standard 1.00 s 512 MB D Ruudukko standard 1.00 s 512 MB E Sanalista

Lisätiedot

Harjoitus 5 (viikko 41)

Harjoitus 5 (viikko 41) Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä, käytä

Lisätiedot

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma:

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5. 1. Toteuta Pythonilla seuraava ohjelma: Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 2 1. Toteuta Pythonilla seuraava ohjelma: 2. Tulosta Pythonilla seuraavat luvut allekkain a. 0 10 (eli, näyttää tältä: 0 1 2 3 4 5 6 7 8 9 10 b. 0 100 c. 50 100 3.

Lisätiedot