Listatrilogian kolmas osa Dimensiossa

Listoihin liittyvän artikkelisarjan kolmas osa on julkaistu Dimensiolehdessä. Ensimmäinen löytyy viimeisestä paperiversiosta Dimensio 2018:6, toinen ja kolmas Dimension verkkolehdestä.

Mainokset

Dodekaedri 3D-tulostukseen GeoGebralla

Koulussani on jo muutaman vuoden ollut Minifactory 3D-tulostin. Alkuinnostuksen jälkeen en ole siihen juurikaan koskenut. Koulunkäyntiavustajamme Victor Micordia sääti laitteen viimeisen päälle kuntoon ja otti haltuun itse tulostustapahtuman. Niinpä minä innostuin uudestaan kokeilemaan tulostusta. Varsinkin kun mallin voi luoda GeoGebralla. GeoGebran 3D ohjelmasta voi tallentaa kappaleen tiedot slt-tiedostoon, joka ladataan tulostinta ohjaavaan ohjelmistoon.

Kolme vasemmanpuoleista ovat GeoGebra 3D sivun demomalleja. Oikeanpuoleinen on tuotettu näytön GeoGebra-tiedostosta.

Pentagrammeja dodekaedrin tahkoille Zip-komennolla

Kokeilin ensin dodekaedrin 3D-tulostusta. Kun se onnistui, päätin tuottaa dodekaedrin tahkoille pentagrammit. Esitän seuraavassa miten sen tein. Koska olen tottunut GeoGebra 5:n käyttöön esitän ratkaisuni sen kanssa. Kaikki komennot kirjoitetaan Syöttökenttään.

Avataan GeoGebra 5 ja valitaan Algebra, Piirtoalue, 3D-piirtoalue ja Syöttökenttä. Luodaan kaksi pistettä piirtoalueelle.

A = (0,1)
B = (-cos(18°), sin(18°))

Säännöllinen viisikulmio saadaan Piirtoalueen Säännöllinen monikulmio -työkalulla. Valitaan Säännöllinen monikulmio -työkalu ja tämän jälkeen pisteet A ja B tässä järjestyksessä ja Kärkipisteiden lukumäärä-kenttään kirjoitetaan 5. Saman olisi saanut aikaan myös komennolla

Monikulmio(A, B, 5)

GeoGebra loi Piirtoalueelle ja 3D-piirtoalueelle xy-tasoon säännöllisen viisikulmion nimeltä kuvio1.

Lopullisessa dodekaedrissä on 12 tahkoa, joten tarvitaan 12 pentagrammia. Käsin niiden piirtäminen 3D avaruudessa olisi aika aikaa vievää. Laiska kun olen, niin päätin ratkaista ongelman ohjelmallisesti. Piste-komennon avulla saa pisteen monikulmion reunajanoille. Esimerkiksi komento

Piste(kuvio1, 0.3)

luo pisteen viisikulmion ABCDE kehälle. Jälkimmäinen muuttuja saa arvoja välillä [0, 1]. Alle nollan ja yli ykkösen olevat arvot luovat tuottavat A-pisteen. Arvo 0 tai 1 vastaa pistettä A. Komento laskee koko murtoviivan ABCDEA pituuden ja määrittää syntyvän pisteen paikan suhteessa tähän murtoviivaan. Niinpä esimerkkimme piste tulee olemaan janan BC keskipisteessä, sillä 0,3 = 3·1/5. Näin ollen pentagrammin kärkipisteet järjestyksessä A, C, E, B, D saataisiin kuvio1:stä Piste-komennolla käyttämällä jälkimmäiselle muuttujalle arvoja 0, 2/5, 4/5, 6/5 – 1 ja 8/5 – 1. Ykkönen pitää vähentää kahdessa viimeisessä, sillä muutoin arvot ovat yli ykkösen. Niinpä tarvitsemme luvun desimaaliosaa, sen saa GeoGebrassa floor()-funktiolla. Jono-komennolla pentagrammi syntyy seuraavalla tavalla. Kehotan lukijaa pohtimaan miksi.

Monikulmio(Jono(Piste(kuvio1,(2*n/5)-floor(2*n/5)), n, 1, 5))

Tämä on aika hankala tapa tuottaa viisikantoja, mutta nytpä sekin osataan.

