3. Bomberbot: Algoritmi ja funktiot

Kertaus:
Viime kerralla puhuin peräkkäisyydestä ja toistorakenteista. Te teitte kaksi harjoitusta liittyen näihin aiheisiin.

Muistatteko miksi toistorakennetta käytetään koodissa?
Käydään kertauksena bomberbotin toistorakenne- tehtävästä muutama yhdessä.
Ratkaistessa bomberbot- tehtävää kannattaa tutkia seuraavia asioita:
Mihin suuntaan robotin kannattaa lähteä?
Onko tasossa yhtä tai useampaa toistuvaa rakennetta?
Voinko lisätä yksittäisiä käskyjä toistuvien rakenteiden väliin, jotta saan toistuvan rakenteen aikaan?
Miten ohjeet saisi kirjoitettua mahdollisimman lyhyesti?

Silmukka tehtävän 10 ja 14 ratkaisut tässä:

Algoritmit:
Me teemme algoritmeja (=ohjelmointia) arkisissa asioissa joka päivä. Sitä vain ei kutsuta algoritmeiksi, eikä ainakaan tunnisteta ohjelmoinniksi. Ohjelmointi on sitä, että käskytämme tietokonetta muodostamalla peräkkäisiä käskyjonoja. Näitä käskyjonoja sanotaan algoritmeiksi. Algoritmi on suunnitelma siitä, miten saadaan jokin asia tehdyksi. Otetaanpa yksinkertainen esimerkki hampaiden pesu. Sen algoritmi voisi olla tällainen;

  1. Mene kylpyhuoneeseen.
    2. Ota hammasharja käteesi.
    3. Laita hammastahnaa harjaan.
    4. Ota muki käteesi, ja laske hanasta siihen vettä.
    5. Avaa suusi ja aloita hampaiden harjaus.
    6. Harjaa ylä- ja alahampaat edestä ja takaa.
    7. Huuhtele suu mukista ottamallasi vedellä.
    8. Huuhtele hammasharja ja laita pois kädestä.
    9. Pyyhi suusi pyyhkeeseen.
    10. Poistu kylpyhuoneesta.

Tässä teimme MitenPesenHampaat()- algoritmin. Laitoimme peräkkäin käskyt, joiden avulla saimme ratkaistua ongelma eli miten pesen hampaat. Algoritmeja käytetään kaikkialla: joka kerta kun Googletamme netistä parasta ajoreittiä tai halvimpia lentoja, Googlen haku hyödyntää ohjelmoijan suunnittelemia algoritmeja.

Bomberbotin Algoritmi-tehtävässä tulee pari uutta käskyä (=suhteelliset ohjeet tehtävässä esitelty). Tuplanuoli tarkoittaa, että Bomberbot liikkuu sillä askeleen eteenpäin. Kierrenuolilla puolestaa käännetään robotin suuntaa paikoillaan siten, että se ei ota askeltakaan mihinkään päin.

1. tehtävä algoritmeistä:

20. Tehtävä algoritmeista – 20:

Oppimisympäristö opastaa sinua tehtävässä eteenpäin liikuttamaan Bomberbottia ja keräämään tähtiä. Tehtäviä on 20, voit tehdä mitä tunnin aikana ehdit. Loput voi tehdä kotona ensi kerraksi. Kavereilta ja opettajilta saa kysyä neuvoja!!

Avataan tietokoneet:

  1. Avaa internet selain
  2. Etsi Bomberbotin sivusto, ja kirjaudu sisään käyttäjätunnuksella (ensimmäinen sana rauski sitten alaviivan jälkeen etunimi ja sukunimen ensimmäinen kirjain).
  3. Avaa Bomberbotista Oppitunnit ja Algoritmit.

         

Funktiot:
Funktio tarkoittaa ohjelmoinnissa aliohjelmaa, joka toimii pääohjelman sisällä. Sillä pyritään taas siihen, että voitaisiin vähentää koodarin työtä ja kirjoittaa lyhyempi koodi.

Otetaan käytännön esimerkiksi mikroaaltouuni:
Miten mikroa käytetään?
Jos haluaa lämmittää aterian, mitä tulee tehdä?
Myös mikro on kone, joka on pitänyt ohjelmoida. Mikro on ohjeistettu suoriutumaan erilaisista pienistä osatehtävistä, kuten erilaisten ruokien lämmittämisestä ja sulattamisesta. Näitä osatehtäviä kutsutaan funktioiksi. Funktiot ovat isomman ohjelman ennalta määriteltyjä osatehtäviä, joita voidaan käyttää tarvittaessa. Funktioiden avulla koodia ei tarvitse joka kerta kirjoittaa uudelleen, vaan tietokone voi hyödyntää funktiota. Näin koodista tulee lyhempää ja kirjoittamista on vähemmän, myös tietokone suorittaa lyhyen koodin tehokkaammin eli nopeammin.

Näytä Esitysdiat_6.pptx funktion esimerkkejä Bomberbotista.

Esimerkkinä bomberbotin 1. tehtävä:

Avataan tietokoneet:

  1. Avaa internet selain
  2. Etsi Bomberbotin sivusto, ja kirjaudu sisään käyttäjätunnuksella (ensimmäinen sana rauski sitten alaviivan jälkeen etunimi ja sukunimen ensimmäinen kirjain).
  3. Avaa Bomberbotista Oppitunnit ja Funktiot.

             

Oppimisympäristö opastaa sinua tehtävässä eteenpäin liikuttamaan Bomberbottia ja keräämään tähtiä. Koodaustehtävä sisältää 20 eri tasoa, mutta riittää 10 tehtävän tekeminen. Tee ne omaan tahtiin, kavereilta ja opettajilta saa kysyä neuvoja!! Jos et ehdi kaikkea, niin kotona voi tehdä loput!

Lisätehtävänä voi luoda oman tason: 

Omalle tasolle annetaan nimi ja kerrotaan mitä sillä pitää tehdä.
Seuraavaksi asetellaan timantit, tähdet yms. pelin osat ruudukkoon.
Lopuksi voidaan tehdän omalle tasolle ratkaisu, eli asetellaan ohjeet ruudukkoon.
Kannattaa käyttää silmukoita ja funktioita malliratkaisussa, kuten olemme opinneet aiemmissa tehtävissä. Tässä koodiopen taso esimerkkinä: