Racket ohjelmointia osa 1. Tiina Partanen Lielahden koulu 2014

Samankaltaiset tiedostot
Racket ohjelmointia. Tiina Partanen 2014

Racket ohjelmointia I

Tiina Partanen. Koodaamassa Matikantunnilla

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

Racket ohjelmointia II. Tiina Partanen 2015

Bootstrap / HTDP2 / Realm of Racket. Vertailu

ASCII-taidetta. Intro: Python

TIEA341 Funktio-ohjelmointi 1, kevät 2008

ITKP102 Ohjelmointi 1 (6 op)

Luvuilla laskeminen. Esim. 1 Laske

Differentiaali- ja integraalilaskenta 1. Tietokoneharjoitus: ratkaisut

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Excel syventävät harjoitukset

Luento 2: Tulostusprimitiivit

7. Näytölle tulostaminen 7.1

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

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

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

ITKP102 Ohjelmointi 1 (6 op)

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

Verkkojulkaiseminen Minna Väisänen. HTML5-tehtävä

Ohjelmoinnin perusteet Y Python

Python-ohjelmointi Harjoitus 5

Tasogeometriaa GeoGebran piirtoalue ja työvälineet

Apuja ohjelmointiin» Yleisiä virheitä

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

GeoGebra-harjoituksia malu-opettajille

ITKP102 Ohjelmointi 1 (6 op)

Yläkoulun ohjelmointia

PERUSLASKUJA. Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +5^2

Visma.net Approval. Versiosaate 1.40

Mainoksen taittaminen Wordilla

STS Uuden Tapahtuma-dokumentin teko

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Lyhyt kertaus osoittimista

Ohjelmoinnin perusteet Y Python

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

Ohjelmoinnin perusteet Y Python

Tilastolliset ohjelmistot A. Pinja Pikkuhookana

Scratch ohjeita. Perusteet

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

DIGITAALISEN TARINAN TUOTTAMINEN MICROSOFT PHOTO STORY 3- OHJELMAN AVULLA VAIHEINEEN

Trigonometriaa ja solve-komento GeoGebralla

Ohjelmoinnin perusteet Y Python

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

GeoGebra Quickstart. Lyhyt GeoGebra 2.7 -ohje suomeksi

Visma Fivaldi -käsikirja Asiakaskohtaiset hinnat

Olio-ohjelmointi Syntaksikokoelma

KAPPALEMUOTOILUT. Word Kappalemuotoilut

Kenguru 2015 Mini-Ecolier (2. ja 3. luokka) RATKAISUT

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

Ohjelmoinnin perusteet Y Python

Kuvat. 1. Selaimien tunnistamat kuvatyypit

Digitaalisen median tekniikat css tyylimääritykset jatkuu

Digitaalisen median tekniikat css tyylimääritykset jatkuu Harri Laine 1

Flash ActionScript osa 4

NOKIAN KESÄRENKAAT

Tilastolliset toiminnot

Groovy. Niko Jäntti Jesper Haapalinna Group 31

Johdanto: Jaetut näytöt Jaetun näytön asetukset ja näytöstä poistuminen Aktiivisen sovelluksen valitseminen

6. Harjoitusjakso II. Vinkkejä ja ohjeita

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

WCONDES OHJEET ITÄRASTEILLE (tehty Condes versiolle 8)

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Ohjelmoinnin perusteet Y Python

Excel Perusteet Päivi Vartiainen 1

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

TAULUKKORYHMÄT. Sisällysluettelo

OHJELMOINNIN POHJUSTUSTA PÄÄTTELYÄ JA ERI VAIHTOEHTOJEN TUTKIMISTA

Fx-CP400 -laskimella voit ratkaista yhtälöitä ja yhtälöryhmiä eri tavoin.

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. kesäkuuta 2013

Taulukot, taulukkoryhmät Sisällysluettelo

Valokuvien matematiikkaa

Kenguru 2014 Ecolier (4. ja 5. luokka)

