Racket ohjelmointia I

Samankaltaiset tiedostot
Racket ohjelmointia. Tiina Partanen 2014

Racket ohjelmointia osa 1. Tiina Partanen Lielahden koulu 2014

Racket ohjelmointia II. Tiina Partanen 2015

Tiina Partanen. Koodaamassa Matikantunnilla

Racket ohjelmointia II. Tiina Partanen 2015

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

Bootstrap / HTDP2 / Realm of Racket. Vertailu

Tekijät: Hellevi Kupila, Katja Leinonen, Tuomo Talala, Hanna Tuhkanen, Pekka Vaaraniemi

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

OHJ-1151 Ohjelmointi IIe

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Tasogeometriaa GeoGebran piirtoalue ja työvälineet

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla (Opettajan ohje)

Ohjelmoinnin perusteet Y Python

Asenna myös mikroskopian lisäpala (MBF ImageJ for Microscopy Collection by Tony Collins)

Ohjelmoinnin perusteet Y Python

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta

Pienoismallien rakentaminen Linnanmäen laitteista

Flash ActionScript osa 4

Python-ohjelmointi Harjoitus 5

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet

ASCII-taidetta. Intro: Python

6. Harjoitusjakso II. Vinkkejä ja ohjeita

Merkintöjen tekeminen pohjakuvaan Libre Officella v.1.2

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

Ohjelmoinnin perusteet Y Python

Luento 5. Timo Savola. 28. huhtikuuta 2006

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet

3. Kuvio taitetaan kuutioksi. Mikä on suurin samaa kärkeä ympäröivillä kolmella sivutahkolla olevien lukujen tulo?

DIGITAALISEN TARINAN TUOTTAMINEN MICROSOFT PHOTO STORY 3- OHJELMAN AVULLA VAIHEINEEN

Yläkoulun ohjelmointia

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

ITKP102 Ohjelmointi 1 (6 op)

Epäyhtälön molemmille puolille voidaan lisätä sama luku: kaikilla reaaliluvuilla a, b ja c on voimassa a < b a + c < b + c ja a b a + c b + c.

Ohjelmoinnin perusteet Y Python

Palavirkkausta Qvidi-Minan tapaan

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

30 + x ,5x = 2,5 + x 0,5x = 12,5 x = ,5a + 27,5b = 1,00 55 = 55. 2,5a + (30 2,5)b (27,5a + 27,5b) =

Johdatus ohjelmointiin

Tietorakenteet (syksy 2013)

Python-ohjelmointi Harjoitus 2

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 6 Kerta Toteuta Pythonilla seuraava ohjelma:

Sähköpostiohjeet. Tehokas ja huoleton sähköposti

3. Harjoitusjakso I. Vinkkejä ja ohjeita

Ohjelmoinnin perusteet Y Python

Valokuvien matematiikkaa

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Luvuilla laskeminen. Esim. 1 Laske

Ohjelmoinnin peruskurssi Y1

Osion kaksi kertaus. Jukka Juslin. Jukka Juslin

4A 4h. KIMMOKERROIN E

Trigonometriaa ja solve-komento GeoGebralla

Ohjelmoinnin perusteet Y Python

Matematiikan tukikurssi

ClassPad 330 plus ylioppilaskirjoituksissa apuna

Matlabin perusteita Grafiikka

GeoGebra Quickstart. Lyhyt GeoGebra 2.7 -ohje suomeksi

monissa laskimissa luvun x käänteisluku saadaan näyttöön painamalla x - näppäintä.

ITKP102 Ohjelmointi 1 (6 op)

4. Lausekielinen ohjelmointi 4.1

Johdatus Ohjelmointiin

ITKP102 Ohjelmointi 1 (6 op)

Tutoriaaliläsnäoloista

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Osa 7: Hahmojen ohjelmointi ja hienosäätö

Ohjelmoinnin peruskurssien laaja oppimäärä

7. Näytölle tulostaminen 7.1

Hannu Mäkiö. kertolasku * jakolasku / potenssiin korotus ^ Syöte Geogebran vastaus

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1

Massaeditorikoulutus KANSALLISKIRJASTO - Kirjastoverkkopalvelut

ITKP102 Ohjelmointi 1 (6 op)

- Valitaan kohta Asetukset / NAT / Ohjelmallinen palvelin - Seuraavassa esimerkki asetuksista: valitaan käytössä oleva ohjelmistorajapinta

MAA10 HARJOITUSTEHTÄVIÄ

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

( ) ( ) ( ) ( ( ) Pyramidi 4 Analyyttinen geometria tehtävien ratkaisut sivu 271 Päivitetty a) = keskipistemuoto.

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Syksyn 2015 Lyhyen matematiikan YO-kokeen TI-Nspire CAS -ratkaisut

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssien laaja oppimäärä

Tietotyypit ja operaattorit

Windows Live SkyDrive - esittely

