On this page:
2.2.1 Pinta-alatehtävät B
2.2.2 Kuva- ja yhdistelmäfunktioita
6.4

2.2 Apufunktiot ja funktion suunnitteluportaat

Funktion suunnitteluportaat (osa 1), kesto 7:22

Isot ongelmat ovat vaikeampia ratkaista kuin pienet ongelmat. Sama pätee ohjelmoinnissa. Siksi kannattaa opetella ratkaisemaan ongelmat paloissa käyttämällä pienempiä apufunktioita isomman ja monimutkaisemman funktion toteuttamiseen. Hyvä nyrkkisääntö on se, että jokainen funktio tekee vain yhden asian.

Funktion suunnitteluportaat (osa 2), kesto 6:53

Jokaisen funktion koodaamisessa tärkein vaihe on suunnittelu. Koska funktion suunnittelussa on monta päätöstä tehtävänä, se voi aluksi tuntua lähdes mahdottomalta. Siksi teemme sen pienissä askelissa seuraamalla menetelmää nimeltä funktion suunnitteluportaat. Emme siis yritä hypätä katolle yhdellä (mahdottomalla) loikalla. Jos menetelmä ei ole sinulle tuttu, katso ensin esimerkki Koodarin käsikirjasta.

Funktion jakaminen osiin, kesto 10:49

Voit tutustua apufunktioiden ja funktion suunnitteluportaiden käyttöön tekemällä joko laskuharjoituksia tai kuva- ja yhdistelmätehtäviä.

2.2.1 Pinta-alatehtävät B

Harjoittele funktioiden ja apufunktioiden kirjoittamista seuraavien tehtävien avulla. Lataa harjoitustiedosto tästä:

 

Pinta-alafunktiot B (DrRacket)

 

Pinta-alafunktiot B (WeScheme)

Jos käytät WeScheme:ä ja haluat tallentaa työsi, tarvitset Google-tunnukset. Kirjaudu ENSIN sisään WeScheme:en, ja tule vasta jälkeen avaamaan tehtävälinkki.

Tehtävätiedosto sisältää nämä laskutehtävät:

Pinta-alafunktiot B

Tee funktioita erilaisten pinta-alojen laskemiseen. Valitse muuttujille sopivat nimet/nimi. Täydennä funktion kuvauksen puuttuvat tiedot (...). Tee myös esimerkkejä/testejä funktiollesi (check-expect).

Huom! Tehtävässä tarvitset piin arvoa. Racket-kielessä se on vakio nimeltä pi.

Koska piin arvo on päättymätön desimaaliluku, tulokset ovat aina likiarvoja (epätarkkoja). DrRacket varoittaa epätarkoista arvoista lisäämällä luvun eteen #i-merkinnän. Samasta syystä emme voi käyttää check-expect-testiä vaan epätarkoille tuloksille tarkoitettua check-within-testiä.

Funktio ympyröiden pinta-alojen laskemiseen

Funktio sektoreiden pinta-alojen laskemiseen

Funktio ympyrälieriöiden kokonaispinta-alojen laskemiseen

Tässä harjoituksessa saatat tarvita seuraavia Racket-kielen funktioita ja vakioita:

+

   

-

   

*

   

/

   

sqr

   

check-within

   

pi

Opettajan diat.

2.2.2 Kuva- ja yhdistelmäfunktioita

Suunnittele ja koodaa funktiot, jotka tuottavat seuraavanlaisia kuvia:

Kuva- ja yhdistelmäfunktioita

Koodaa kuvan geometrisia kuvioita tuottava funktio.

Koodaa kuvan geometrisiä kuvioita tuottava funktio.

Koodaa funktio, jonka avulla voit liittää suorakulmioon sen mitat.

Koodaa funktio, joka piirtää ympyrälieriön levityskuvia.

Koodaa funktio, joka piirtää suorakulmaisten särmiöiden levityskuvia ja laskee niiden kokonaispinta-alat sekä liittää tulokset kuviin yksiköiden kera. Tämä tehtävä vaatii useammankin funktion koodaamista. Voit myös käyttää aikaisempien tehtävien tuotoksia tässä tehtävässä!

Koodaa EU:n lippu.

Tässä harjoituksessa saatat tarvita seuraavia Racket-kielen funktioita:

+

   

-

   

*

   

/

   

rectangle

circle

   

rhombus

   

regular-polygon

   

star

   

beside

above

   

overlay

   

overlay/xy

   

rotate

   

flip-vertical

flip-horizontal

   

number->string

   

text

   

units->image

   

check-expect