Kertausta

Kertaustehtäviä

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

PROCESSING OHJELMOINNIN KOMENNOT 7. JA 8. 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 alkukulman 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.
translate(x,y); Siirtää origoa x:n verran oikealle ja y:n verran alapäin.
scale(x,y); Muuttaa koordinaatiston skaalausta. x tarkoittaa vakaasuuntaista skaalausta ja y tarkoittaa pystysuuntaista skaalausta.
rotate(radians(kulma)); Pyörittää koko koordinaatistoa, joko myötäpäivään (kulma >0) tai vastapäivään (kulma < 0). Huomaa, että kulmat on muutettava radiaaneiksi.
pushMatrix(); Komento ottaa muistiin tämän hetkisen koordinaatiston.
popMatrix(); Komento palauttaa muistissa olevan koordinaatiston.
int a=0;
void draw () {
a++;
}
Laskurin käyttöönotto. Määritä kokonaisluku muuttujalle ensin alkuarvo (int a=0) heti ohjelman alussa ja käytä sen jälkeen laskuria (esim. a++) void draw ()-lohkon sisällä.
for (alkuarvo; ehto; laskuri) { Komennot; }
Esimerkiksi: for (int a=1; a<=10; a++) { }
For-silmukka, jossa voidaan tehdä vakiomäärä toistoja.
void aliohjelma(muuttujat) {
Komennot;
}
Ohjelma rakenne, jonka avulla voidaan luoda omia aliohjelmia eli funktioita.
tietotyyppi aliohjelma(muuttujat) {
Komennot;
return muuttuja;
}
Ohjelma rakenne, jonka avulla voidaan luoda arvon palauttavia aliohjelmia eli funktioita.
map(muuttuja,min1,max1,min2,max2); Komento muuttaa muuttujan arvon asteikolta [min1, max1] asteikolle [min2, max2].
smooth(); Asetus poistaa nykimistä animaatioissa ja tekee liikkeestä pehmeämpää.

1. Tehtävä



Tee ohjelma, jossa ikkunan koko on 400 x 400 ja keltainen taustaväri. Muodosta aluksi matematiikan xy-koordinaatisto siirtämällä origo ikkunan keskelle ja peilaamalla y:n arvot. Piirrä ikkunan keskelle sininen neliö, jonka koko on 200 x 200 ja sen sisälle vihreä ympyrä. Lopuksi piirrä ympyrän sisälle punainen kolmio.

2. Tehtävä



Tee ohjelma, joka laskee ympyrän pinta-alan kaavalla A = π ∙ r2, missä muuttuja r on laskuri, joka saa arvoja 10, 20, 30, .., 100. Lisää ohjelmaan if-lause, joka laske laskurin avulla ympyrän pinta-alan 10 ensimmäistä arvoa. Pyöristä vastaus kokonaisluvuksi.

Ohjelmoinnissa on käytössä komento: PI, joka antaa piin tarkan arvon.

3. Tehtävä



Tee ohjelma, jossa musta ympyrä menee keltaisen ympyrän ylitse. Käytä laskuria.

4. Tehtävä



Tee ohjelma, jossa ympyrä liikkuu oikealle koko ajan samalla vauhdilla, mutta alaspäin vauhti kasvaa 5 prosentilla (eli menee 1.05-kertaiseksi), jolloin muodostuu kuvan mukainen pallon reitti. Käytä laskureita.

5. Tehtävä



Tee ohjelma, joka piirtää yllä olevan kuvion.

6. Tehtävä


Tee ohjelma, jossa elektroni kiertää atomin ydintä. Käytä laskuria.

7. Tehtävä



Tee ohjelma, jossa laskurin avulla aurinko kulkee taivaan poikki.

8. Tehtävä



Piirrä ensin kaksi eri pituista sektoria, jotka mahtuvat 30 asteen kulman sisälle. Lisää näiden sektoreiden ympärille for- silmukka, jossa on 12 toistoa ja saat aikaiseksi rattaan. Lisää ohjelmaan vielä laskuri, jonka avulla laita ratas pyörimään.

9. Tehtävä



Tee ohjelma, joka piirtää kerrostalon, jossa on 12 x 9 = 108 ikkunaa. Sijoita ikkunat paikoilleen kahden for-silmukan avulla.

10. Tehtävä



Tee ohjelma, joka piirtää for-silmukan avulla vinoittain viivoja koko ikkunan täyteen kuten kuvassa.

11. Tehtävä

Tee ohjelma, joka piirtää alla olevan kuvion.



Lisää kuvion ympärille kaksi for-silmukkaa, niin että koko ikkunan täytetään tällä kuviolla. Kun lisäät värin arpomiskomennon, niin jokainen kuvio piirretään eri värillä.