Tässä vaiheessa voi monikulmiot kuvio1 ja kuvio2 piilottaa näkyviltä, etteivät ne unohdu lopulliseen tuotokseen niin kuin minulle kävi tätä tehtäessä ensimmäisen kerran. Samalla kannattaa laittaa Asetukset-valikosta Nimeäminen pois, jotta dodekaedriä luotaessa ei kuvaan ilmesty runsaasti tahkojen ja janojen nimiä.

Dodekaedri syntyy komennolla

Dodekaedri(A, B, C)

Jos edellisessä komennossa käyttää vain kahta pistettä, niin ohjelma toki luo dodekaedrin, mutta silloin ei voi varmasti tietää mihin suuntaan avaruudessa monitahokas syntyy. 3D-piirtoalueelle syntyy dodekaedri nimeltä a, samalla Algebra-ikkunassa näkyy runsaasti uusia pisteitä, janoja ja tahkoja.

Nyt viimeistään kannattaa muuttaa Algebra-ikkunan näkymäasetuksia. Algebra-ikkunan yläreunassa on kääntyvä kolmia. Sen kääntämällä ilmestyy kolme painiketta, joista keskimmäisen Järjestä: -painikkeen avulla saa Algebra-ikkunan järjestettyä Objektin tyypin mukaan.

tässä tuo keltainen Pallo-työkalun ohje unohtui päälle

Tämän tyyppisten rakennelmien kanssa puuhastellessa toivoisi, että GeoGebrassa olisi komento, jonka avulla saisi dodekaedrin tahkojen nimet yhdeksi listaksi. Valitettavasti tällaista komentoa ei ole. Niinpä täytyy hieman improvisoida. Kun Algebra-ikkunassa siirrytään tarpeeksi alas, niin sieltä löytyvät Viisikulmiot ryhmiteltynä alakkain. Kopioidaan nimet ctrl-c (Macissä cmd-c) näppäinkomennolla. Avataan jokin tekstinkäsittelyohjelma, vaikkapa Texturi iOS:ssä. Valitaan hiirellä toisen rivin t-kirjaimen vasemmalta puolelta ensimmäisen rivin G-kirjaimen oikealle puolelle ja kopioidaan valinta. Valitaan Muokkaa-valikosta Etsi ja korvaa… Sijoitetaan valinta Etsi-kohtaan ja Korvaa-kohtaan kirjoitetaan:  ”␣,”eli ”välilyönti pilkku” ilman lainausmerkkejä.

Sijoittamalla saatu tekstikappale aaltosulkeiden sisälle ilman viimeistä pilkkua voidaan GeoGebrassa määritellä lista nimeltä tahkot

tahkot = {tahkoABCFG, tahkoABHML, tahkoAGKQL, tahkoBCINH, tahkoCFJOI, tahkoFGKPJ, tahkoHMRSN, tahkoINSTO, tahkoJOTUP, tahkoKPUVQ, tahkoLMRVQ, tahkoRSTUV}

Muutetaan tahkojen väri läpinäkyväksi. Valitaan Algebra-ikkunasta dodekaedri a ja 3D-piirtoalueen vasemmasta yläkulmasta läpinäkyvyysliuku vasempaan reunaan.

Pentagrammit voisi luoda yhdellä kertaa käyttämällä Jono-komentoa vuorotellen jokaiseen tahkot-listan alkioon. Tehdään sama asia Zip-komennolla. Zip( lauseke, muuttuja, lista) suorittaa listan jokaiselle alkiolle lauseke-kohdassa olevaan komennon, käyttäen lausekkeessa muuttujana muuttujaa. Olipa yksinkertainen virke. Suoritetaan aiemmin kehitelty Monikulmio(Jono(Piste(kuvio1,(2*n/5)-floor(2*n/5)), n, 1, 5))  -komento tahkot -listan jokaiselle tahkolle komennolla

Zip(Monikulmio(Jono(Piste(tahko,(2*n/5)-floor(2*n/5)), n, 1, 5)), tahko, tahkot)

Kappale on nyt tulostusta vaille valmis.

Palataan 3D-tulostukseen seuraavassa tarinassa.

GeoGebra-tiedosto GeoGebra Materiaaleissa https://ggbm.at/qp3mjhee

Lisää aiheeseen liittyvä luettavaa

Jono GeoGebrassa

Tämä on kolmas osa trilogiastani, joka liittyy GeoGebran listoihin. Aikaisemmat  osat: Listat GeoGebrassa ja Sovituskomennot GeoGebrassa.

