Racket 1. VIIKKO
Racket 1. VIIKKO
2
Racket-lauseke
2
(+ 2 3)
funktio argumentit
Lausekkeen sisällä voi olla lausekkeita
33
(/ (+ 2 3) (- 6 4))
funktio argumentit
KOODIAAPINEN MOOC - SYKSY 2015
Funktio palauttaa arvon
circle(funktio)
100
”solid”
”red”
+(funktio)
ARGUMENTIT
100
30
PALUUARVO
130
KOODIAAPINEN MOOC - SYKSY 2015
Racket BSL – kieli Funktioiden käyttöohjeet löytyvät Koodarin käsikirjasta.
argumenttien tyypit
esimerkit
funktion nimi paluuarvon tyyppi
KOODIAAPINEN MOOC - SYKSY 2015
Kirjastojen avulla saat lisää funktioita
Otamme käyttöön kuvienpiirtokirjaston. Sen funktiot on kuvattu Koodarin käsikirjassa.
Kirjaston käyttöönotto (DrRacket):
Kirjoita tämä määrittelyikkunaan ja paina ”run”HUOM!
WeSchemessä et tarvitsetätä vaihetta. Image-kirjasto on käytössä automaattisesti.
KOODIAAPINEN MOOC - SYKSY 2015
Peruskuvioiden piirtofunktiot
Ohjeet peruskuvioiden piirtämiseen sekä kuvioiden yhdistämiseen löydät Koodarin käsikirjasta.
saat lisätietoa linkin kautta
KOODIAAPINEN MOOC - SYKSY 2015
Muuttujat Tallenna muuttujaan arvoja, joita käytät useamman kerran. Käyttämällä muuttujia koodista tulee selkeämpää.
(define YMPYRÄ (circle 100 ”solid” ”red”))
muuttuja arvo
KOODIAAPINEN MOOC - SYKSY 2015
Sanasto Koodarin käsikirjasta löytyy sanasto
Käytä sitä hyväksesi kun törmäät sinulle uuteen termiin. Ensimmäisen viikon termit:
ARGUMENTTI
ARVO
ASKELTAJA/STEPPERI
EVALUOINTI
FUNKTIO
INTERAKTIOIKKUNA
LAUSEKE
LUKU
MERKKIJONO
MÄÄRITTELYIKKUNA
KIRJASTO
MUUTTUJA
VAKIO
KOODIAAPINEN MOOC - SYKSY 2015
Vinkki viikon palautustehtävään
Jaa ongelma ensin osaongelmiin◦ Mistä pienemmistä osista valitsemasi kuva koostuu?
Piirrä osat, anna osille selkeät nimet (define)
Yhdistä osat, tarvittaessa välivaiheiden kautta.
Esim. Pikseliukko koostuu riveistä, jotka koostuvat neliöistä...
Racket DEBUGGAUS
Palaa tähän kohtaan, kun törmäät virheilmoituksiin!
KOODIAAPINEN MOOC - SYKSY 2015
Mistä virheilmoitukset voivat johtuvat?Virheilmoitus Syitäexpected a `)´ to close `(´ esimerkkiexpected a funtion call but there is no open parenthesis... esimerkki
this function is not defined esimerkki 1 esimerkki 2
this variable is not defined esimerkki 1 esimerkki 2 esimerkki 3
expects 3 arguments, but found only 2 esimerkkiexpects <...> as second argument esimerkki1
esimerkki2funktion call: expected a function after the open parenthesis... esimerkkidefine: expected only one expression after the variable name… esimerkki
KOODIAAPINEN MOOC - SYKSY 2015
Debuggaus:expected a `)´ to close `(´
Tarkista sulut. Sinulta puuttuu sulkukiinni-merkki ´)´, joka sulkee pinkiksi väritetyn sulkuauki-merkin ´(´.
Lisää puuttuva sulku: (circle 100 ”solid” ”red”)
ja paina ”run”.
KOODIAAPINEN MOOC - SYKSY 2015
Debuggaus:expected a function call but there is no open parenthesis...
Tarkista sulut. Funktiokutsu ja sen argumentit pitää laittaa sulkumerkkien sisään.
Lisää puuttuvat sulut: (circle 100 ”solid” ”red”)
ja paina ”run”.
KOODIAAPINEN MOOC - SYKSY 2015
Debuggaus:this function is not defined (1)
Tarkista puuttuuko sinulta kuvien piirtokirjasto (circle-funktio on määritelty siinä).
Jos puuttui, lisää määrittelyikkunaan ensimmäiseksi riviksi:
(require 2htdp/image)
(circle 100 ”solid” ”red”)
ja paina ”run”
KOODIAAPINEN MOOC - SYKSY 2015
Debuggaus:this function is not defined (2)
Tarkista kirjoititko funktion nimen oikein. Funktion nimessä ei saa olla välilyöntejä, myös isoilla ja pienillä kirjaimilla on merkitystä.
Korjaa funktion kirjoitusasu oikeaksi: (circle 100 ”solid” ”red”)
Ja paina ”run”.
KOODIAAPINEN MOOC - SYKSY 2015
Debuggaus:this variable is not defined (1)
Tarkista unohditko lainausmerkit: ”” merkkijonon ympäriltä (solid vs. ”solid”)?
Lisää puuttuvat lainausmerkit:
(circle 100 ”solid” ”red”))
ja paina ”run”
KOODIAAPINEN MOOC - SYKSY 2015
Debuggaus:this variable is not defined (2)
Oliko tarkoituksesi tallentaa kuva muuttujaan ympyrä? Jotta voit viitata muuttujaan ympyrä lisää määrittelyikkunaan:
(define ympyrä
(circle 100 ”solid” ”red”))
ja paina ”run”
KOODIAAPINEN MOOC - SYKSY 2015
Debuggaus:this variable is not defined (3)
Tarkista kirjoititko muuttujan nimen oikein. Muuttujan nimessä ei saa olla välilyöntejä, myös isoilla ja pienillä kirjaimilla on merkitystä.
Korjaa kirjoitusasu samaksi kuin definessä:
(beside ympyrä ympyrä)
ja paina ”run”
KOODIAAPINEN MOOC - SYKSY 2015
Debuggaus:expects 3 arguments, but found 2
Olet antanut vain 2 argumenttia funktiolle, joka vaatii 3 argumenttia.
Lisää puuttuva argumentti (tarkista argumenttien määrä Koodarin käsikirjasta):
(circle 100 ”solid” ”red”)
ja paina ”run”
KOODIAAPINEN MOOC - SYKSY 2015
Debuggaus:expects <...> as second argument (1)
Tarkista oletko antanut argumentit oikeassa järjestyksessä (tässä ”solid” ja ”red” ovat väärinpäin).
Vaihda argumentit oikeaan järjestykseen (tarkista argumenttien järjestys Koodarin käsikirjasta):
(define ympyrä
(circle 100 ”solid” ”red”))
KOODIAAPINEN MOOC - SYKSY 2015
Debuggaus:expects <...> as second argument (2)
Tarkista, että olet antanut funktiolle oikean tyyppisiä argumentteja. Jos annat argumenttina muuttujan, muuttujan nimeä ei kirjoiteta lainausmerkkeihin (siitä tulee silloin merkkijono, ei kuva).
Poista lainausmerkit muuttujan nimen ympäriltä.
(beside ympyrä ympyrä)
KOODIAAPINEN MOOC - SYKSY 2015
Debuggaus:funktion call: expected a function after the open parenthesis...
Olet ehkä laittanut sulut muuttujan nimen ympärille. Muuttujaan viitataan ilman sulkuja, koska muuten se tulkitaan funktiokutsuksi, jota se ei ole.
Poista sulut muuttujan nimen ympäriltä:
(beside ympyrä ympyrä)
ja paina ”run”
KOODIAAPINEN MOOC - SYKSY 2015
Debuggaus:define: expected only one expression after the variable name
Tarkista, että muuttujanimessäsi ei ole välilyöntiä.
Korjaa muuttujanimi yhtenäiseksi esim. lisäämällä nimeen väliviiva tai poistamalla välilyönti:
(define pun-ympyrä
(circle 100 ”solid” ”red”))
ja paina ”run”