Logo-ohjelmointia Konnalla

Linux.fista
Versio hetkellä 14. tammikuuta 2010 kello 17.20 – tehnyt OpinsysASokero (keskustelu | muokkaukset)
Siirry navigaatioon Siirry hakuun

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

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

  1. Koodi-ikkuna - Alue johon ohjelmakoodi kirjoitetaan
  2. Alusta - Alue jossa kilpikonna liikkuu
  3. Työkalurivi - Ohjelman työkalut

Tärkeimmät pikapainikkeet

Järjestyksessä vasemmalta oikealle.

  1. Värin valinta - Väripaletti
  2. Kokoruututila - Ikkuna kokoruudun kokoiseksi
  3. Ohjelman suoritusnopeus - Kuinka nopeasti ohjelman rivit suoritetaan
  4. Suorita ohjelma - Käynnistä ohjelman suoritus
  5. Keskeytä suoritus - Keskeytä ohjelman suoritus
  6. Lopeta suoritus - Lopeta ohjelman suoritus

Valmiiden esimerkkiohjelmien avaaminen

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

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

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

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

Kilpikonnan liikuttaminen

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

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

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

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

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

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

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

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

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" 
]