racket mooc - 1. viikko

24
Racket 1. VIIKKO

Upload: tiina-partanen

Post on 14-Apr-2017

7.501 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Racket MOOC - 1. viikko

Racket 1. VIIKKO

Page 2: Racket MOOC - 1. viikko

2

Racket-lauseke

2

(+ 2 3)

funktio argumentit

Page 3: Racket MOOC - 1. viikko

Lausekkeen sisällä voi olla lausekkeita

33

(/ (+ 2 3) (- 6 4))

funktio argumentit

Page 4: Racket MOOC - 1. viikko

KOODIAAPINEN MOOC - SYKSY 2015

Funktio palauttaa arvon

circle(funktio)

100

”solid”

”red”

+(funktio)

ARGUMENTIT

100

30

PALUUARVO

130

Page 5: Racket MOOC - 1. viikko

KOODIAAPINEN MOOC - SYKSY 2015

Racket BSL – kieli Funktioiden käyttöohjeet löytyvät Koodarin käsikirjasta.

argumenttien tyypit

esimerkit

funktion nimi paluuarvon tyyppi

Page 6: Racket MOOC - 1. viikko

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.

Page 7: Racket MOOC - 1. viikko

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

Page 8: Racket MOOC - 1. viikko

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

Page 10: Racket MOOC - 1. viikko

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ä...

Page 11: Racket MOOC - 1. viikko

Racket DEBUGGAUS

Palaa tähän kohtaan, kun törmäät virheilmoituksiin!

Page 12: Racket MOOC - 1. viikko

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

Page 13: Racket MOOC - 1. viikko

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”.

Page 14: Racket MOOC - 1. viikko

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”.

Page 15: Racket MOOC - 1. viikko

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”

Page 16: Racket MOOC - 1. viikko

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”.

Page 17: Racket MOOC - 1. viikko

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”

Page 18: Racket MOOC - 1. viikko

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”

Page 19: Racket MOOC - 1. viikko

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”

Page 20: Racket MOOC - 1. viikko

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”

Page 21: Racket MOOC - 1. viikko

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”))

Page 22: Racket MOOC - 1. viikko

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ä)

Page 23: Racket MOOC - 1. viikko

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”

Page 24: Racket MOOC - 1. viikko

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”