Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Racket Turtle

728 views

Published on

Alkeet-perus-jatko
Koodausta kouluun - opettajan materiaali

Published in: Education
  • Be the first to comment

  • Be the first to like this

Racket Turtle

  1. 1. Racket – Turtle ALKEET-PERUS- JATKO
  2. 2. Sisällysluettelo RACKET TURTLE – ALKEET 1. Peruskomennot RACKET TURTLE – PERUSTEET 2. Muuttujat ja funktiot RACKET TURTLE – JATKO 3. Toistorakenteet 2
  3. 3. Racket Turtle Listojen, rekursion sekä Higher Order -funktioiden opetteluun kehitetty kirjasto (require teachpacks/racket-turtle) Vaatii teachpacks – paketin asentamisen (WeSchemessä eri nimi!) Tarjoaa helpon tavan kokeilla toistoa (repeat) Sisältää peilauksen sekä laimasintoiminnon 3
  4. 4. 1. Peruskomennot Turtlea ohjataan komentolistoilla, jotka annetaan ”draw” tai ”draw-step-by-step”-funktioille Komentolista on muotoa (list (…)(…)(…)) Racket-turtlen peruskomennot ovat: ◦ forward ◦ turn-left,turn-right ◦ repeat ◦ pen-up, pen-down ◦ go-to ◦ change-color 4
  5. 5. forward & turn-left (define neliö (list (forward 100) (turn-left 90) (forward 100) (turn-left 90) (forward 100) (turn-left 90) (forward 100) (turn-left 90))) (draw neliö ) 5
  6. 6. (define sivu (list (forward 100) (turn-left 90)) (define toisto-neliö (repeat 4 sivu )) (draw toisto-neliö) repeat 6 sivu
  7. 7. pen-up, pen-down, go-to, change-color (define kaksi-neliötä (list neliö (pen-up) (go-to 350 50) (change-color "red") (pen-down) neliö)) (draw kaksi-neliötä) 7
  8. 8. Peruskuvioita Racket Turtlella Ympyrä on monikulmio, jossa on hyvin lyhyet sivut ja erittäin monta kulmaa. Montako? 8
  9. 9. Kukkia Racket Turtlella Kukan terälehti muodostuu kaaresta, joka on ympyrän osa... 9
  10. 10. 2. Muuttujat ja funktiot Turtle – komentolistoja voi muodostaa myös funktioiden avulla. Voimme tehdä erikokoisia ja värisiä kolmioita tekevän komentolistan muodostavan funktion: tee-kolmio. Muuttujat (parametrit) olisivat sivu ja väri. Esim. (tee-kolmio 100 ”red”) palauttaisi komentolistan, joka toteuttaa tämän kuvan: 10
  11. 11. tee-kolmio (define (tee-sivu sivu kulma väri) (list (change-color väri) (forward sivu) (turn-left kulma))) (define (tee-kolmio sivu väri) (repeat 3 (tee-sivu sivu 120 väri))) (draw (tee-kolmio 100 ”red”)) 11 apufunktio
  12. 12. Monikulmiot funktion avulla Voit tehdä edellisen harjoituksen myös funktioiden avulla (kulmien määrä on nyt parametrina) (define (tee-monikulmio sivu kulmat väri) … ) Vihje 1: käytä apuna tee-sivu –apufunktiota Vihje 2: koko kuviossa pitää kääntyä yhteensä 360° 12
  13. 13. 3. Toistorakenteet Racket Turtlella voidaan tehdä kuvioita, jotka sisältävät toistoa joko käyttämällä rekursiivisia funktioita tai Higher Order –funktioita. Erityisen kätevä on map käytettynä range:n kanssa. map on Higher Order – funktio, joka ottaa argumenttina funktion sekä listan ja syöttää listan alkiot yksi kerrallaan funktiolle. map palauttaa saadut paluuarvot listan muodossa. Esim. Tähtilista: (define (tähti koko) (star koko ”solid” ”red”)) (map tähti (range 5 35 5)) 13 Listassa tähtien koot
  14. 14. Turtle spiraali - rekursiolla Kuvan spiraalin voi tehdä kahdella eri tavalla A) Rekursiivinen ratkaisu (define (sivu s) (list (forward s) (turn-left 90))) (define (spiraali matka max) (if (>= matka max) empty (cons (sivu matka) (spiraali (+ matka 5) max)))) (draw (spiraali 5 300)) 14
  15. 15. Turtle spiraali – map:llä B) Ratkaisu Higher Order – funktioiden avulla (define (sivu s) (list (forward s) (turn-left 90))) (define SPIRAALI (map sivu (range 5 300 5))) (draw SPIRAALI) 15
  16. 16. Leimasinlista Turtlelle voidaan antaa lista kuvia leimasimeksi. Kuvassa oleva tähtispiraali on saatu aikaan poistamalla kynä ja lisäämällä tilalle leimasinlista, jossa on kasvavia tähtiä. ... (stamper-on TÄHDET) 16

×