Asenna myös mikroskopian lisäpala (MBF ImageJ for Microscopy Collection by Tony Collins)

Opettajalle ohje opintojakson toteutuksen tekemiselle mallipohjana ja mallipohjan tuominen opintojakson toteutukseen.

Harjoitustyö: virtuaalikone

Ohje PhotoPortaalin käytöstä

- Kommentoi koodisi. Koodin kommentointiin kuuluu kuvata metodien toiminta ja pääohjelmassa tapahtuvat tärkeimmät toiminnat. Esim.


Taulukkolaskenta II. Taulukkolaskennan edistyneempiä piirteitä

Keskeneräisten tarujen kirja

Ohjelmoinnin peruskurssi Y1

Hae Opiskelija käyttöohje

Johdatus diskreettiin matematiikkaan Harjoitus 7,

3. Piirrä kaksi tasoa siten, että ne jakavat avaruuden neljään osaan.

Transkriptio:

Racket ohjelmointia I Tiina Partanen 2015

Sisältö 1) Racket-kieli ja DrRacket 1.1 DrRacket esivalmistelut 1.2 Peruslaskutoimitukset 2) Piirtotyökalut 2.1 Peruskuvioiden piirtäminen 2.2 Määrittelyt (define) 2.3 Yhdistettyjen kuvien piirtäminen 3) Racket-turtle kuviot 3.1 Racket-turtle ja listat 3.2. Muuttujat ja funktiot (+ 2 3) 2

1.1 DrRacket esivalmistelut Asenna ilmainen DrRacket: http://racket-lang.org/download/ Valitse kieleksi harjoittelukieli (rajoitetumpi Racket + helpommat virheilmoitukset): Language Choose language Teaching languages Beginning student TAI Racket (ei rajoituksia) Language Choose language Racket language tässä tapauksessa jokainen kooditiedosto täytyy aloittaa rivillä: #lang racket 3

1.2 Peruslaskut Racketilla ;; Esimerkit: ;; Laske: 2 + 3 (+ 2 3) ;; Laske: 9 4 (- 9 4) ;; Laske: 7 * 3 (* 7 3) ;; Laske: 8 : 3 (/ 8 3) DrRacket on kuin iso laskin. Erona tavalliseen laskimeen, Racket-lauseke aloitetaan aina sulkumerkillä, sitten kerrotaan mitä tehdään (esim. +) ja lopuksi annetaan luvut. Lauseke suljetaan sulkumerkillä. Kirjoita lausekkeet DrRacketin ylempään ikkunaan ja paina run. Vastaukset ilmestyvät alempaan ikkunaan. Voit myös kirjoittaa ne alempaan ikkunaan ja painaa <enter>. 4

1.3 Moniosaiset laskut Racketillä ;; 18-5 + 7 (+ (- 18 5) 7) 1. 2. ;; 5 + 15 : 3 (+ 5 (/ 15 3)) 1. Aloita siitä laskutoimituksesta, joka on laskujärjestyksen mukaan ensimmäinen. Seuraava laskutoimitus tehdään tämän ympärille. Rakennat siis Racket-lauseketta kuin kasvattaisit sipuliin uusia kerroksia. 2. 5

2.1 Peruskuvioiden piirtäminen Jotta kuvioita voi piirtää, täytyy ottaa käyttöön grafiikkakirjasto. Kirjoita alla oleva teksti DrRacketin ylempään ikkunaan ja paina run. (require 2htdp/image) Kokeile seuraavia piirtofunktioita joko ylemmässä ikkunassa (ja paina run ) tai alemmassa ikkunassa (ja paina <enter>). 6

(circle 100 "solid" "red ) 100

(rectangle 200 100 solid blue ) 100 200

(triangle 100 solid yellow ) 100

(rectangle 100 100 outline green ) 100 100

(right-triangle 100 200 outline brown ) 200 100

2.2 Määrittelyt (define) Koodia voi yksinkertaistaa tekemällä määrittelyjä eli antamalla jollekin koodinpätkälle nimen Määrittely kirjoitetaan ylempään ikkunaan ja painetaan run esim. (define YMPYRÄ (circle 50 solid red )) Määrittelyä voi nyt käyttää kirjoittamalla YMPYRÄ alempaan ikkunaan (+ paina <enter>) 12

(define SUORAKULMIO (rectangle 200 100 solid blue )) ) 13

(define YMPYRÄ (circle 100 solid red )) ) 14

2.3 Yhdistettyjen kuvien piirtäminen Peruskuvioita saadaan päällekkäin käyttämällä overlay - funktiolla Kuvat saadaan vierekkäin, allekkain tai päällekkäin overlay/xy funktiolla 15

(overlay SUORAKULMIO YMPYRÄ)

(overlay/xy SUORAKULMIO 0 0 YMPYRÄ)

(overlay/xy SUORAKULMIO 100 0 YMPYRÄ) 100

