Kertausta

Kertaustehtäviä

Tähän on koottu kertaustehtäviä kappaleista 14. Nämä tehtävät on tarkoitettu omatoimiseen harjoitteluun. Näitä tehtäviä ei tarvitse palauttaa.

PROCESSING OHJELMOINNIN KOMENNOT 7. LUOKALLA
KOMENTOMERKITYS
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ä



Tee ohjelma, joka piirtää vihreän ellipsin, sinisen suorakulmion, punaisen viivan ja tulostaa mustan Hei-tekstin kuten kuvassa.

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ä



Tee ohjelma, joka piirtää kuvan mukaiset kuviot.

5. Tehtävä



Piirrä suorakulmio neljän kokonaislukumuuttujan avulla. Nimeä muuttujat x, y , kanta ja korkeus. Esimerkiksi kuvan mukainen piirustus saadaan, kun x = 50, y = 100, kanta = 350 ja korkeus = 200. Lisäksi ohjelma laskee suorakulmion pinta-alan muuttujien avulla ja tulostaa vastauksen yksikössä cm2.

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ä




Tee ohjelma, joka arpoo kolme kokonaislukua väliltä 1...10. Arpominen suoritetaan kerran. Arvotut luvut sijoitetaan muuttujille a, b ja c. Tämän jälkeen ohjelma laskee ja tulostaa arvottujen lukujen summan ja tulon.

9. Tehtävä




Tee ohjelma, joka piirtää lukusuoran. Lisäksi ohjelma arpoo kokonaisluvun väliltä -6...6 ja piirtää lukusuoralle sinisen ympyrän arvotun luvun kohdalle.

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ä



Tee ohjelma, jossa kuusi eriväristä pylvästä pomppii ylös ja alas satunnaisesti. Pienennä void draw () -lohkon päivitysnopeutta komennolla: frameRate(taajuus);

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
Lopuksi ohjelma tulostaa sen värisen neliön, kuin on happamuus. Neliön sisään tulostuu happamuus-muuttujalle alussa annettu arvo. Lisää ohjelmaan ehto, että jos happamuus on pienempi tai yhtä suuri kuin 0 tai happamuus on suurempi tai yhtä suuri kuin 14, väri asetetaan harmaaksi ja tulostetaan kommentti: "Ei ole asteikolla".

15. Tehtävä

Tee ohjelma, joka muuttaa annetun ajan sekunneissa muotoon: vuodet, vuorokaudet, tunnit, minuutit, sekunnit. Alla kuvattu ohjelman suoritus kahdella eri ajan arvolla.




16. Tehtävä



Tee ohjelma, joka piirtää koveran ja kuperan linssin.

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.