12. Tehtävä



Tee ohjelma, jossa ruletti pyörähtää 1-2 kertaa ympäri ja pysähtyy satunnaiseen paikkaan. Eli arvo lopetuskulma väliltä [360, 720] ja, kun laskuri saavuttaa tämän maksimiarvon, pyöriminen loppuu. Piirrä ruletti for-silmukan avulla ja animoi ruletin pyöriminen laskurin avulla.

13. Tehtävä



Tee ohjelma, jossa 36 pientä ympyrää menee kohti ulkoreunaa.

14. Tehtävä



Tee ohjelma, joka piirtää hämähäkin verkon. Vinkki: Mieti aluksi kuinka yhdellä for- silmukalla ja arc()-komennolla saadaan aikaiseksi seuraava kuvio. Sektorin suuruus tässä on 30 astetta.



Kun saat yllä olevan kuvion aikaiseksi, niin piirrä nyt vain pelkät kaaret ja lisää toinen for- silmukka, jonka avulla pyöräytät kaaret ympäri 12 kertaa ja saat aikaiseksi hämähäkinverkon.

15. tehtävä

Tee aliohjelma, joka piirtää kymmenen sisäkkäistä ympyrää.



Kutsu aliohjelmaa kahden for-silmukan sisältä, jolloin muodostuu seuraava kuvio.


16. Tehtävä



Tee aliohjelma laiva, joka piirtää matematiikan xy-koordinaatistoon laivan kuten kuvassa. Lisää laskuri, jonka avulla laivaa voidaan pääohjelmasta liikutella oikealta vasemmalle.

17. Tehtävä



Tee aliohjelma raketti, jossa matematiikan xy-koordinaatistossa oleva raketti liikkuu laskurin avulla alhaalta ylöspäin.

18. Tehtävä



Tee aliohjelma eli funktio: murtoluku(a,b); joka tulostaa murtoluvun piirakkakuviona. Murtoluku tässä on muotoa: a/b eli a on osoittaja ja b on nimittäjä. Oletetaan, että a ei saa olla suurempi kuin b. Esimerkiksi kuvassa on aliohjelmaa kutsuttu komennolla: murtoluku(3,5);

19. Tehtävä

Tee ohjelma, joka piirtää suorakulmaisen kolmion ja laskee kolmion pinta-alan aliohjelmien avulla. Aliohjelma: kolmio(a,b); piirtää vihreän kolmion, missä a on kanta ja b on korkeus. Aliohjelma: pinta_ala(a,b) laskee kolmion pinta-alan ja palauttaa sen takaisin pääohjelmaan muuttujalle, jossa on kolmion pinta-alan arvo. Alla on ohjelman esimerkkitulostus, kun kanta 250 ja korkeus 200.

20. Tehtävä



Tee ohjelma, joka piirtää neliön ja laskee neliön pinta-alan kaavalla: ala = a ∙ a ja piirin kaavalla piiri = 4 ∙ a, missä a on neliön sivun pituus. Laita muuttuja a laskuriksi, jolloin neliön pitäisi alkaa kasvaa. Voit lisätä komennon: frameRate(10); jolloin ruudun päivitys tapahtuu hitaammin eli 0,1 sekunnin välein.

21. Tehtävä



Tee ohjelma, jossa on aliohjelma naama(x,y), joka piirtää 100 x 100 kokoisen hymynaaman paikkaan (x, y). Hymynaaman saat piirrettyä ellipse() ja arc()-komennoilla. Lisää pääohjelmaan for-silmukka, jossa on 12 toistoa ja silmukan sisällä aliohjelman kutsu. Laita hymynaamat kiertämään ympyrän kehälle kuten kuvassa.

22. Tehtävä



Tee omat aliohjelmat eli funktiot vaakaviiva(x); ja pystyviiva(y);. Vaakaviiva(x) komennolla piirretään vaakaviiva haluttuun paikkaan ja pystyviiva(y) komennolla piirretään pystyviiva haluttuun paikkaan. Tässä ohjelmassa ei käytetä matematiikan xy-koordinaatistoa, vaan ohjelmoinnin peruskoordinaatistoa, jossa origo on ikkunan vasemmassa yläreunassa. Kutsu nyt aliohjelmia komennoilla: vaakaviiva(mouseX); ja pystyviiva(mouseY); , jolloin viivojen pitäisi seurata hiiren liikettä. Lisää lisäksi ehto, että kun hiiren painike on pohjassa, niin silloin piirretään ympyrä viivojen leikkauspisteeseen.