tiistai 8. joulukuuta 2015

Muuttuja, lauseke ja funktio - tunti Tesomalla

Tesoman 8.luokan matematiikan ryhmä aloitti tutustumisen Racket-ohjelmointiin tänään. Esimmäiseksi tutustuimme siihen, että on olemassa lukuja ja merkkijonoja. Testasimme niitä interaktioikkunassa. Muuttujan käsitteeseen törmäsimme kun keksimme kirjoittaa merkkijonon ilman "hipsuja" ja DrRacket ilmoitti "this variable is not defined".

Seuraavaksi määrittelimme muuttujia (sekä merkkijonoja, että lukuja) määrittelyikkunassa definen avulla, ja testasimme miksi luvussa ei saa olla hipsuja (sillä ei voi laskea).

(define a 5)
(define b 10)

Nyt kokeilimme laskea näiden muuttujien avulla esilaisia lausekkeita: yhteen-, vähennys-, kerto- ja jakolaskua (interaktioikkunassa):

> (+ a b)
> (- a b)
> (* a b)
> (/ a b)

Kokeilimme myös desimaalilukuja, negatiivisia lukuja sekä potenssiin korottamista expt:in avulla:

> (expt a b)

Sitten tutustuimme funktion käsitteeseen: sen avulla voidaan kirjoittaa laskusääntö, että jokin toiminto saadaan automatisoitua (esim. lentokoneen autopilotti). Piirsin taululle seuraavan kuvan:


Oppilaat saivat keksiä muuttujan nimen ja funktion säännön itse
Tämän koodasimme sitten funktioksi:

(define (plus3 a)
  (+ a 3))

Lisäsimme vielä lopuksi sille selityksen kommenttiriville:

; plus3 : Luku -> Luku

Lopuksi testasimme mitä tapahtuu kun funktiota kutsutaan eri arvoilla. Osa tajusi heti mitä seuraava rivi palauttaa:

> (plus3 100)

Tämän jälkeen ehdotin, että oppilaat olisivat tehneet jonkun oman funktion, mutta aika loppui kesken (ja olihan tässäkin jo hirveästi asiaa yhdelle oppitunnille). Seuraavalla kerralla jatkamme polynomifunktioiden kirjoittamista ja niiden kuvaajien piirtämistä DrRacket:illä.

Ei kommentteja:

Lähetä kommentti