Timmi järjestelmään rekisteröityminen ja käyttöoikeuksien laajentaminen

tietueet eri tyyppisiä tietoja saman muuttujan arvoiksi

Aloitusohje versiolle 4.0

Muuttujien määrittely

Ohjelmoinnin perusteet Y Python

Kahoot! Kirjautuminen palveluun. Sinikka Leivonen

Python-ohjelmointi Harjoitus 2

Sähköposti ja uutisryhmät

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Tieto- ja tallennusrakenteet

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

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

SeaMonkey pikaopas - 1

OKLV120 Demo 7. Marika Peltonen

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

Johdatus Ohjelmointiin

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

6. Valitse avautuneesta ikkunasta Add-painike!

Osa. Mitä ovat vakiot jäsenfunktiot Kuinka erotetaan luokan käyttöliittymä sen toteutuksesta

Ohjelmoinnin perusteet Y Python

Transkriptio:

Racket ohjelmointia osa 1 Tiina Partanen Lielahden koulu 2014

Sisältö 1) Peruslaskutoimitukset 2) Peruskuvioiden piirtäminen 3) Määrittelyt (define) 4) Yhdistettyjen kuvien piirtäminen 5) Muuttujat ja funktiot 6) Listat 7) 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-lasku aloitetaan aina sulkumerkillä, sitten tulee operaattori (esim. +) ja sitten numerot. Lasku suljetaan sulkumerkillä. Kirjoita laskut DrRacketin ylempään ikkunaan ja paina run. Vastaukset ilmestyvät alempaan ikkunaan. 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 funktioilla 15

(overlay SUORAKULMIO YMPYRÄ)

(overlay/xy SUORAKULMIO 0 0 YMPYRÄ)

(overlay/xy SUORAKULMIO 100 0 YMPYRÄ) 100

(overlay/xy SUORAKULMIO 0 50 YMPYRÄ) 50

Koodaushaaste 1 Tee Japanin lippu (define JAPANIN-LIPPU..) Tee auto (define AUTO..) 20

Kotitehtävä/lisätehtävä Tee Suomen lippu (define SUOMEN-LIPPU..) 21

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 22

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) (< siirrä tähän autokoodi, katso koodaushaaste 1>) AUTO) Muuta autokoodin vakiot (esim. red ) muuttujiksi (= kirjoita niiden tilalle joko k-väri tai r-väri) 23

6a. 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 )) 24

6b. 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? 25

7. Funktio parametrina map funktiolle voi antaa funktion parametrina ja se ajaa ko. funktion jokaiselle annetun listan jäsenelle funktio parametrina lista 26

Koodaa pacmanit Koodaushaaste 2 (define PACMAN-YLÖS..) (define PACMAN-ALAS..).. VIHJE: tämän PowerPointin lopussa on esitelty funktioita joista voi olla apua 27

Koodaushaaste 3 Tee funktio joka palauttaa pyydetyn pacmanin ;; anna-pacman : numero -> kuva Esim. (anna-packman OIKEALLE) VIHJE: anna suunnille nimet definellä (define OIKEALLE 0) (define YLÖS 90).. BONUS-tehtävä: Lisää funktioon vapaaehtoinen parametri : väri ja/tai koko 28

(flip-vertical KOLMIO)

(rotate 30 KOLMIO) 30

(overlay/align center top KOLMIO SUORAKULMIO)

(overlay/align center bottom KOLMIO SUORAKULMIO)

(overlay/align left center KOLMIO SUORAKULMIO)

(overlay/align right bottom KOLMIO SUORAKULMIO)

(crop 0 0 200 100 YMPYRÄ) (0, 0) (200, 100)

(define PACMAN )

(scale 0.5 PACMAN)

Lisää piirtofunktioita 2htdp/image sisältää myös paljon muita piirtofunktioita joihin voit tutustua itse näillä sivuilla: http://docs.racketlang.org/teachpack/2htdpimage.html 38