Tikotiput

Ohjelmointi

Aloitimme ohjelmoinnin parissa vko:lla 37. Käsittelimme yleisesti asioita ohjelmoinnista, ohjelmointikieliä, peruskäsitteitä, algoritmejä, ja muuttujia. Käsittelyssä oli myös semantiikka ja syntaksi.

Opintokokonaisuuden varrella tulemme opiskelemaan ohjelmointikielistä ainakin Javaa ja Pythonia.

Ohjelmoinnissa on ajatuksena antaa tietokoneelle toimintaohje eli algoritmi, jonka perusteella tietokone tekee suunnitellun tehtävän. Algoritmi siis kuvaa tehtävän tai prosessin ja sen miten se suoritetaan. Olemme myös oppineet, että ohjelmointi vaatii huolellisuutta sekä tarkkuutta, eikä hyväksi ohjelmoijaksi opita hetkessä. Ohjelmoijan täytyy pystyä soveltamaan tietojansa uusissa tilanteissa ja hallitsemaan pienistä yksityiskohdista muodostuvia monimutkaisia kokonaisuuksia.

Viikkojen varrella mukaan on tullut ehtorakenteita, toistorakenteita, merkkijonoja ja funktioita. Algoritmien pitää pystyä kuvaamaan rajoittamattoman monia erilaisia ja vaihtuvia prosesseja, joten nämä edellä mainitut auttavat toteuttamaan niitä.

Vko:lla 43 pääsimme jo Pythonin pariin. Python-ohjelmointikielen rakenteet ovat hyvin samankaltaisia, kuin pseudokielisten rakenteiden, joita olemme kurssilla tähän menneessä opiskelleet.

Toteutimme ensimmäisellä tunnilla pienryhmissä algoritimin, joka oli meillä aluksi näinkin yksinkertainen.

Algoritmi muistipelille
1. Levitetään pöydälle kaksitoista korttia kuvapuoli alaspäin.
2. Nostan kahdestatoista kortista yhden kortin ja käännän sen toisin päin.
3. Kortin kääntöpuolelta ilmestyy jokin tietty kuva.
4. Palaan alkuasemiin ja käännän seuraavan kortin.
5. Mikäli toinen nostamani kortti on toisen pari, saan pisteen.
  5.1 Jos toinen kortti on samanlainen, saan pisteen ja saan jatkaa korttien kääntämistä.
  5.2 Jos kortti ei ole samanlainen kuin ensimmäinen nostamani kortti, vuoro vaihtuu toiselle pelaajalle.
6. Korttien kääntämistä jatketaan niin kauan, kunnes kaikki parit ovat löytyneet.
7. Viimeiseksi lasketaan pisteet.
  7.1 Eniten pisteitä saanut voittaa.

Vko:lla 45 teemaksi tuli Python 2.7. Ensimmäisenä käsittelimme muuttujia ja lausekkeita. Tehtäviä teimme tältä verkkosivustolta: http://openbookproject.net/thinkcs/python/english3e/variables_expressions_statements.html

Values = Merkitsee arvoja, kuten kirjaimia tai numeroita.
Data type = Arvot on luokiteltu eri luokkiin ja merkkijonoihin.
Variable = Yksi tehokkaimmista ominaisuuksista ohjelmoinnissa on kyky muuttaa muuttujia . Muuttuja on nimi, joka viittaa arvoon.
Assignment statement = Määrityslause, joka antaa muuttujalle arvon.

esim. >>> message = "Mitä kuuluu?"
>>> n = 17
>>> pi = 3.14159

Muuttujien yleiset nimeämissäännöt:

Muuttujan nimessä voidaan käyttää isoja sekä pieniä merkkejä a-z
Muuttujan nimessä voidaan käyttää numeroita ja alaviivaa
Muuttujan nimi voidaan aloittaa kirjaimella tai alaviivalla, mutta ei numerolla

Turtle-tähtiVko:lla 46 aloimme työstää aiemmin mainitulta verkkosivustolta osiota ”Hello, little turtles!”. Kilpikonnagrafiikkaa kannattaa harjoittaa Python 3.4:llä. Python 2.7 on vakaampi kuin 3.4, mutta uudempi versio tukee paremmin grafiikkaa. Huomasimme tätä osiota työstäessä, ett Python 3.4 oli selvästi epävakaampi, koska se kaatui helposti kesken ohjelman.

Oikealla on esimerkki kilpikonnagrafiikasta. Kilpikonnagrafiikan nimi tulee kilpikonnasta, joka suorittaa määrätyt käskyt. Esimerkissämme kilpikonna on esillä, mutta ilman muodon määrittämistä sille, ei kilpikonnaa näy.

Turtle-muotoKomennolla "import turtle" aloitetaan tehtävän suorittaminen.
wn = turtle.Screen() avaa näytölle valkoisen, tyhjän ikkunan, johon ohjelma tulee suoritetuksi.
Vko:lla 47 jatkoimme kilpikonnagrafiikan kanssa ja mukaan tulivat funktiot.
Funktioiden avulla koodi saadaan selkeämmäksi ja lyhyemmäksi. Funktioiden avulla virheiden korjaaminen on myös helpompaa.
Funktio määritellään komennolla def, jonka jälkeen määritellään funktion nimi. Tällä määritellyllä nimellä funktiota kutsutaan. Funktion nimen jälkeen laitetaan sulut ja kaksoispiste.
Kaksoispisteen jälkeen alkaa lohko, jonka sisällä määritellään funktion toiminnallisuus.

Esimerkkiohjelman alussa määriteltyyn funktioon (createTurtle) ja sen toiminnallisuuteen on ilmoitettu ”luodaan ikkuna”, jossa on taustaväri ja otsikko. Kilpikonnan piirtämä väri ja ikkunan taustaväri määritellään vasta ohjelman lopussa.

Turtle-animointi

Täältä voit käydä katsomassa Python-koodin alla olevalle animaatiolle.

Turtle-animaatio