GeoGebran Jono-komento (Sequence) vastaa perinteisissä ohjelmointikielissä for-next -silmukkaa. Sen avulla saadaan luotua tarvittaessa pitkiäkin listoja, joiden jäseninä voi olla muita GeoGebran objekteja; lukuja, pisteitä, yhtälöitä, taso- ja 3D geometrian objekteja jne.

Jonon kielioppi

Jonoa voi käyttää monella eri syntaksilla, sillä voi olla 1 – 5 syötettä. Tutustutaan näihin esimerkkien avulla. Kirjoitan seuraavassa komennot GeoGebra Classic 5:n CAS:iin tai Syöttökenttään. GeoGebra 6:n CAS:issa komennot toimivat täsmälleen samalla tavoin.

Kun syötteenä on yksi luku n, niin Jono tuottaa listan, jonka alkioina ovat luvut 1, …, n.

Jono(5)
→ {1, 2, 3, 4, 5}

Kun syötteenä on kaksi lukua ja n, niin Jono tulostaa listan, jonka alkioina ovat luvut m, …, n.

Jono(3,8)
→{3, 4, 5, 6, 7, 8}
Jono(8, 3)
→ {8, 7, 6, 5, 4, 3}

Kun syötteenä on kolme lukua m, ja k, niin Jono tulostaa listan, jonka alkioina ovat luvut m:stä n:ään siten, että m:stä alkaen otetaan joka k:s luku n:ään asti. Listan alkiot muodostavat aritmeettisen jonon.

Jono(2,13,3)
→ {2, 5, 8, 11}
Jono(1/2, 42/13, 1/3)
→ {0.5, 0.833, 1.167, 1.5, 1.833, 2.167, 2.5, 2.833, 3.167}

Kun Jonon syötteessä on viisi oliota, niistä ensimmäinen on muuttujan sisältävä lauseke, toinen on muuttuja, kolmas muuttujan ensimmäinen arvo, neljäs muuttujan viimeinen arvo ja viides askelväli. Viimeisen voi jättää pois, jolloin askeleen pituus on yksi. Jos käyttää muuttujaa Jonon lausekkeessa, niin GeoGebra pyrkii tuottamaan tuloste listaansa tarkat arvot.

Jono(k^2, k, -3, 3)
→ {9, 4, 1, 0, 1, 4, 9}
L1: =Jono(k,k,1/2,42/13,1/3)
→ L1≔{1/2, 5/6, 7/6, 3/2, 11/6, 13/6, 5/2, 17/6, 19/6}
Summa(L1)
→ 33/2

Komento Summa laskee syötelistan alkioiden summan.

Katsotaan muutamia esimerkkejä, mitä Jonolla saa aikaiseksi. Luodaan ensin liu’ut ala, ylä ja väli. Niiden avulla voidaan säätää Jonon muuttujia. Luodaan ensin kaksi suoraparvea: = k x ja = k. Kirjoitetaan CAS:iin tai syöttökenttään

ala≔5
→ ala:=5
ylä:=5
→ ylä:=5
väli:=5
→ väli:=5

Kun klikataan Algebraikkunassa tai CAS:issa vasemmalla olevaan ympyrään, niin liu’ut ilmestyvät näkyviin piirtoalueelle. Luodaan origon kautta kulkevista suorista lista1 ja y-akselin suuntaisista suorista lista2.

lista1:=Jono(y = k x,k,ala,ylä,väli)
→ lista1:={y = (-5 / 2 * x), y = (-11/ 5 * x), …, y = 19/5}

ja y-akselin suuntaiset suorat

lista2:=Jono(x = k,k,ala,ylä,väli)
→ lista2:={x = -5 / 2, x = -11 / 5, … , x = 19 / 5}

Esimerkki

Edellisessä esimerkissä tuotettiin suoria, luodaan seuraavaksi (x, y) pisteitä koordinaatistoon. Michael Borcherds’n ja Dag Oscar Madsenin LinkedIn keskustelusta löytyi seuraava mielenkiitoisia kuvioita tuottava yhden rivin pisteistö. Tässä inc-liukusäädin saa Ominaisuudet -ikkunassa arvoja: Min: 0.01,Max:1, ja Askelväli: 0.01. Kun muuttujan inc arvoa muuttaa, pisteet näyttävät joillain arvoilla tuottavan kauniita käyriä. Miksiköhän?

Jono((ln(n), sin(n)), n, 1, 1000, inc)

Tähti

