Kertausta
Kertaustehtäviä
Tähän on koottu kertaustehtäviä kappaleista 1–4. Nämä tehtävät on tarkoitettu omatoimiseen harjoitteluun. Näitä tehtäviä ei tarvitse palauttaa.
| KOMENTO | MERKITYS |
|---|---|
| void setup () { } | Lohko, joka suoritetaan kerran. |
| void draw () { } | Lohko, joka on ikuisessa silmukassa. |
| size(x,y); | Komento määrää ikkunan/koordinaatiston koon. |
| point(x,y); | Komento joka piirtää pisteen paikkaan (x, y). |
| line(x1,y1,x2,y2); | Komento piirtää viivan pisteiden (x1,y1) ja (x2,y2) välille. |
| strokeWeight(koko); | Asettaa viivan paksuuden. |
| background(R,G,B); | Asettaa ikkunan taustavärin. R = punainen, G = vihreä ja B = sininen. Arvot voivat vaihdella välillä 0...255. |
| fill(R,G,B,alpha); | Asettaa tekstin tai kuvion täyttövärin. R = punainen, G = vihreä, B = sininen ja alpha = läpinäkyvyys. Arvot voivat vaihdella välillä 0...255. |
| stroke(R,G,B); | Asettaa kuvion reunaviivan värin. R = punainen, G = vihreä ja B = sininen. Arvot voivat vaihdella välillä 0...255. |
| noFill(); | Asettaa asetuksen, joka poistaa täytön. |
| noStroke(); | Asettaa asetuksen, joka poistaa reunaviivan |
| text(”Teksti”,x,y); | Kirjoittaa tekstiä paikkaan (x,y). |
| textSize(koko); | Asettaa tekstin koon pikseleinä |
| textFont(createFont("Fontti",koko)); | Asettaa tulostettavan fontin ja fontille oletuskoon, jos se on asennettuna käyttöjärjestelmässä. |
| ellipse(x,y,leveys,korkeus); | Piirtää ellipsin, missä (x,y) on ellipsin keskipiste. |
| rect(x,y,leveys,korkeus,pyöristys); | Piirrä suorakulmion, missä (x,y) suorakulmion vasemman yläreunan nurkkapiste. |
| triangle(x1,y1,x2,y2,x3,y3); | Piirtää kolmion pisteiden (x1,y1), (x2,y2) ja (x3,y3) välille. |
| quad(x1,y1,x2,y2,x3,y3,x4,y4); | Piirtää nelikulmion pisteiden (x1,y1), (x2,y2), (x3,y3) ja (x4,y4) välille. |
| beginShape(); vertex(x1,y1); … vertex(xn,yn); endShape(CLOSE); |
Piirtää monikulmion. |
| arc(x,y,leveys,korkeus,alkukulma,loppukuma,tyyppi); | Komento piirtää kaaren ellipsiin. Ellipsin keskipiste on (x,y) ja ellipsin koko määräytyy leveyden ja korkeuden avulla. Kaaren koko määräytyy alku- ja loppukulman avulla. Kaaren tyyppi voi saada arvoja: OPEN, CHORD, PIE. |
| radians(kulma); | Muuttaa kulman radiaaneiksi. |
| bezier(x1,y1,x2,y2,x3,y3,x4,y4); | Piirtää Bezier viivan pisteiden (x2,y2) ja (x3,y3) välille kahvojen (x1,y1) ja (x4,y4) avulla. |
| int,float,String,char,boolean | Muuttujien määrittelyjä (kokonaisluku, desimaaliluku, merkkijono, merkki, totuusarvo). |
| textWidth(“teksti”); | Kertoo tekstin leveyden kokonaislukuna. |
| random(luku); | Arpoo desimaaliluvun väliltä [0,luku]. |
| round(desimaaliluku); | Pyöristää desimaaliluvun kokonaisluvuksi. |
| int(desimaaliluku); | Ilmoittaa desimaaliluvun kokonaisosan. |
| int(‘merkki’); | Muuttaa merkin kokonaisluvuksi. |
| char(kokonaisluku); | Muuttaa kokonaisluvun merkiksi. |
| float(kokonaisluku); | Muuttaa kokonaisluvun desimaaliluvuksi. |
| a%b | Ilmoittaa luvun a:b jakojäännöksen. |
| frameRate(taajuus); | Asettaa lohkon päivitysnopeuden. |
| noLoop(); | Komento muuttaa void draw () -lohkon kertapäivitteiseksi. |
| if (ehto) { komennot1; } else { komennot2; } | Ehtolause |
| >, <, >=, <=, ==, != | Vertailuoperaattorit (suurempi kuin, pienempi kuin, suurempi tai yhtä suuri kuin, pienempi tai yhtä suuri kuin, yhtä suuri kuin, eri suuri kuin). |
| &&, ||, ! | Loogiset operaattorit (JA, TAI, EI). |
| mouseX, mouseY | Lukee hiiren koordinaattiarvot. |
1. Tehtävä
2. Tehtävä

a) Tee ohjelma, joka piirtää 8-kulmion monikulmiokomennolla ja kirjoittaa keskelle sanan STOP.
b) Haluatko tästä haasteellisemman tehtävän? Tee sama kuvio uudestaan, mutta et saa käyttää monikulmiokomentoa. Sitä vastoin käytä kaarikomentoa (arc) ja lisäksi viivakomentoa (line) ja ellipsi komentoa (ellipse). Peitä siis punainen ympyrä kahdeksalla valkealla segmentillä.
3. Tehtävä

a) Tee ohjelma, joka piirtää kuvan mukaisen talon.
b) Muuta koodia siten, että arvotaan satunnaisluku 0 tai 1 void draw () -lohkossa. Jos luvuksi tulee 0, niin tällöin on yö (oikeanpuoleinen kuva). Tausta on musta ja ikkunan väri keltainen. Jos luvuksi tulee 1, niin tällöin on päivä. Nyt tausta on valkoinen ja ikkunan väri sininen (vasemmanpuoleinen kuva). Hidasta arpominen frameRate(taajuus); -komennolla 1 sekuntiin.

4. Tehtävä
5. Tehtävä
6. Tehtävä

a) Tee ohjelma, jossa ohjelma piirtää tasakylkinen kolmion neljän muuttujan avulla. Muuttujat x ja y ilmaisevat tasakylkisen kolmion vasemmassa alareunassa olevan kärjen. Ilmoita kolmion muut kärjet muuttujien x, y, kanta ja korkeus avulla. Mieti millä muuttujan arvoilla saadaan aikaiseksi kuvan mukainen kolmio. Lisää ohjelmaan myös laskutoimitus, joka laskee muuttujien kanta ja korkeus avulla kolmion pinta-alan ja tulostaa sen yksikössä m2.
b) Tee ohjelma, jossa muuttujille x, y, kanta ja korkeus arvotaan satunnainen kokonaisluku. Mieti mikä olisi sopiva arvo kullekin muuttujalle. Lisäksi arvotaan kolmiolle satunnainen väri. Laita satunnaislukujen arpominen void draw () -lohkoon, jolloin uusia kolmioita ilmestyy jatkuvasti. Tulostus voisi näyttää esimerkiksi tältä.

7. Tehtävä

a) Tee ohjelma, joka piirtää suunnikkaan muuttujien x,y,a,b ja c avulla. Mieti aluksi jokaisen nurkkapisteen koordinaatti ilmaistuna muuttujien x,y,a,b ja c avulla, sekä millä muuttujien arvolla saadaan kuvan mukainen suunnikas. Ohjelma lisäksi laskee ja tulostaa suunnikkaan pinta-ala muuttujien b (= kanta) ja c (=korkeus) avulla yksikössä mm2.
b) Neloskappaleen lisätiedoissa oli ohjeita, kuinka kuvio saadaan seuraamaan hiiren liikkeitä mouseX ja mouseY komennoilla. Tee ohjelma, jossa suunnikas seuraa hiiren liikkeitä. Entä, jos nurkkapiste pysyisi paikoillaan ja suunnikkaan koko kasvaisi hiiren liikkeiden mukaan.
8. Tehtävä
9. Tehtävä
10. Tehtävä
Tee ohjelma, jossa on kaksi kokonaislukumuuttujaa: Celsius ja Fahrenheit. Fahrenheit-muuttujalle annetaan jokin desimaalilukuarvo, ja ohjelma laskee Celsius-asteet laskukaavalla: Celsius = (Fahrenheit - 32):1,8. Tee ohjelmaan ehtolause, joka tutkii, ovatko Celius-asteet pakkasella vai plussalla, ja kommentoi sen perusteella, joko "Lämpötila on plussalla" tai "Lämpötila on pakkasella". Piirrä lisäksi lämpötilamittari, joka näyttää oikeaa lämpötilaa. Ohjelman suoritus on esimerkiksi seuraavanlainen.


11. Tehtävä

a) Tee ohjelma, joka piirtää liikennevalot. Ohjelmassa on merkkijonomuuttuja (String) nimeltään: vari. Vari-muuttuja voi saada arvot: "punainen", "keltainen" ja "vihreä". Sen värinen, mikä on muuttujan saama arvo, lamppu syttyy palamaan.
b) Muuta ohjelman koodi siten, että arvotaan kokonaisluku väliltä 1..3. Jos arvottu luku on 1, niin syttyy punainen valo. Jos arvottu luku on 2, niin syttyy keltainen valo. Jos arvottu luku on 3, niin syttyy vihreä valo. Laita arpominen void draw () -lohkoon ja muuta frameRate(taajuus); -komennolla ikkunan päivitysnopeus 1 Hz.
12. Tehtävä
13. Tehtävä
14. Tehtävä

Tee ohjelma, jossa tutkitaan happamuutta seuraavasti. Jos happamuus on:
- suurempi kuin 0 ja pienempi kuin 3.5, niin asetetaan väriksi tummanpunainen,
- suurempi tai yhtä suuri kuin 3.5 ja pienempi kuin 6.5, niin väriksi asetetaan vaaleanpunainen,
- suurempi tai yhtä suuri kuin 6.5 ja pienempi kuin 7.5, niin väriksi asetetaan tummanvihreä,
- suurempi tai yhtä suuri kuin 7.5 ja pienempi kuin 10.5, niin väriksi asetetaan sinivihreä,
- suurempi tai yhtä suuri kuin 10.5 ja pienempi kuin 14, niin väriksi asetetaan tummansininen
15. Tehtävä
16. Tehtävä
17. Tehtävä

Tee ohjelma, joka arpoo muuttujille a ja b kokonaisluvun väliltä 1..4. Jonka jälkeen ohjelma tulostaa murtoluvut a/8 ja b/8, sekä arvottujen lukujen summan (a+b)/8. Murtolukujen lisäksi asia havainnollistetaan kuvioilla kuten kuvassa. Esimerkiksi kuvan mukainen tilanne syntyy, kun a saa arvon 2 ja b saa arvon 4. Vinkki: Jos alkukulma on 0°, loppukulma saadaan, kun murtoluku (esimerkiksi a/8) kerrotaan 360 asteella.








