5. Racket BSL – kieli
Funktioiden käyttöohjeet löytyvät Koodarin käsikirjasta.
KOODIAAPINEN MOOC – KEVÄT 2016 5
argumenttien tyypit
esimerkit
funktion nimi paluuarvon tyyppi
6. Kirjastojen avulla saat lisää
funktioita
Otamme käyttöön kuvienpiirtokirjaston. Sen funktiot on kuvattu
Koodarin käsikirjassa.
Kirjaston käyttöönotto (DrRacket):
KOODIAAPINEN MOOC – KEVÄT 2016 6
Kirjoita tämä määrittelyikkunaan ja paina ”run”
HUOM!
WeSchemessä et tarvitse
tätä vaihetta. Image-kirjasto
on käytössä automaattisesti.
8. Muuttujat
Tallenna muuttujaan arvoja, joita käytät useamman kerran. Käyttämällä
muuttujia koodista tulee selkeämpää.
KOODIAAPINEN MOOC – KEVÄT 2016 8
(define YMPYRÄ (circle 100 ”solid” ”red”))
muuttuja arvo
9. 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
KOODIAAPINEN MOOC – KEVÄT 2016 9
LAUSEKE
LUKU
MERKKIJONO
MÄÄRITTELYIKKUNA
KIRJASTO
MUUTTUJA
VAKIO
10. Pikanäppäimet nopeuttavat
koodaamista
Toiminto DrRacket
(Win)
DrRacket
(MacOS)
WeScheme
Suorita ”run” Ctrl + r Cmd + r F5
Palauta edellinen koodirivi
(interaktioikkunassa)
Crtl + ↑ Cmd + Crtl + ↑ Crtl + P
Palauta seuraava koodirivi
(interaktioikkunassa)
Crtl + ↓ Cmd + Crtl + ↓ Crtl + N
Tallenna ”save” Crtl + s Cmd + s Crtl + s
Sisennä koodirivi TAB TAB TAB
Korjaa sisennys koko
tiedostossa
Crtl + i Cmd + i Crtl + i
KOODIAAPINEN MOOC – KEVÄT 2016 10
11. 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ä...
KOODIAAPINEN MOOC – KEVÄT 2016 11
13. Mistä virheilmoitukset voivat
johtuvat?
KOODIAAPINEN MOOC – KEVÄT 2016 13
Virheilmoitus Syitä
expected a `)´ to close `(´ esimerkki
expected 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 esimerkki
expects <...> as second argument esimerkki1
esimerkki2
funktion call: expected a function after the open parenthesis... esimerkki
define: expected only one expression after the variable name… esimerkki
14. 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 – KEVÄT 2016 14
15. 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 – KEVÄT 2016 15
16. 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 – KEVÄT 2016 16
17. 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 – KEVÄT 2016 17
18. 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 – KEVÄT 2016 18
19. 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 – KEVÄT 2016 19
20. 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 – KEVÄT 2016 20
21. 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 – KEVÄT 2016 21
22. 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 – KEVÄT 2016 22
23. 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 – KEVÄT 2016 23
24. 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 – KEVÄT 2016 24
25. 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”
KOODIAAPINEN MOOC – KEVÄT 2016 25