Upload
tiina-partanen
View
3.153
Download
1
Embed Size (px)
Citation preview
Racket 1. JAKSO
2
Racket-lauseke
KOODIAAPINEN MOOC – KEVÄT 2016
(+ 2 3)
funktio argumentit
KOODIAAPINEN MOOC – KEVÄT 2016 3
Lausekkeen sisällä voi olla lausekkeita
(/ (+ 2 3) (- 6 4))
funktio argumentit
KOODIAAPINEN MOOC – KEVÄT 2016 4
Funktio palauttaa arvon
circle(funktio)
100
”solid”
”red”
+(funktio)
ARGUMENTIT
100
30
PALUUARVO
130
KOODIAAPINEN MOOC – KEVÄT 2016 5
Racket BSL – kieli Funktioiden käyttöohjeet löytyvät Koodarin käsikirjasta.
argumenttien tyypit
esimerkit
funktion nimi paluuarvon tyyppi
KOODIAAPINEN MOOC – KEVÄT 2016 6
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 – KEVÄT 2016 7
Peruskuvioiden piirtofunktiot
Ohjeet peruskuvioiden piirtämiseen sekä kuvioiden yhdistämiseen löydät Koodarin käsikirjasta.
saat lisätietoa linkin kautta
KOODIAAPINEN MOOC – KEVÄT 2016 8
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 – KEVÄT 2016 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
LAUSEKE
LUKU
MERKKIJONO
MÄÄRITTELYIKKUNA
KIRJASTO
MUUTTUJA
VAKIO
KOODIAAPINEN MOOC – KEVÄT 2016 10
Pikanäppäimet nopeuttavat koodaamistaToiminto 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 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ä...
Racket DEBUGGAUS
Palaa tähän kohtaan, kun törmäät virheilmoituksiin!
KOODIAAPINEN MOOC – KEVÄT 2016 13
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 – KEVÄT 2016 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 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 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 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 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 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 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 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 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 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 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 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”