(overlay/xy SUORAKULMIO 0 50 YMPYRÄ) 50

(text punainen 38 red ) (overlay TEKSTI SUORAKULMIO)

Koodaushaaste 1 Tee Japanin lippu (define JAPANIN-LIPPU..) Tee auto (define AUTO..) Vihje: määrittele ensin KORI, RENGAS ja RENKAAT. Käytä näitä, kun teet AUTO:n 21

Lisätehtäviä Tee Suomen lippu (define SUOMEN-LIPPU..) Lisää autoosi teksti 22

3.1 Racket-turtle ja listat Racket-turtle on kirjasto, joka piirtää viivakuvioita (lataa Racket_turtle.zip) Turtlea ohjataan komentolistoilla, jotka annetaan piirrä tai piirrä-osissa -funktioille Komentolista on muotoa (list ( )( )( )) Racket-turtlen komennot ovat: forward turn-left,turn-right repeat pen-up, pen-down change-color 23

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))) ----------------------------------------- > (piirrä neliö ) 24

repeat (define sivu (list (forward 100) (turn-left 90)) (define toisto-neliö (repeat 4 sivu )) ------------------------------------- > (piirrä toisto-neliö) 25

pen-up, pen-down, change-color (define siirry1 (list (pen-up) (turn-right 90) (forward 100) (pen-down) (change-color "red"))) (define kaikki-kuviot (list neliö siirry1 neliö siirry2...)) 26

Koodaushaaste 2 Avaa tiedosto turtle_harjoitukset_1.rkt ja tee sen ohjeiden mukaisesti: suorakulmio, kolmio, kuusikulmio, suunnikas, ympyrä ja oma kuvio. Lisätehtävä: Piirrä kuviot samaan kuvaan. 27

Koodaa kukkanen Lisätehtävä 28

3.2. Muuttujat ja funktiot Funktion avulla voidaan kirjoittaa uudelleenkäytettävää koodia (kirjoita kerran, kutsu useasti) Valitaan funktiolle kuvaava nimi: tee-kolmio Selvitetään mitkä asiat ovat muuttujia, annetaan niille nimet: sivu väri Esim. (tee-kolmio 100 red ) palauttaisi komentolistan, joka toteuttaa tämän kuvan 29

Funktion määrittely Funktion esittely (kommenttiriville, helpottaa funktion käyttöä, hyvä tapa): funktion nimi : parametrien tyypit -> paluuarvon tyyppi ;; tee-kolmio : numero merkkijono -> komentolista Funktion määrittely: (define (tee-kolmio sivu väri) (..)) Funktion koodissa muuttujiin viitataan niiden nimillä (sivu, väri) 30

Apufunktiot Koodi kannattaa aina rakentaa pienemmistä osista. Koska kolmio muodostuu sivuista, tehdään apufunktio, jotka tekee komentolistan yhdelle sivulle: ;; tee-sivu : numero numero merkkijono -> komentolista Tämä funktio tekee komentolistan koko kolmiolle: ;; tee-kolmio : numero merkkijono -> komentolista

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))) -------------------------------------- > (piirrä (tee-kolmio 100 red )) 32

Koodaushaaste 3 Tee funktio, jonka avulla voi piirtää eri värisiä ja kokoisia säännöllisiä monikulmioita (ottaa parametrina kulmien määrän) (define (tee-monikulmio sivu kulmat väri) ) Vihje 1: käytä apuna tee-sivu apufunktiota Vihje 2: koko kuviossa pitää kääntyä yhteensä 360 33

Lisätehtävä Kokeile alla olevaa koodia, vaihda parametreja ja leiki (define (sivu-ja-kulma s k) (list (forward s) (turn-left k))) (define (silmukka-kuvio s k kerrat ohjeet) (if (<= kerrat 0) ohjeet (silmukka-kuvio (+ s 5) k (sub1 kerrat) (append ohjeet (sivu-ja-kulma s k))))) --------------------------------------------------------- > (piirrä (silmukka-kuvio 1 90 20 '())) 34

Koodauksen ABC - blogi Lisää harjoituksia http://koodauksenabc.blogspot.fi Blogin kautta on jaossa materiaalia: Opettajien Racket - koulutukset 35

Lisää toiminnallisuutta 2htdp/image sisältää myös paljon muita piirtofunktioita joihin voit tutustua itse näillä sivuilla: http://docs.racketlang.org/teachpack/2htdpimage.html Racket:lla voi koodata ihan mitä tahansa! Tutustu Racket kieleen näillä sivuilla: http://racket-lang.org/ 36

Koodausta kouluun Koodausta kouluun projektissa on tarkoitus tehdä oppimateriaalia ohjelmoinnin opettamiseen peruskoulussa (matematiikan ehdoilla) Haluatko olla mukana ideoimassa tai testaamassa, tai kaipaatko apua Racket-ohjelmointiin? Liity Koodausta kouluun facebook ryhmään se on sinua varten! 37