Joskus kaukaisessa menneisyydessä 1980-luvun lopussa tutustuin Logo-ohjelmointiin. Logon kilpikonnagrafiikan avulla sai yksinkertaisilla ohjelmanpätkillä mielenkiintoisia kuvia tasolle. Logon innoittaman innostuin tutkimaan tähtikuvioita ihan omaksi ilokseni.

Tehdään sovellus, jonka avulla voi tutkia tähtikuvioita, joiden kärjet ovat yksikköympyrään piirretyn säännöllisen monikulmion kärkipisteissä. Aluksi luodaan liukusäätimet ja m. Liukujen asetuksissa saa arvot Min:3, Max:50, Animaatioaskel:1 ja arvot Min:1, Max: n-1 ja Animaatioaskel: 1. Luodaan seuraavaksi yksikköympyrään lista karjet säännöllisen monikulmion kärkipisteistä. Puolipiste pisteen erottimena tuottaa pisteet napakoordinaateissa.

karjet = Jono((1; aa 2π / n), aa, 1, n)

Monikulmio(A, B, n)-komento tuottaa säännöllisen n-kulmion, siten, että yksi sivu on jana AB. Komento karjet(x) tuottaa karjet listan x:n jäsenen.

kuvio1 = Monikulmio(karjet(1), karjet(2), n)

Tähtikuvion kärkiä varten tarvitaan jakojäännöksiä. Otetaan karjet listasta joka m:s jäsen, toistetaan tätä kertaa. Annetaan listalle nimi tkarjet. Koska listan jäsenet numeroidaan 1, …, pitää jakojäännökseen lisätä 1, jotta järjestysnumeroksi ei tulisi nolla.

tkarjet = Jono(karjet(Jakojäännös(i, n) + 1), i, 1, n m, m)

Kun Monikulmio-komennossa on syötteenä lista, niin se tuottaa monikulmion siten, että listan pisteet ovat kärkipisteinä. Tähtikuvio syntyy komennolla

Monikulmio(tkarjet)

Joillain muuttujien arvoilla ja syntyy tähtikuvioita. Esimerkiksi m= 5 ja n= 2 tuottaa pentagrammin. Usein kirjallisuudessa käytetään merkintää säännölliselle viisikulmiolle {5/1} ja pentagrammille {5/2}. Aina ei synny tähtikuviota {6/2} on kolmio ja {6/3} on jana. Joskus syntyy tähtikuvio, mutta siinä ei välttämättä ole kappaletta kärkipisteitä, {18/4} on tähtikuvio, jossa on 9 kärkeä.

Tästähän saa mielenkiintoisen tutkimustehtävän oppilaille. Milloin tulee tähtiä, milloin säännöllisiä monikulmioita ja milloin janoja? Itse asiassa ennen tätä oppilaat voisivat luokitella minkä tyyppisiä kuvioita eri n:n ja m:n arvot tuottavat. Millä n:n arvoilla ei synny lainkaan tähtiä? Millaiset n:n arvot tuottavat tähtiä kaikilla m:n arvoilla 1 < < n– 1? Lahjakkaammat oppilaat ja opettajat voivat myös pohtia löytämiensä lauseiden todistuksia.

Monte Carlon sammakko

Monte Carlo -menetelmässä käytetään satunnaislukuja, kun simuloidaan hankalan ongelman ratkaisua. Anders Skjäl esitti MAOL eKerhon Facebook-ryhmässä syyslomahupitehtävän: ”Sammakko hyppää yhden pituusyksikön satunnaiseen suuntaan ja sen jälkeen puoli pituusyksikköä uudessa satunnaisessa suunnassa. … Määritä sammakon lopullisen sijainnin todennäköisyysjakauma.” Hetken aikaa ongelmaa pohdittuani totesin, että tuo vaikuttaa ilkeältä integroimisongelmalta, niinpä päätin simuloida sammakon hyppelyä.

Luodaan hyppelyjä kuvaava muuttuja n. Toki tästä voi tehdä myös liu’un, mutta kannattaa pitää sen yläraja mielekkäässä kokoluokassa. Järkevä maksimikokoluokka on noin 10000-100000 riippuen koneen tehosta ja GeoGebra-versiosta.

n = 100

Ensin sammakko hyppää satunnaiseen pisteeseen, jonka napakoordinaatit ovat (1, α), missä kulma α valitaan satunnaisesti väliltä 0 ≤ α< 2 π. Sen jälkeen se hyppää samalla logiikalla (½, β). GeoGebra osaa laskea tämän tyyppisen vektoreiden yhteenlaskun pisteiden välisenä yhteenlaskuna. GeoGebran random()-funktio tuottaa satunnaisluvun. Niinpä sammakon hypyt saadaan simuloitua komennolla

