Logo-ohjelmointia Konnalla
LOGO on erityisesti lapsille ja yleisesti ohjelmoinnin opettamiseen suunnattu ohjelmointikieli. LOGO-ohjelmointikielen ideana on liikuttaa viivoja piirtävää kilpikonnaa havainnollisten käskyjen avulla. Tässä ohjeessa tutustutaan LOGO-ohjelmointiympäristö Konnan perustoimintoihin.
Johdanto[muokkaa]
LOGO-ohjelmoitikielen kehitti 1970-luvulla Semour Papert MIT:n yliopistossa. Hän näki tietokoneet etenkin lasten luovuutta ja konstruktivistista oppimista kehittävinä työvälineinä. Logo-ohjelmointi perustuu ohjelmaikkunassa näkyvän kilpikonnan liikuttamiseen yksittäisten käskyjen avulla.
Esimerkkinä LOGO-ohjelmasta voidaan pitää esimerkiksi seuraavaa käskysarjaa:
- Valitse punainen väri
- Liiku 100 pistettä eteenpäin
- Käänny vasemmalle 90 astetta
- Liiku 100 pistettä eteenpäin
Näiden käskyjen jälkeen kilpikonna piirtäisi suoran punaisen viivan ja kääntyy katsomaan vasemmalle ja etenisi vielä toiset 100 pistettä. Kun tämä samainen käskysarja toistettaisiin ohjelmassa esimerkiksi kaksi kertaa peräkkäin piirtäisi kilpikonna kokonaisen neliön.
Kilpikonnaan liikuttamalla voidaan matkia useita ohjelmoinnin peruskäsitteitä. Edellinen esimerkki on äärimmäinen yksinkertaistus LOGO-ohjelmasta. Laajimmilaan ohjelmissa voidaan käyttää kaikkia tyypillisimpiä ohjelmoinnin peruskäsitteitä. Näitä ovat esimerkiksi.
- Muuttujat
- Silmukat
- Ehtolauseet
- Tekstin tulostaminen
Seuraavaksi tutustutaan itse Konna-ohjelman toimintoihin sekä valmiiden esimerkkiohjelmien avaamiseen.
Perustoiminnot[muokkaa]
- Koodi-ikkuna - Alue johon ohjelmakoodi kirjoitetaan
- Alusta - Alue jossa kilpikonna liikkuu
- Työkalurivi - Ohjelman työkalut
Tärkeimmät pikapainikkeet[muokkaa]
Järjestyksessä vasemmalta oikealle.
- Värin valinta - Väripaletti
- Kokoruututila - Ikkuna kokoruudun kokoiseksi
- Ohjelman suoritusnopeus - Kuinka nopeasti ohjelman rivit suoritetaan
- Suorita ohjelma - Käynnistä ohjelman suoritus
- Keskeytä suoritus - Keskeytä ohjelman suoritus
- Lopeta suoritus - Lopeta ohjelman suoritus
Valmiiden esimerkkiohjelmien avaaminen[muokkaa]
Konna sisältää useita valmiita esimerkkiohjelmia joiden avulla ohjelmointikielen toimintaan voidaan tutustua tai joiden avulla voi saada ideoita omiin ohjelmiin. Esimerkkiohjelman lataaminen tapahtuu seuraavasti.
- Valitse Tiedosto > Avaa Esimerkkejä...
- Valitse avattava esimerkkitiedosto
- Napsauta Avaa-painiketta
Tämän jälkeen esimerkkiohjelma latautuu Konnaan. Ohjelman koodi tulee tällöin näkyviin ohjelman koodi-ikkunaan.
Ohjelman suorittaminen[muokkaa]
Ladattu ohjelma voidaan suorittaa napsauttamalla työkalurivillä olevaa Suorita-painiketta
. Tämän jälkeen kilpikonna lähtee liikkeelle noudattaen rivi riviltä koodi-ikkunassa olevia käskyjä. Ohjelma havainnollistaa tehdyn ohjelman suoritusta korostamalla aina suoritusvuorossa olevaa käskyä.Ohjelman suoritusta on helpompi seurata, kun sen nopeutta hieman lasketaan. Tämä tapahtuu Suoritusnopeus-painikkeella
. Ohjelman päättyessä kilpikonna pysähtyy ja ohjelman esimerkiksi muokkaamista voidaan jatkaa.
Konna ja Logo-ohjelmoinnin perusteet[muokkaa]
Seuraavaksi tutustutaan käytännön LOGO-ohjelmointiin. Tavoitteena on esitellä esimerkkien avulla kielen idea ja luoda pohja omien ohjelmien tekemiselle. Ohessa esiteltäviä käskyjä esitetään pienten esimerkkiohjelmien avulla, jolla toimintaa pyritään havainnollistamaan.
Konna-ohjelman käyttämä LOGO-kieli muistuttaa pitkälti perinteistä LOGO-kieltä, mutta sisältää luonnollisesti joitain pieniä eroja. Käytännössä myös muut LOGO-kieltä käsittelevät oppaat ovat Konnaa käytettäessä avuksi, mutta johinkin ongelmiin niitä käytettäessä tulee varautua. Kieli voi siis kirjoitusasultaan hieman poiketa eri ohjelmien välillä, mutta on logiikaltaan sovellettavissa myös Konnassa.
Ohjelman tekemisen aloittaminen[muokkaa]
Uuden ohjelman tekeminen aloitetaan yksinkertaisesti käynnistämällä Konna-ohjelma jonka jälkeen LOGO-kieltä voidaan alkaa suoraan kirjoittamaan Koodi-ikkunaan.
Perustilassa oleva Konna-ikkuna
Ohjelman peruskäskyt[muokkaa]
Kilpikonnan liikuttaminen[muokkaa]
Kilpikonnan liikuttaminen tapahtuu yksinkertaisesti kertomalla sille liikkeen suunta ja matka. Kilpikonnan liikkeitä ohjataan englanninkielisillä käskyillä jotka on esitetty seuraavassa.
- Forward (matka) - Kilpikonna kulkee suoraan eteenpäin annetun matkan verran. Esimerkiksi käsky "Forward 50" liikuttaa kilpikonnaa 50 pistettä eteenpäin.
- Backwards (matka) - Kilpikonna kulkee taaksepäin annetun matkan verran.
- Turnleft (kulma asteina) - Kilpikonna kääntyy vasemmalle annetun astemäärän verran. Esimerkiksi "Turnleft 45" kääntää kilpikonnan katsomaan 45 astetta oikealle.
- Turnright (kulma asteina) - Kilpikonna kääntyy oikealle annetun astemäärän verran.
- Go (sijainti x,y -koordinaatteina) - Siirtää kilpikonnan tiettyyn koordinaattipisteeseen. Esimerkiksi "go 10,10" siirtää kilpikonnan vasempaa yläreunaan.
Konna-ikkuna johon esimerkin komennot on syötetty
Harjoituksena voidaan laittaa kilpikonna piirtämään neliö. Tämä tapahtuu käskemällä sitä piirtämään neljä viivaa joiden välissä sen tulee kääntyä 90 astetta.
LOGO-koodia (tämän voi kirjoittaa ja leikata ja liimata Konnan koodi-ikkunaan):
forward 100 # Kävelee sata pistettä eteenpäin turnleft 90 # Kääntyy 90 astetta vasemmalle forward 100 turnleft 90 forward 100 turnleft 90 forward 100
Konnassa voidaan esimerkin tapaan jättää koodin sekaan omia kommentteja merkkaamalla kommeniksi tarkoitettu rivi #-merkillä.
Ohjelman suoritus[muokkaa]
Ohjelma suoritetaan napsauttamalla suorita-painiketta
.
Tämän jälkeen kilpikonna piirtää ohjeita noudattaen halutunlaisen neliön. Käskyjä kirjoitettaessa voidaan huomata, että Konna värjää käskyt ja niiden parametrit eri väreillä. Tämä helpottaa niiden lukemista ja samalla voidaan nähdä, että käskyt on syötetty oikein.
Edellisen ohjelman jälkien pyyhkiminen[muokkaa]
Ohjelman suorituksen jälkeen edellisen ohjelman määrittämät kilpikonnan piirrustukset ja sijainti jäävät edelleen voimaan ja näkyviin. Käyttämällä seuraavia komentoja ohjelman alussa, piirtoalustan ja kilpikonnan asetukset nollautuvat oletusasetuksiksi.
- clear - Pyyhkii kaikki aiemmat kilpikonnan piirrosjäljet, mutta säilyttää sen sijainnin sekä piirtoalustan värin.
- reset - Nollaa kaikki asetukset niiden perustilaan.
Reset-käskyä voidaan käyttää esimerkiksi seuraavalla tavalla. Esimerkissä reset-käsky nollaa kaikki alustan asetukset ennen muiden käskyjen suorittamista.
LOGO-koodia (tämän voi kirjoittaa ja leikata ja liimata Konnan koodi-ikkunaan):
reset #Nollataan kaikki ohjelman asetukset ennen seuraavien käskyjen suorittamista turnleft 45 forward 100 turnleft 90 forward 100 turnleft 135 forward 141
Viivan piirto-ominaisuuksien muuttaminen[muokkaa]
Viivan ominaisuuksia voidaan muuttaa seuraavien käskyjen avulla.
- pencolor (väriarvo RGB-lukuna) - kilpikonnan piirtämän viivan väri. Esimerkiksi komento "pencolor 255,0,0" asettaisi väriksi punaisen.
- penwidth (paksuus pisteinä) - kilpikonnan piirtämän viivan paksuus. Esimerkiksi komento "penwidth 3" asettaa viivan paksuudeksi kolme pistettä.
- penup - Nostaa kynä alustalta
- pendown - Laskee kynän takaisin alas
Esimerkki viivan ominaisuuksista
Seuraavassa esimerkissä Konnan asetukset ensin alustetaan reset-käskyllä ja lähdetään sen jälkeen piirtämään kolmiota piirtämällä suoria viivoja ja vaihtamalla niiden välissä kulmaa. Viivojen piirtämistä edeltää välillä myös kynän värin sekä paksuuden vaihtaminen.
LOGO-koodia (tämän voi kirjoittaa ja leikata ja liimata Konnan koodi-ikkunaan):
reset turnleft 45 forward 100 turnleft 90 pencolor 255,0,0 penwidth 3 forward 100 pencolor 140,0,0 penwidth 6 turnleft 135 forward 141
Alustan asetusten muokkaaminen[muokkaa]
Piirtoalustalle voidaan myös määrittää erilaisia asetuksia. Näitä ovat esimerkiksi sen värin vaihtaminen sekä koon muuttaminen.
- canvassize (uusi koko x,y -pisteinä) - Määrittää piirtoalustan koon. Esimerkiksi komento "canvassize 400,350" tekee alustasta 400 pistettä leveän ja 350 pistettä korkean.
- canvascolor (väriarvo RGB-lukuna) - Muuttaa alustan pohjavärin halutuksi. Esimerkiksi komento "canvascolor 0,0,0" muuttaa värin mustaksi.
LOGO-koodia (tämän voi kirjoittaa ja leikata ja liimata Konnan koodi-ikkunaan):
#Alustetaan kaikki asetukset reset #Muutetaan alustan kokoa ja väriä canvassize 400,300 canvascolor 255,0,0 #Tästä alkaa piirtäminen turnleft 45 forward 100 turnleft 90 pencolor 205,0,0 penwidth 3 forward 100 pencolor 140,0,0 penwidth 6 turnleft 135 forward 141
Muuttujien käyttäminen[muokkaa]
Usein käytettäviä numerosarjoja tai vaikka tekstiä voidaan tallentaa Konnassa helposti itsemääritettyihin muuttujiin.
Muuttujan käytön periaatetta voidaan soveltaa esimerkiksi seuraavan selväkielisen esimerkin avulla.
LOGO-koodia (tämän voi kirjoittaa ja leikata ja liimata Konnan koodi-ikkunaan):
reset matka=100 #tallennetaan matka nimiseen muuttujaan luku 100 forward matka #liikutaan eteenpäin matka-muuttujassa olevan lukuarvon verran turnleft 90 #käännytään 90 astetta vasemmalla forward matka turnleft 90 forward matka
Esimerkissä tallennetaan ensin matka nimiseen muuttujaan tietty haluttu pituus. Tämän jälkeen viivan piirtämisessä käytetään pelkän luvun sijasta muuttujan nimeä. Nyt jos liikuttavaa matkaa halutaan muuttaa, tarvitsee muuttaa vain muuttujan saamaa arvoa jolloin muutos vaikuttaa kaikkialle jossa kyseistä muuttujaa käytetään.
Tekstin tulostaminen[muokkaa]
Konnassa on mahdollista tulostaa myös suoraan tekstiä. Tämä onnistuu print-käskyn avulla joka toimii seuraavasti.
- print "tulostettava teksti tähän lainausmerkkien sisään"
Print-käskyä voidaan käyttää myös tulostamaan muuttujalle syötettyä tietoa
- print muuttujan_nimi
Tai molempia yhdessä.
- print muuttujan_nimi + "Haluttu teksti"
Print -käskyä käytettäessä on hyvä huomioida, että teksti tulostetaan sille kohdalle missä kilpikonna sijaitsee. Tällöin esimerkiksi useita rivejä peräkkäin tulostettaessa on kilpikonnaa rivien välissä itse liikutettava. Muuten tulostetut tekstit tulevat samalle riville päällekäin.
Seuraavassa esimerkissä tulostetaan kolme eri riviä kolmella eri tavalla. Aluksi kilpikonna on siirretty vasempaan reunaan ja sitten sitä liikutetaan jokaisen erillisen rivin tulostuksen jälkeen.
LOGO-koodia (tämän voi kirjoittaa ja leikata ja liimata Konnan koodi-ikkunaan):
reset #alustetaan konnan asetukset go 10,50 #siirretään konna vasempaan reunaan jotta teksti mahtuu paremmin print "tässä suoraa tekstiä" #tulostetaan haluttu teksti teksti="terve" #tallennetaan teksti-muuttujaan sana forward 20 #siirretään kilpikonnaa rivi ylöspäin print teksti #tulostetaan teksti-muuttujassa oleva sana forward 20 #siirretään kilpikonnaa rivi ylöspäin print teksti + " mitäpä kuuluu?" #tulostetaan sekä muuttujassa oleva teksti että haluttu lause peräkkäin
Silmukat[muokkaa]
Silmukat ovat ohjelmoinnin yksi peruskäsite. Silmukat ovat nimensä mukaisesti ohjelman osia joissa tiettyä ohjelman pätkää toistetaan halutun määrän kertoja silmukanomaisesti ympäri.
Esimerkiksi oppaan ensimmäisessä osassa esiintynyt neliön piirtoesimerkki voidaan yksinkertaistaa silmukkaa käyttämällä. Esimerkissä konna toisti käytännössä neljä kertaa kahta samaa käskyä seuraavasti.
LOGO-koodia (tämän voi kirjoittaa ja leikata ja liimata Konnan koodi-ikkunaan):
reset # piirretään neliö toistamalla samoja käskyjä peräkkäin forward 100 # Kävelee sata pistettä eteenpäin turnleft 90 # Kääntyy 90 astetta vasemmalle forward 100 turnleft 90 forward 100 turnleft 90 forward 100
Silmukoiden avulla sama neliö voidaan piirtää käskemällä toistaa kyseisiä kahta käskyä neljä kertaa jolloin ne tarvitsee kirjoittaa vain kerran.
Silmukan tekeminen tapahtuu repeat-käskyn avulla joka toimii seuraavasti.
- repeat (toistojen lukumäärä) [ (suoritettavat lauseet) ] - Seuraavassa esimerkissä neliö on piirretty repeat-käskyn avulla
LOGO-koodia (tämän voi kirjoittaa ja leikata ja liimata Konnan koodi-ikkunaan):
# piirretään neliö silmukan avulla¶ reset repeat 4 [ # toistetaan sulkujen sisällä olevat lauseet neljä kertaa peräkkäin forward 100 turnleft 90 ]
Repeat on helpoin silmukkakäsky joka Konnassa on, mutta ei kuitenkaan ainoa. Konnassa toimivat myös monista ohjelmointikielistä tutut while- ja for- silmukat. Kyseisiin silmukkamuotoihin perehdytään mahdollisesti myöhemmin ilmestyvässä Konna-artikkelissa.
Ehtolauseet[muokkaa]
Ehtolauseiden avulla ohjelmoinnissa on mahdollista tehdä esimerkiksi valintoja aiemmin suoritettujen tulosten perusteella ja vaikuttaa siten ohjelman toimintaan. Konnassa käytettävät ehtolausekomennot ovat if- ja else-käskyt. If-käsky voi esiintyä yksin, mutta Else-käsky esiintyy vain if-lauseen yhteydessä. Ehtolauseissa käytetään tyypillisesti vertailtavina elementteinä muuttujiin tallennettuja tuloksia. Ehtolauseita käytetään seuraavasti.
- if (kysymys) [käskyt jotka suoritetaan mikäli kysymyksen asettama ehto täyttyy]
- else [käskyt jotka suoritetaan mikäli edeltävän if-lauseen ehdot eivät täyty]
LOGO-koodia (tämän voi kirjoittaa ja leikata ja liimata Konnan koodi-ikkunaan):
reset #alustetaan ohjelman asetukset go 10,50 muuttuja=55 #asetetaan muuttuja nimisen muuttujan arvoksi 55 if muuttuja < 56 [ #tutkitaan ehtolauseella onko muuttuja suurempi kuin 56 print "koska muuttuja on suurempi kuin 56, tulostetaan tämä teksti" ] #koska edellinen ehto toteutuu suoritetaan suluissa oleva lause else [#mikäli ehto ei täyty suoritetaan seuraava lause print "if-lauseen ehto ei täyttynyt joten tuostetaan tämä teksti" ]