Racket ohjelmointia. Tiina Partanen 2014

Samankaltaiset tiedostot
Racket ohjelmointia I

Racket ohjelmointia osa 1. Tiina Partanen Lielahden koulu 2014

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

Racket ohjelmointia II. Tiina Partanen 2015

Racket ohjelmointia II. Tiina Partanen 2015

Tiina Partanen. Koodaamassa Matikantunnilla

Bootstrap / HTDP2 / Realm of Racket. Vertailu

OHJ-1151 Ohjelmointi IIe

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta

Yläkoulun ohjelmointia

Flash ActionScript osa 4

DIGITAALISEN TARINAN TUOTTAMINEN MICROSOFT PHOTO STORY 3- OHJELMAN AVULLA VAIHEINEEN

ITKP102 Ohjelmointi 1 (6 op)

ASCII-taidetta. Intro: Python

Ohjelmoinnin perusteet Y Python

4A 4h. KIMMOKERROIN E

Lue ohjeet huolellisesti ennen laitteen käyttöä.

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

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

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Johdatus ohjelmointiin

Windows Live SkyDrive - esittely

Tasogeometriaa GeoGebran piirtoalue ja työvälineet

6. Harjoitusjakso II. Vinkkejä ja ohjeita

Huomaathan, että ohjeessa olevat näytöistä otetut kuvat voivat poiketa sinun koulutuksesi vastaavien sivujen kuvista.

Taulukkolaskenta II. Taulukkolaskennan edistyneempiä piirteitä

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Hae Opiskelija käyttöohje

Ohjelmoinnin perusteet Y Python

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

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

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

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

Verkkosivut perinteisesti. Tanja Välisalo

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

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

Ohjelmoinnin perusteet Y Python

Valitse Opinto-oikeudet

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

Matkahuolto lisäosa WooCommerce alustalle (c) Webbisivut.org

Kuvan pienentäminen Paint.NET-kuvankäsittelyohjelmalla

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

Merkintöjen tekeminen pohjakuvaan Libre Officella v.1.2

Excel syventävät harjoitukset

UpdateIT 2010: Uutisten päivitys

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

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Ohjelmoinnin perusteet Y Python

Maisema-arkkitehtuurin perusteet 1A, syksy 2015 Pinnanmuodot-tehtävään ArcMap-ohjeet

Johdatus diskreettiin matematiikkaan Harjoitus 7,

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

PIKAOPAS Microsoft Surface Hub

Epsonin kokousratkaisut INTERAKTIIVISTEN PROJEKTORIEN PIKAOPAS

EXAM Kypsyysnäytteen laatiminen ja arviointi

7. Näytölle tulostaminen 7.1

Mainoksen taittaminen Wordilla

OUTI-verkkokirjaston opastus

Ohjelmoinnin perusteet Y Python

Ohje PhotoPortaalin käytöstä

Osion kaksi kertaus. Jukka Juslin. Jukka Juslin

Message Broadcasting. Käyttöympäristö. Message Broadcasting -laajennuksen asentaminen. Viestien luominen

ITKP102 Ohjelmointi 1 (6 op)

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

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

Asteri Kirjanpito Dos ALV% nousu 1 %-yksiköllä Vuosipäivitys

Tuplaturvan tilaus ja asennusohje

Lisää segmenttipuusta

2. Kirjoita sähköpostiosoitteesi sille varattuun kenttään ja paina Lähetä varmistusviesti -painiketta.

Opettajan ohje kypsyysnäytteen toteuttamiseen ja arvioimiseen sähköisenä tenttinä

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

PlanMan Project projektihallintaohjelmisto koulutusohjeistus

ITKP102 Ohjelmointi 1 (6 op)

zotero

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

HYVÄKSILUKEMISEN TEKEMINEN ILMAN ENNAKKOPÄÄTÖSTÄ

Ohjelmoinnin perusteet Y Python

Ilmoittautuminen kansalliseen, SM-, AM- tai avoimeen kilpailuun

Lumme-verkkokirjaston tiedonhaun opas Pieksämäen kaupunginkirjasto

Luento 5. Timo Savola. 28. huhtikuuta 2006

- Jalkapalloa jokaiselle -

Jypelin käyttöohjeet» Ruutukentän luominen

Kahoot! Kirjautuminen palveluun. Sinikka Leivonen

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

Ohjelmointi 1 C#, kevät 2013, 2. tentti

Osa 7: Hahmojen ohjelmointi ja hienosäätö

TEEMA 2 Aineistot. Kirjautuminen Moodleen. Sisältö. Kirjaudut Moodleen sivulta Voit vaihtaa kielen valikosta.

Ohjelmoinnin peruskurssi Y1

Ohje hakulomakkeen täyttämiseen yliopistohaku.fi -palvelussa

ITKP102 Ohjelmointi 1 (6 op)

1 Funktiot, suurin (max), pienin (min) ja keskiarvo

HYVÄKSILUKEMISEN TEKEMINEN ILMAN ENNAKKOPÄÄTÖSTÄ

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

Transkriptio:

Racket ohjelmointia Tiina Partanen 2014

Sisältö 1) Peruslaskutoimitukset 2) Peruskuvioiden piirtäminen 3) Määrittelyt (define) 4) Yhdistettyjen kuvien piirtäminen 5) Muuttujat ja funktiot 6) Animaatiot ja pelit (big-bang) 7) Listat 8) Funktio parametrina 2

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

1a. 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 tulee operaattori (esim. +) ja sitten numerot. 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

1b. 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. 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

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

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

5a. Muuttujat ja funktiot Funktion avulla voidaan kirjoittaa uudelleenkäytettävää koodia (kirjoita kerran, kutsu useasti) Valitaan funktiolle kuvaava nimi: maalaa-auto Selvitetään mitkä asiat ovat muuttujia, annetaan niille nimet: k-väri r-väri Esim. (maalaa-auto green red ) palauttaisi tämän auton 23

5b. Funktion määrittely Funktion esittely (kommenttiriville, helpottaa funktion käyttöä, hyvä tapa): funktion nimi : parametrien tyypit -> paluuarvon tyyppi ;; maalaa-auto : merkkijono merkkijono -> kuva Funktion määrittely: (define (maalaa-auto k-väri r-väri) (..)) Muuta funktion sisällä vakiot (esim. red ) muuttujiksi (= kirjoita niiden tilalle joko k-väri tai r- väri) 24

5c. Apufunktiot Koodi kannattaa aina rakentaa pienemmistä osista. Koska auto muodostuu renkaista ja korista tee ensin apufunktiot: ;; maalaa-kori : merkkijono -> kuva ;; maalaa-rengas : merkkijono -> kuva ;; maalaa-renkaat : merkkijono -> kuva Kutsu näitä apufunktioita maalaa-auto funktiosta ;; maalaa-auto : merkkijono merkkijono -> kuva Vihje: käytä apuna koodaushaaste 1:n koodia 25

Koodaushaaste 2 Tee uusi maalaa-tekstiauto - funktio, joka ottaa auton renkaiden ja korin värin lisäksi parametrina myös tekstin sekä tekstin värin. ;; maalaa-tekstiauto : teksti t-väri r-väri k-väri -> kuva Vihje: Kutsu vanhaa maalaa-auto funktiota tämän uuden funktion sisältä.

6. Animaatiot ja pelit (big-bang) big-bang funktio mahdollistaa interaktiiviset pelit ja animaatiot. Se kutsuu ohjelmoijan itsensä kirjoittamia funktioita, kun jotakin tarvitsee tehdä. Tähän tarvitset uutta kirjastoa: 2htdp/universe. (big-bang LÄHTÖ (to-draw..) (on-tick..) (on-key..) (stop-when..)) piirrettävä näytölle aika kuluu käyttäjä painoi näppäintä lopetusehto

2htdp/universe : big-bang (on-tick..) big-bang (on-key..) (to-draw..) (stop-when..)

Käynnistetään auto! Lataa tästä koodi, jolla saat autosi liikkumaan Kopioi tiedostoon kirjoittamasi maalaa-auto - funktio (+apufunktiot), tallenna se ja paina run Auto lähtee liikkeelle kun painat k = kaasu, ja se jarruttaa kun painat j = jarru Jos autosi ei aja maanpinnalla, korjaa koodia 29

7a. Listat Lista on tietorakenne, johon voi tallentaa monta tietoa esim. auton kuvia (list (maalaa-auto black red ) ) Listalle voi antaa myös nimen (define AUTOJONO (list )) 30

7b. Listan käsittely Ota listan ensimmäinen (first AUTOJONO) Ota listan viimeinen (last AUTOJONO) Ota kaikki muut paitsi ensimmäinen (rest AUTOJONO) Miten saat keskimmäisen auton? 31

8. Funktio parametrina map funktiolle voi antaa funktion parametrina ja se suorittaa ko. funktion jokaiselle annetun listan jäsenelle Määritellää uusi funktio käännä: (define (käännä x) (rotate 90 x)) Kutsu map-funktiota: (map käännä AUTOJONO) funktio parametrina lista parametrina 32

(rotate 30 KOLMIO) 30

Koodaushaaste 3 Tee funktio joka pienentää autot ja pienennä sen avulla AUTOLISTAN autot Vihje: pienennysohje seuraavalla sivulla 34

Kuvan voi tuoda DrRacketiin myös tiedostosta. Valitse valikosta: Insert Insert image

Lisää harjoituksia Koodauksen ABC - blogi http://koodauksenabc.blogspot.fi Blogin kautta jaossa materiaalia: DrRacket - piirtäminen DrRacket - animaatio Opettajien Racket-kurssi osa 1 Opettajien Racket-kurssi osa 2 36

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/ 37

Lisää lukemista Realm of Racket kirja http://www.amazon.com/realm-racket- Learn-Program-Game/dp/1593274912 38