sami = Jono((1; 2πrandom()) + (0.5; 2πrandom()), k, 1, n)
sami = {(1.42; 244.17°), (0.51; 119.69°), …, (1.46; 33.35°)}

Koordinaatistoon ilmestyy pisteitä ½ ja 3/2 -säteisten ympyröiden väliin. Koska sami-listan pisteet on esitetty napakoordinaateissa, niiden etäisyydet ovat sami-listan pisteiden ensimmäiset koordinaatit. Ne saa irrotettua napakoordinaateissa esitetystä pisteestä abs-komennolla, joka kertoo pisteen etäisyyden origosta. Vastaavasti suuntakulman saa arg-komennolla.

etlista = Jono(abs(sami(k)), k, 1, n)
etlista = {1.42, 0.51, …, 1.46}

Luodaan frekvenssien laskennassa tarvittavat välit listaan nimeltä luokat. Alaraja on 0,45, yläraja on 1,55 ja välin pituus 0,1.

luokat = Jono(0.45, 1.55, 0.1)
luokat = {0.45, 0.55, 0.65, 0.75, 0.85, 0.95, 1.05, 1.15, 1.25, 1.35, 1.45, 1.55}

Lasketaan etäisyyksien frekvenssit edellä luodun luokat-listan väleissä Frekvenssi(<Luokkarajalista>, <Datalista>)-komennolla.

f = Frekvenssi(luokat, etlista)
f = {17, 7, 4, 9, 2, 7, 8, 8, 6, 15, 17}

Frekvenssien arvot saa näkymään histogrammina Histogrammi(<Luokkarajalista>, <Korkeuslista>)- komennolla. Muutetaan arvot suhteelliseksi jakamalle ne luvulla n. Jotta pylväät näkyisivät nätisti, kerrotaan ne vielä luvulla 10. Nythän histogrammimonikulmion alaksi tuli 1! Miksi? Hannu Mäkiö laski tiheysfunktiolle sievän muodon.

histo = Histogrammi(luokat, 10 f / n)
tih(x) = Jos(0.5 ≤ x ≤ 1.5, (2x) / (π sqrt(1 - (5 / 4 - x²)²)))

Jätän lukijalle tämän tehtävän muokkaamisen kolmiulotteisen sammakon tapaukseen.

Brute force

Raa’an voiman eli Brute force -menetelmässä käytetään tietokoneen laskentatehoa numeeristen ongelmien ratkaisussa. Simo Kivelä vertaili blogikirjoituksessaan vuoden 1960 ylioppilastehtävän ratkaisemista erilaisilla ohjelmallisilla työkaluilla. Ratkaistaan GeoGebralla tehtävä: ”Laske kaikkien niiden positiivisten kolminumeroisten kokonaislukujen summa, jotka eivät ole jaollisia 9:llä eivätkä 11:llä.”.

Ratkaisussa tarvitaan hieman Boolen logiikkaa ja jaollisuusoppia. Komento Jakojäännös(<Jaettava>, <Jakaja>) antaa tulokseksi jakojäännöksen. Totuusehto ja merkitään GeoGebrassa joko && tai  ja erisuuruus != tai ≠. Niinpä saamme CAS:issa seuraavat totuudet eri luvuilla.

(Jakojäännös(99, 11)!=0)&&(Jakojäännös(99, 9)!=0)
→ false

Jakojäännös(22, 11) ≠ 0 ∧Jakojäännös(22, 9) ≠ 0
→ false

Jakojäännös(13, 11) ≠ 0 ∧Jakojäännös(13, 9) ≠ 0
→ true

Jos(<Ehto>, <Niin>, <Muuten>)-komento suorittaa Niin-kohdalla olevan komennon, mikäli Ehtoon tosi, muutoin suoritetaan Muuten-vaihtoehto. Muuten syötteen voi myös jättää pois. Luodaan lista yo, jossa on tehtävän annon luvut.

yo = Jono(Jos((Jakojäännös(n, 11)!=0)&&(Jakojäännös(n, 9)!=0),n,0), n, 100, 999)
yo = {100, 101, 102, 103, 104, 105, 106, 107, 0, 109, 0, …, 998, 0}

Summan saa laskettua Summa-komennolla, sen avulla olisi voinut laskea lukujen summan ilman Jono-komentoa.

