Ero sivun ”Logo-ohjelmointia Konnalla” versioiden välillä

Siirry navigaatioon Siirry hakuun
(jatko artikkelit)
Rivi 23: Rivi 23:
Seuraavaksi tutustutaan itse Konna-ohjelman toimintoihin sekä valmiiden esimerkkiohjelmien avaamiseen.
Seuraavaksi tutustutaan itse Konna-ohjelman toimintoihin sekä valmiiden esimerkkiohjelmien avaamiseen.


== Ohjelman toiminnot ==
== Perustoiminnot ==
[[Kuva:2-konna-ohjelmointi-toiminnot.png|thumb|250px|none]]
[[Kuva:2-konna-ohjelmointi-toiminnot.png|thumb|250px|none]]


Rivi 42: Rivi 42:
# ''Lopeta suoritus - ''Lopeta ohjelman suoritus
# ''Lopeta suoritus - ''Lopeta ohjelman suoritus


== Valmiiden esimerkkiohjelmien avaaminen ==
=== 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.
Konna sisältää useita valmiita esimerkkiohjelmia joiden avulla ohjelmointikielen toimintaan voidaan tutustua tai joiden avulla voi saada ideoita omiin ohjelmiin. Esimerkkiohjelman lataaminen tapahtuu seuraavasti.


Rivi 56: Rivi 56:
[[Kuva:5-konna-ohjelmointi-koodi.png|thumb|250px|none]]
[[Kuva:5-konna-ohjelmointi-koodi.png|thumb|250px|none]]


== Ohjelman suorittaminen ==
=== Ohjelman suorittaminen ===
Ladattu ohjelma voidaan suorittaa napsauttamalla työkalurivillä olevaa ''Suorita''-painiketta [[Kuva:6-konna-ohjelmointi-suorita.png|thumb|250px|none]]. 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 [[Kuva:6-konna-ohjelmointi-suorita.png|thumb|250px|none]]. Ohjelman päättyessä kilpikonna pysähtyy ja ohjelman esimerkiksi muokkaamista voidaan jatkaa.
Ladattu ohjelma voidaan suorittaa napsauttamalla työkalurivillä olevaa ''Suorita''-painiketta [[Kuva:6-konna-ohjelmointi-suorita.png|thumb|250px|none]]. 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 [[Kuva:6-konna-ohjelmointi-suorita.png|thumb|250px|none]]. 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.
[[Kuva:1-konna-osa1-aloitus.png|thumb|250px|none]]
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.
[[Kuva:2-konna-osa1-peruskaskyt.png|thumb|250px|none]]
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 ''<nowiki>#</nowiki>''-merkillä.
=== Ohjelman suoritus ===
Ohjelma suoritetaan napsauttamalla ''suorita''-painiketta [[Kuva:3-konna-osa1-suorita.png|thumb|250px|none]].
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.
[[Kuva:4-konna-osa1-suoritettu.png|thumb|250px|none]]
=== 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
[[Kuva:5-konna-osa1-viiva_omin.png|thumb|250px|none]]
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.
[[Kuva:6-konna-osa1-alusta.png|thumb|250px|none]]
''LOGO-koodia (tämän voi kirjoittaa ja leikata ja liimata Konnan koodi-ikkunaan): ''
<nowiki>#Alustetaan kaikki asetukset</nowiki>
reset
<nowiki>#Muutetaan alustan kokoa ja väriä</nowiki>
canvassize 400,300
canvascolor 255,0,0
<nowiki>#Tästä alkaa piirtäminen</nowiki>
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): ''
[[Kuva:2-konna-osa2-matka.png|thumb|250px|none]]
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): ''
[[Kuva:3-konna-osa2-tekstiesimerkki.png|thumb|250px|none]]
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
<nowiki># piirretään neliö toistamalla samoja käskyjä peräkkäin</nowiki>
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ä) ''<nowiki>[</nowiki>'' (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):''
[[Kuva:4-konna-osa2-silmukka.png|thumb|250px|none]]
<nowiki># piirretään neliö silmukan avulla¶</nowiki>
reset
<nowiki>repeat 4 [ # toistetaan sulkujen sisällä olevat lauseet neljä kertaa peräkkäin</nowiki>
  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'') ''<nowiki>[</nowiki>''käskyt jotka suoritetaan mikäli kysymyksen asettama ehto täyttyy'']''
* ''<nowiki>else [</nowiki>''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):[[Kuva:5-konna-osa2-ehtolause.png|thumb|250px|none]] ''
reset #alustetaan ohjelman asetukset
go 10,50
muuttuja=55 #asetetaan muuttuja nimisen muuttujan arvoksi 55
<nowiki>if muuttuja < 56 [ #tutkitaan ehtolauseella onko muuttuja suurempi kuin 56</nowiki>
print "koska muuttuja on suurempi kuin 56, tulostetaan tämä teksti"
] #koska edellinen ehto toteutuu suoritetaan suluissa oleva lause
<nowiki>else [#mikäli ehto ei täyty suoritetaan seuraava lause</nowiki>
  print "if-lauseen ehto ei täyttynyt joten tuostetaan tämä teksti"
]


[[Luokka:Ohjeet]]
[[Luokka:Ohjeet]]