Summa(yo)
a = 399996

Summa(Jos(Jakojäännös(n, 11) ≠ 0 ∧Jakojäännös(n, 9) ≠ 0, n, 0), n, 100, 999)
b = 399996

Brute force -menetelmä tuntuu meistä opettajista usein huijaukselta. Pitää muistaa, että todellisessa maailmassa on valtava määrä ongelmia, joita ei voi sievästi ratkaista koulussa opetetuilla siisteillä menetelmillä.

Sisäkkäiset silmukat

Tutkitaan seuraavaksi, miten Jono-komennolla saa sisäkkäisiä silmukoita. Tuotetaan koordinaatiston kokonaislukukukoordinaatteihin pisteitä. Koska komennosta tulee aika monimutkaisen näköinen kannattaa tehdä se osissa. Luodaan ensin pisteitä vaakasuunnassa.

pisteet=Jono( (i, 2), i, 1, 5)

Kopioidaan tämä komento ja kirjoitetaan sen ulkopuolelle uusi Jono-komento ja muutetaan pisteen y-koordinaatti.

pisteet2 = Jono(Jono( (i, j), i, 1, 5), j, 2, 4)

Jätän lukijalle tehtäväksi tuottaa suorakulmaisen särmiön kolmiulotteiseen avaruuteen tällä menetelmällä.

Tuotetaan seuraavaksi Pythagoraan kolmioita eli yhtälön  x^2 + y^2 = z^2 kokonaislukuratkaisuja z:n arvolla 13. Tälle ongelmalle löytyy useita eri ratkaisumenetelmiä. Käytetään brute force menetelmää sen kummemmin yrittämättä optimoida koodia. Käydään läpi kaikki arvot neliössä, jonka kärkien koordinaatit ovat (-13, -13), (-13, 13), (13, 13) ja (13, -13). Ehtolausekkeessa tarvittava yhtäsuuruusehto näppäillään = = tai ≟.

pyt = Jono(Jono(Jos((i² + j²) = = 169, (i, j)), i, -13, 13), j, -13, 13)

Komento tuottaa listaan paljon (?, ?) pisteitä ja sisäkkäiset kaarisulkeet.  Kaarisulkeista pääsee eroon Tiivistä-komennolla ja määrittelemättömistä pisteistä PoistaMäärittelemätön-komennolla.

pyt1 = Tiivistä(pyt)
pyt2 = PoistaMäärittelemätön(pyt1)

Yhdellä rivillä koodi olisi aika haastavaa lukea.

pyt3 = PoistaMäärittelemätön(Tiivistä(Jono(Jono(Jos(i² + j² ≟169, (i, j)), i, -13, 13), j, -13, 13)))

Jätän tämänkin ongelman yleistyksen 3D avaruuteen lukijalle kotitehtäväksi. Samalla kehotan kokeilemaan miten kuvan reikäinen kuutio tai marmelaadipyramidi on tuotettu. Voit myös pohtia mitä komento

janat = Jono(Jana((1, 0), Kärkipiste(Monikulmio((1; (360°) / n), (1; 2(360°) / n), n), m)), m, 1, n - 1, 1)

tekee ja miksi Tulo(janat) = n, kun on luonnollinen luku ja suurempi kuin 2? Komento Kärkipiste( Monikulmio, i)tuottaa monikulmion i:nen kärkipisteen.

Seuraavaksi kirjoittanen Zip-komennosta. Zip-komento vastaa monissa ohjelmointikielissä olevaa map-funktiota. Sen avulla voidaan käydä läpi kaikki syötelistojen jäsenet ja suorittaa niille komentoja. Moni Jono-komento muuttuu yksinkertaisemmaksi Zipin avulla.

Lue lisää

Korhonen, Luoma-aho, Rahikka. Geogebra -opas. MFKA 2012.

Reykjavikin luennon materiaali
https://www.geogebra.org/m/afbRGctJ – material/TWhJhFyC

Simo Kivelän blogiartikkeli
http://simokivela.blogspot.com/2017/11/ylioppilastehtava-ennen-ja-nyt.html

Lista GeoGebrassa blogiartikkelini
https://mikonfysiikka.wordpress.com/2018/05/15/listat-geogebrassa/

Star polygon MathWorldissa http://mathworld.wolfram.com/StarPolygon.html

Sammakko-ongelma Facebookissa
https://www.facebook.com/groups/155873227301/permalink/10156656313137302/