Module
Contents
Index 🔎︎

# LibreLogo

LibreLogo on yksinkertainen, suomenkielinen, Logo-tyylinen ohjelmointiympäristö, jossa on vektoripohjainen konnagrafiikka. Se soveltuu tietotekniikan opetukseen (ohjelmointi), DTP:een ja graafiseen suunnitteluun. Englanninkielinen esittely: http://www.numbertext.org/logo/librelogo.pdf.

## LibreLogo-palkki

The LibreLogo toolbar (View - Toolbars - Logo) contains turtle moving, program start, stop, home, clear screen, program editor/syntax highlighting/translating icons and an input bar (command line).

## Konnan liikuttelun kuvakkeet

Kuvakkeet vastaavat Logo-komentoja: "ETEEN 10", "taakse 10", "vasemmalle 15", "oikealle 15. Kuvakkeen napsautus siirtää myös kohdistuksen konnakuvioon sivua vierittäen.

## Käynnistä Logo-ohjelma

Napsauta kuvaketta "Käynnistä Logo-ohjelma" suorittaaksesi Writer-asiakirjassa olevan tekstin (tai vain valitun tekstin). Jos asiakirja on tyhjä, siihen lisätään esimerkkiohjelma, joka suoritetaan.

Ohjelman suorittamisen lopettamiseksi napsauta Pysäytä-kuvaketta

## Kotiin

Konnan aseman ja asetusten palauttamiseksi alkutilaansa napsauta Kotiin-kuvaketta.

## Näytön tyhjennys

Piirrosobjektien poistamiseksi asiakirjasta napsauta Tyhjennä näyttö -kuvaketta.

## Ohjelman muokkaus / Syntaksikorostus / Kääntäminen

The “magic wand” icon sets 2-page layout for program editing, expands and converts to uppercase the abbreviated, lowercase Logo commands in the Writer document. Change the language of the document (Tools - Options - Language Settings - Languages - Western) and click on this icon to translate the Logo program to the selected language.

## Komentorivi

Paina Enteriä komentorivillä sen sisällön suorittamiseksi. Ohjelman pysäyttämiseen käytä Pysäytä-kuvaketta.

Pidä Enter-näppäin painettuna toistaaksesi komentorivin, esimerkkiksi seuraavan komentosarjan:

     ETEEN 200 VASEMMALLE 89

Komentorivin palauttamiseksi alkutilaansa kolmoisnapsauta sitä tai paina Ctrl-A vanhentuneiden komentojen valitsemiseksi. Kirjoita sitten uudet komennot.

## Graafinen käyttöliittymä konnan perusasetuksille

LibreLogon konna on myös tavallinen vakiokokoinen piirrosobjekti. Sitä voi siirtää tai kiertää normaalilla tavalla myös hiirellä ja käyttämällä kierrä-kuvaketta piirrosobjektin ominaisuudet -työkalupalkissa. Muuttamalla konna-kuvion viivan leveyttä, viivan väriä ja täyttöväriä muuttuvat myös LibreLogon KYNÄNLEVEYS, KYNÄNVÄRI ja TÄYTTÖVÄRI.

## Ohjelman muokkaus

LibreLogon piirrokset ja ohjelma käyttävät samaa Writer-asiakirjaa. LibreLogon piirtoalue on Writer-asiakirjan ensimmäisellä sivulla. Logo-työkalupalkin "taikasauvakuvakkeella" voidaan lisätä sivunvaihto LibreLogo-ohjelmien edelle ja säätää fonttikoko sopivaksi kahden sivun asettelulle LibreLogo-ohjelmointia varten; vasen (ensimmäinen) sivu on piirtoalusta ja oikea (toinen) sivu on LibreLogo-ohjelmille.

# LibreLogo-ohjelmointikieli

LibreLogo on helposti eri kielille mukautettava, Logo-tyylinen ohjelmointikieli, jonka LibreOfficen kieliyhteisöt ovat kääntäneet usealle eri kielelle. Se on taaksepäin yhteensopiva vanhempien Logo-toteutusten kanssa, eli vanhoista opetusmateriaaleista löytyvät Logo-ohjelmat toimivat siinä usein sellaisenaan.

     TEE kolmio :koko
     TOISTA 3 [
       ETEEN :koko
       VASEMMALLE 120
     ]
     LOPPU

     kolmio 10 kolmio 100 kolmio 200

## LibreLogon erot Logo-ohjelmointikielestä

- Listan jäsenet eli alkiot on erotettu pilkuin: PAIKKA [0, 0]

- Ohjelmalohkot ja listat eroavat toisistaan

- - Ohjelmalohkot vaativat välilyönnin tai rivinvaihdon sulkeisiin: TOISTA 10 [ ETEEN 10 VASEMMALLE 36 ]

  - Listat vaativat välittömät sulkeet, näin: PAIKKA [0, 0], ei näin: PAIKKA [ 0, 0 ]

- Yksiriviset funktion esittelyt eivät ole tuettuja (TEE ja LOPPU vaativat rivinvaihdon).

## LibreLogon muita piirteitä

- Kaksoispiste on valinnainen muuttujanimien edellä.

       TEE kolmio koko
        TOISTA 3 [ ETEEN koko  VASEMMALLE 120 ]
       LOPPU

- Merkkijonojen merkintätapana tuetaan sekä kieliopillista että Python-merkintää.

       TULOSTA "sana ; alkuperäinen Logo-merkintätapa
       TULOSTA ”Jotain tekstiä.” ; Writer-merkintätapa
       TULOSTA 'Jotain tekstiä.' ; Python-merkintätapa

- Pythonin listojen ja merkkijonojen käsittely

       TULOSTA "text"2] ; tulostus: x
       TULOSTA "text"[1:3] ; tulostus: ex

- Python-tyylinen JOKAISELLE-silmukka (FOR)

- Python-tyylinen muuttujien esittely:

       x = 15
       TULOSTA x

- Ylimääräisiä kyselytoimintoja ei ole:

       TULOSTA TÄYTTÖVÄRI
       p = PAIKKA
       TULOSTA p
       TOISTA 10 [ PAIKKA JOKIN PAIKKA p ]

- Funktiokutsujen sulkeiden vaihtoehdot

       TEE tähti koko väri
       TÄYTTÖVÄRI väri
       TOISTA 5 [ VASEMMALLE 72 ETEEN koko OIKEALLE 144 ETEEN koko ]
       TÄYTÄ
       LOPPU

       tähti 100 'punainen'
       tähti (100, "vihreä")
       tähti(100, "sininen")

# LibreLogo-komennot

## Peruskielioppi

### Kirjainkoon huomiointi

Komennot ja värivakiot ovat kirjainkokoa huomioimattomia:

     TULOSTA "Heippa, maailma!"
    tulosta "Heippa taas, maailma!"

Muuttujien nimet ovat kirjainkoon huomioivia:

     a = 5
     A = 7
     TULOSTA a
     TULOSTA A

### Ohjelmarivit

LibreLogon ohjelmarivit ovat LibreOffice Writer -asiakirjan kappaleita. Yhdellä ohjelmarivillä voi olla lukuisia komentoja eli käskyjä:

     TULOSTA "Heippa, maailma!" TULOSTA "LibreLogo"

### Huomautukset

Kommentit alkavat riviltä puolipisteestä ja jatkuvat rivin (kappaleen) loppuun:

     ; joitain kommentteja
     PRINT 5 * 5 ; joitain kommentteja

### Ohjelmarivien jakaminen useisiin kappaleisiin

Ohjelmarivin jakaminen tai jatkaminen useammalle kappaleelle on mahdollista käyttämällä rivin lopussa aaltoviivaa eli tilde-merkkiä:

     TULOSTA "Tässä on hyvin pitkä " + ~
           "varoitusviesti"

## Konnan liikkuminen

### ETEEN (et)

     ETEEN 10 ; eteenpäin 10pt (1pt = 1/72 tuumaa)
     ETEEN 10pt ; katso ylempää
    ETEEN 0,5tuuma ; eteenpäin 0,5 tuuma (1 tuuma = 2.54 cm)
     ETEEN 1" ; katso ylempää
     ET 1mm
     ET 1cm

### TAAKSE (tk)

     TAAKSE 10 ; liikutaan taaksepäin 10pt

### VASEMMALLE (vas)

     VASEMMALLE 90 ; käännytään vastapäivään 90 astetta
    VASEMMALLE 90° ; see above
     ;LT 3t ; see above (tuntiviisari)
     ;LT jokin ; käännytään satunnaiseen suuntaan

### OIKEALLE (oik)

     OIKEALLE 90 ; käännytään myötäpäivään 90 astetta

### KYNÄYLÖS (ky)

     KYNÄYLÖS ; konna liikkuu piirtämättä

### KYNÄALAS (ka)

     KYNÄALAS ; konna liikkuu piirtäen

### PAIKKA

     PAIKKA [0, 0] ; käännytään ja siirrytään vasempaan yläkulmaan
     PAIKKA SIVUKOKO ; käännytään ja siirrytään oikeaan alakulmaan
     PAIKKA [SIVUKOKO[0], 0] ; käännytään ja siirrytään oikeaan yläkulmaan
    ;PAIKKA ANY ; turn and move to a random position

### SUUNTA

     SUUNTA 0 ; käänny pohjoiseen
     SUUNTA 12t ; katso ylempää
     SUUNTA [0, 0] ; käänny vasempaa ylänurkkaa kohti
     SUUNTA JOKIN ; käännytään satunnaisen asentoon

## Muut konnakomennot

### PIILOTAKONNA (pk)

     PIILOTAKONNA ; kätketään konna (seuraavaan näytäkonna-komentoon saakka)

### NÄYTÄKONNA (nk)

     NÄYTÄKONNA ; konna näkyväksi

### KOTIIN

     HOME ; reset initial turtle position

### TYHJENNÄNÄYTTÖ (tn)

     TYHJENNÄNÄYTTÖ ; poistetaan asiakirjan piirrosobjektit

### TÄYTÄ ja SULJE

     TÄYTÄ ; suljetaan ja täytetään käsiteltävä viivakuvio tai pisteet
     SULJE ; suljetaan käsiteltävä viivakuvio tai yhdistetään käsiteltävät pisteet

Esimerkki: tasasivuisen kolmion täyttö:

     ETEEN 50 VASEMMALLE 120 ETEEN 50 TÄYTÄ

Esimerkki: tasasivuisen kolmion piirtäminen:

     ETEEN 50 VASEMMALLE 120 ETEEN 50 SULJE

## Kynän asetukset

### KYNÄNLEVEYS (kl)

     KYNÄNLEVEYS 100 ; viivan paksuus on 100 pistettä
     KYNÄNLEVEYS JOKIN ; sama kuin  KYNÄNLEVEYS SATUNNAINEN 10

### KYNÄNVÄRI (kv)

     KYNÄNVÄRI 'punainen'; asetetaan kynän väri punaiseksi (värien nimistä, katso värivakiot)
     KYNÄNVÄRI [255, 255, 0] ; väri keltaiseksi (RGB-luettelo)
     KYNÄNVÄRI 0xffff00 ; väri keltaiseksi (heksakoodi)
     KYNÄNVÄRI 0 ; väri mustaksi (0x000000)
     KYNÄNVÄRI  JOKIN ; satunnaiseksi väriksi
     KYNÄNVÄRI [5] ; väri punaiseksi (väritunnuksesta, katso värivakiot)
     KYNÄNVÄRI "näkymätön" ; kynän väri näkymättömäksi kuvioille ilman näkyvää ääriviivaa
     KYNÄNVÄRI '~punainen' ; satunnaiseksi punaiseksi väriksi

### KYNÄNLÄPINÄKYVYYS

     KYNÄNLÄPINÄKYVYYS 80 ; asettaa kynän värin läpinäkyvyydeksi 80%

### VIIVANPÄÄ

     VIIVANPÄÄ "eimitään" ; ei kuviota viivan päässä (oletus)
     VIIVANPÄÄ "pyöreä" ; pyöristetty viivan pää
     VIIVANPÄÄ "neliö" ; kulmikas viivan pää

### KYNÄNMUOTO

     KYNÄNMUOTO "pyöreä" ; pyöristetty viivaliitos (oletus)
     KYNÄNMUOTO "jiiri" ; terävä viivaliitos
     KYNÄNMUOTO "viisto" ; viistottu viivaliitos
     KYNÄNMUOTO "eimitään" ; ilman liitosmuotoilua

### KYNÄNTYYLI

     KYNÄNTYYLI "yhtenäinen"; katkeamaton viiva (oletus)
     KYNÄNTYYLI "pisteistä" ; pisteviiva
     KYNÄNTYYLI "katkonainen" ; katkoviiva

     ; mukautettu piste-viiva-kuvio määritetään seuraavien argumenttien  listalla:
     ; – peräkkäisten pisteiden lukumäärä
     ; – pisteen pituus
     ; – peräkkäisten viivojen määrä
     ; – viivan pituus
     ; – pisteiden ja viivojen väli
     ; – tyyppi (valinnainen):
     ;   0 = pisteet ovat suorakulmioita (oletus)
     ;   2 = pisteet ovat neliöitä (pituus ja väli ovat suhteessa kynänleveyteen)

     KYNÄNTYYLI [3, 1mm, 2, 4mm, 2mm, 2] ; ...––...––...––

## Täyttöasetukset

### TÄYTTÖVÄRI (tv)

     TÄYTTÖVÄRI ”sininen” ; täytä sinisellä värillä, katso myös KYNÄNVÄRI
     TÄYTTÖVÄRI ”näkymätön” YMPYRÄ 10 ; ympyrä ilman täyttöväriä
     TÄYTTÖVÄRI [”sininen”, ”punainen”] ; liukuvärjäys punaisen ja sinisen välillä
     TÄYTTÖVÄRI [[255, 255, 255], [255, 128, 0]] ; valkoisen ja oranssin välillä
     TÄYTTÖVÄRI [”sininen”, ”punainen”, 1, 0, 0] ; asettaa aksiaalinen liukuvärin (kierto- ja reunusasetuksilla), mahdolliset arvot: 0-5 = lineaarinen, aksiaalinen, säteittäinen, elliptinen, neliö ja suorakulmio liukuvärjäyksen suuntana
     TÄYTTÖVÄRI [”punainen”, ”sininen”, 0, 90, 20] ; lineaarinen 20% reunuksella, kierrettynä 90 astetta konnan kulkusuuntaan nähden
     TÄYTTÖVÄRI [”punainen”, ”sininen”, 0, 90, 20, 0, 0, 200, 50] ; intensiteetti 200% - 50%
     TÄYTTÖVÄRI [JOKIN, JOKIN, 2, 0, 0, 50, 50] ; säteittäinen liukuväri satunnaisilla väreillä ja 50-50% keskipisteen vaaka- ja pystysuuntaisella sijainnilla

### TÄYTTÖLÄPINÄKYVYYS

     TÄYTTÖLÄPINÄKYVYYS 80 ; asettaa täyttövärin läpinäkyvyydeksi 80%
     TÄYTTÖLÄPINÄKYVYYS [80] ; asettaa lineaarisen läpinäkyvyysgradientin 80% - 0%
     TÄYTTÖLÄPINÄKYVYYS [80, 20] ; asettaa lineaarisen läpinäkyvyysgradientin 80% - 20%
     TÄYTTÖLÄPINÄKYVYYS [80, 20, 1, 90] ; asettaa aksiaalisen läpinäkyvyysgradientin kierrettynä 90 astetta konnan kulkusuuntaan nähden
     TÄYTTÖLÄPINÄKYVYYS [80, 20, 2, 0, 20, 50, 50] ; asettaa säteittäisen läpinäkyvyysgradientin ulkopuolen 80%:n sisäpuolen 20%:n läpinäkyvyyteen 20% reunuksella ja 50-50% vaaka- ja pystysuuntaisella keskipisteen sijainnilla

### TÄYTTÖTYYLI

     TÄYTTÖTYYLI 0 ; täyttö ilman viivoitusta (oletus)
     TÄYTTÖTYYLI 1 ; musta vaakaviivoitus
     TÄYTTÖTYYLI 2 ; musta vinoviivoitus (45 astetta)
     TÄYTTÖTYYLI 3 ; musta vinoviivoitus (-45 astetta)
     TÄYTTÖTYYLI 4 ; musta pystyviivoitus
     TÄYTTÖTYYLI 5 ; punainen ristikko (45 astetta)
     TÄYTTÖTYYLI 6 ; punainen ristikko (0 astetta)
     TÄYTTÖTYYLI 7 ; sininen ristikko (45 astetta)
     TÄYTTÖTYYLI 8 ; sininen ristikko (0 astetta)
     TÄYTTÖTYYLI 9 ; sininen kolmiverkko
     TÄYTTÖTYYLI 10 ; musta vinoviivoitus (harva)

     ; mukautettu viivoitus, joka määritetään seuraavalla argumenttilistalla:
     ; – tyyli (1 = yksinkertainen, 2 = kaksois-, 3 = kolmoisviivoitus)
     ; – väri
     ; – väli
     ; – aste

     TÄYTTÖTYYLI [2, "vihreä", 3pt, 15°] ; vihreä ristikko (15 astetta)

## Piirrosobjektit

### YMPYRÄ

     YMPYRÄ 100 ; piirtää ympyräkuvion  (halkaisija = 100pt)

### ELLIPSI

     ELLIPSI [50, 100] ; piirtää soikion 50 ja 100 pisteen akselein
     ELLIPSI [50, 100, 2t, 12t] ; piirtää soikiosektorin (alkaen klo 2:sta klo 12:een)
     ELLIPSI [50, 100, 2t, 12t, 2]  ; piirtää soikiosegmentin
     ELLIPSI [50, 100, 2h, 12h, 3]  ; draw an elliptical arc

### NELIÖ

     NELIÖ 100 ; piirtää neliökuvion (koko = 100pt)

### SUORAKULMIO

     SUORAKULMIO [50, 100] ; piirtää suorakulmion (50×100pt)
     SUORAKULMIO [50, 100, 10] ; piirtää kulmista pyöristetyn suorakulmion

### PISTE

     PISTE ; piirtää kynän koon ja värin mukaisen pisteen

SULJE yhdistää viimeisimmät pisteet, TÄYTÄ täyttää pisteiden määrittämän kuvion. Esimerkiksi ”litteän” tähden piirtäminen lähtien sen keskipisteestä on helppoa:

     KYNÄYLÖS
     TOISTA 5 [
     ETEEN 80
     PISTE
     TAAKSE 80
     OIKEALLE 36
     ETEEN 50
     PISTE
     TAAKSE 50
     OIKEALLE 120
     ] TÄYTÄ

### SELITE

     SELITE "teksti" ; tulostaa tekstn konnan kohdalle
     SELITE 'teksti' ; katso ylempää
     SELITE "teksti; katso ylempää (vain yksittäisille sanoille)

### TEKSTI

     YMPYRÄ 10 TEKSTI "tekstiä" ; tekstittää käsiteltävän piirrosobjektin

## Fonttiasetukset

### FONTINVÄRI

     FONTINVÄRI "vihreä" ; asettaa kirjainten värin

### FONTTIPERHE

     FONTTIPERHE “Linux Libertine G” ; asettaa fontin (perheen)
     FONTTIPERHE “Linux Libertine G:smcp=1” ; asettaa myös fontin ominaisuuden (kapiteeli)
     FONTTIPERHE “Linux Libertine G:smcp=1&onum=1” ; kapiteeli + vanhat kuviot

### FONTTIKOKO

     FONTTIKOKO 12 ; kirjainkooksi 12pt

### FONTINPAKSUUS

     FONTINPAKSUUS "lihavoitu" ; asettaa lihavoinnin
     FONTINPAKSUUS "tavallinen" ; asettaa paksuuden normaaliksi

### FONTTITYYLI

     FONTTITYYLI "kursivointi" ; asetetaan kursivointi
     FONTTITYYLI "tavallinen" ; asetetaan normaali tekstityyli

## KUVA

Kuvan käyttökohteet:

- kuvioryhmittely;

- uuden viivakuvion aloitus;

- SVG-kuvien ja SVG/SMIL-animaatioiden tallennus;

- pitäen asentojen yhtenäisyyden ja viivakuviot vasemmassa reunassa.

### Kuvioryhmittely

     ; KUVA [ LibreLogo_komennot ]
     KUVA [ ETEEN 100 YMPYRÄ 100 ] ; puumainen kuvioryhmä

Katso myös "Ryhmä" LibreOffice Writerin ohjeista.

     TO tree location
       PENUP POSITION location HEADING 0 PENDOWN
       PICTURE [ FORWARD 100 CIRCLE 100 ] ; tree-like grouped shape
     END

     PICTURE [ tree [230, 400] tree [300, 400] ] ; grouped shapes in a grouped shape

### Uuden viivakuvion aloittaminen

     KUVA ; aloittaa uuden viivakuvion
     ETEEN 10 KUVA ETEEN 10 ; kaksi erillistä viivakuviota

### SVG-kuvien tallennus

     KUVA "esimerkki.svg" [ YMPYRÄ 5 ] ; tallenna kuva SVG-muodossa käyttäjän kansioon
     KUVA "Työpöytä/esimerkki.svg" [ ETEEN 100 YMPYRÄ 5 ] ; kuten yllä, mutta suhteellisella kansiopolulla
     KUVA "/home/käyttäjätunnus/esimerkki.svg" [ YMPYRÄ 5 ] ; absoluuttinen polku Unixissa tai Linuxissa
     KUVA "C:\esimerkki.svg" [ YMPYRÄ 5 ] ; absoluuttinen polku Windowsissa

### SVG/SMIL-animaatioiden tallennus (piirtäminen NUKU-komennoilla)

     KUVA "animaatio.svg" [ YMPYRÄ 5 NUKU 1000 YMPYRÄ 99 ] ; tallenna SVG/SMIL-animaatio (katso myös NUKU)
     KUVA "anomaatio2.svg" [ YMPYRÄ 5 NUKU 1000 YMPYRÄ 99 NUKU 2000 ] ; kuten edellä, mutta NUKU viimeisenä komentona johtaa toistoon: kahden sekunnin jälkeen SVG-animaatio käynnistyy uudelleen SMIL-yhteensopivissa selaimissa

### Yhtenäisyys vasemmassa reunassa

Use PICTURE to keep the consistency of positions and line shapes at the left border of Writer:

     KUVA [ YMPYRÄ 20 PAIKKA [-100, 100] YMPYRÄ 20 ]

## Silmukat

### TOISTA

     ; TOISTA luku [ komennot ]

     TOISTA 10 [ ETEEN 10 VASEMMALLE 45 YMPYRÄ 10 ] ; toistetaan 10 kertaa

     ; luku on valinnainen

     TOISTA [ PAIKKA JOKIN ] ; päättymätön silmukka

### TOISTOKERRAT

Silmukkamuuttuja (myös JOKAISELLE- ja KUNHAN-silmukoissa).

     TOISTA 100 [ ETEEN TOISTOKERRAT VASEMMALLE 90 ]

### jokaiselle

Silmukka listan alkioille:

     JOKAISELLE i [1, 5, 7, 9, 11]:SSA [
       ETEEN i
       VASEMMALLE 90
     ]

Silmukka merkkijoukon merkeille:

     JOKAISELLE i "teksti":SSÄ [
       SELITE i
       ETEEN 10
     ]

### KUNHAN

     KUNHAN TOSI [ PAIKKA JOKIN ] ; loputon silmukka
     KUNHAN TOISTOKERRAT <= 10 [ ETEEN 50 VASEMMALLE 36 ] ; sama kuin TOISTA 10 [ ... ]

### KESKEYTÄ

Pysäytä silmukassa.

     TOISTA [ ; loputon silmukka
       PAIKKA JOKIN
       JOS TOISTOKERRAT = 100 [ KESKEYTÄ ]  ; vastaava kuin TOISTA 100 [ ... ]
     ]

### JATKA

Hyppää seuraavaan silmukan kierrokseen.

     TOISTA 100 [
       PAIKKA JOKIN
       JOS TOISTOKERRAT % 2 = 0 [ JATKA ]
       YMPYRÄ 10 ; piirretään ympyrä joka toiseen paikkaan
     ]

## Ehdot

### JOS

     ; JOS ehto [ tosi-lohko ]
     ; JOS ehto [ tosi-lohko ] [ epätosi-lohko ]

     JOS a < 10 [ TULOSTA 'pieni' ]
     JOS a < 10 [ TULOSTA 'pieni' ] [ TULOSTA 'suuri' ]

### JA, TAI, EI

Loogiset operaattorit.

     JOS a < 10 JA EI a = 5 [ TULOSTA "0, 1, 2, 3, 4, 6, 7, 8 tai 9" ]
     JOS a < 10 JA a != 5 [ TULOSTA "0, 1, 2, 3, 4, 6, 7, 8 tai 9" ] ; kuten edellä

## Aliohjelmat

### TO, LOPPU

Uusi sana (tai aliohjelma).

     TO triangle
       REPEAT 2 [ FORWARD 100 RIGHT 120 ] FILL
     END

     REPEAT 10 [ triangle PENUP POSITION ANY PENDOWN ]

### KIRJOITA

Funktion paluuarvo.

     TEE randomletter
       KIRJOITA SATUNNAINEN "qwertzuiopasdfghjklyxcvbnm"
     LOPPU

     TULOSTA randomletter + randomletter + randomletter ; tuloste: 3-kirjaiminen satunnainen merkkijono

### PYSÄYTÄ

Aliohjelmasta palaaminen.

     TEE esimerkki luku
       JOS luku < 0 [ PYSÄYTÄ ]
       TULOSTA NELIÖJUURI luku ; tuloste: neliöjuuri
     ]

     esimerkki 100
     esimerkki -1 ; ei tulosta tai virhettä
     esimerkki 25

## Oletusmuuttujat

### JOKIN

Oletussatunnaisarvo väreille jne.

     KYNÄNVÄRI JOKIN ; satunnainen kynän väri

### TOSI

Looginen arvo.

     KUNHAN TOSI [ PAIKKA JOKIN ] ; loputon silmukka
     TULOSTA TOSI ; tuloste: tosi

### EPÄTOSI

Looginen arvo.

     KUNHAN EI EPÄTOSI [ PAIKKA JOKIN ] ; loputon silmukka
     TULOSTA EPÄTOSI ; tuloste: epätosi

### SIVUKOKO

     TULOSTA SIVUKOKO ; tuloste: lista sivun mitoista pisteinä, esim. [595 ,30, 841,89]

### PII/π

     TULOSTA PII ; tuloste: 3,14159265359

## Syöttö ja tulostus

### TULOSTA

     TULOSTA 'text'; tuloste: 'text' valintaikkunassa
     TULOSTA 5 + 10 ; tuloste: 15

### SYÖTÄ

     TULOSTA SYÖTÄ 'Syötä arvo?' ; kysytään ja tulostetaan merkkijono kyselyruudun avulla
     TULOSTA DESIMAALIL (SYÖTÄ "Ensimmäinen luku?") + DESIMAALIL (SYÖTÄ "Toinen luku?") ; yksinkertainen laskin

## NUKU

     NUKU 1000 ; odotetaan 1000 ms (1 s)

## YHTEINEN

Aseta yhteiset muuttujat käytettäviksi aliohjelmissa.

     YHTEINEN about
     about = “LibreLogo”

     TEE example
       TULOSTA about
       YHTEINEN about ; kun haluamme lisätä uuden arvon
       about = “new value for the global variable”
     LOPPU

     example
     TULOSTA about

## Funktiot

### SATUNNAINEN

     TULOSTA SATUNNAINEN 100 ; satunnainen desimaaliluku (0 <= x < 100)
     TULOSTA SATUNNAINEN 'text' ; satunnainen kirjain text-sanasta
     TULOSTA SATUNNAINEN [1, 2] ; satunnainen listan alkio (1 tai 2)

### KOKONAISL

     TULOSTA KOKONAISL 3,8 ; tuloste: 3 (kokonaisosa 3,8:sta)
     TULOSTA KOKONAISL SATUNNAINEN 100 ; satunnainen kokonaisluku (0 <= x < 100)
     TULOSTA KOKONAISL "7" ; muunnetaan merkkijonoparametri kokonaisluvuksi

### DESIMAALIL

     ; muunna merkkijonoparametrin desimaaliluvuksi
     TULOSTA 2 * DESIMAALIL “5,5” ; tuloste: 11,0

### MJONO

     ; muunna lukuparametrin merkkijonoksi
     TULOSTA “Result: ” + MJONO 5 ; tuloste: Result: 5
     TULOSTA 10 * MJONO 5 ; tuloste: 5555555555

### NELIÖJUURI

     TULOSTA NELIÖJUURI 100 ; tuloste: 10, neliöjuuri 100:sta

### SINI

     TULOSTA SINI 90 * PII/180 ; tuloste: 1,0 (sini 90° radiaaneina)

### KOSINI

     TULOSTA KOSINI 0 * PII/180 ; tuloste: 1,0 (kosini 0° radiaaneina)

### LOG10

     TULOSTA LOG10 100 ; tulostaa 2,0 (kymmenkantainen logaritmi luvusta 100)

### PYÖRISTÄ

     TULOSTA PYÖRISTÄ 3,8 ; tuloste: 4 (3,8 pyöristettynä)
     TULOSTAT PYÖRISTÄ SATUNNAINEN 100 ; satunnainen kokonaisluku (0 <= x <= 100)

### ITSEISARVO

     TULOSTA ITSEISARVO -10 ; tuloste: 10, itseisarvo luvusta -10

### LUKUMÄÄRÄ

     TULOSTA LUKUMÄÄRÄ “text” ; tuloste: 4, sanan “text” kirjainmäärä
     TULOSTA LUKUMÄÄRÄ [1, 2, 3] ; tuloste: 3, listan koko

### JOUKKO

     ; Muunna listan Python-joukoksi
     TULOSTA JOUKKO [4, 5, 6, 6] ; tuloste: {4, 5, 6}
     TULOSTA JOUKKO [4, 5, 6, 6] | SET [4, 1, 9] ; tuloste: {1, 4, 5, 6, 9}, yhdiste
     TULOSTA JOUKKO [4, 5, 6, 6] & JOUKKO [4, 1, 9] ; tuloste: {4}, leikkaus
     TULOSTA SET ([4, 5, 6, 6]) - JOUKKO [4, 1, 9] ; tuloste: {5, 6}, joukkoerotus
     TULOSTA JOUKKO [4, 5, 6, 6] ^ JOUKKO [4, 1, 9] ; tuloste: {1, 5, 6, 9}, symmetrinen erotus

### ALUE

     ; Python-tyylinen listaus
     TULOSTA ALUE 10 ; tuloste: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     TULOSTA ALUE 3 10 ; tuloste: [3, 4, 5, 6, 7, 8, 9]
     TULOSTA ALUE 3 10 3 ; tuloste: [3, 6, 9]

     JOKAISELLE i ALUE:SSA 10 50 10 [ ; silmukassa [10, 20, 30, 40]
       ETEEN i
       VASEMMALLE 90
     ]

### LISTA

     ; poista listan toistuvat alkiot käyttäen joukkoa ja listan muunnosta
     TULOSTA LISTA (JOUKKO [1, 3, 5, 5, 2, 1]) ; tuloste: [1, 3, 5, 2]

### PARI

Muunnos Python-pariksi (ei-muokattava lista)

     TULOSTA PARI [4, 5]

### LAJITELTU

Komento palauttaa lajitellun listan.

     TULOSTA LAJITELTU [5, 1, 3, 4] ; tulostetaan [1, 3, 4, 5]

### KORVAA

Korvaa merkkisarjoja käyttäen säännöllisiä lausekkeita (regex).

     TULOSTA KORVAA ('t', 'T', "text") ; tuloste: TexT, t korvattu T:llä
     TULOSTA KORVAA ("(.)", “\\1\\1", "text") ; tuloste: tteexxtt, jokainen kirjan kahdennettu

### ETSI

Etsitään merkkisarjoja käyttäen säännöllisiä lausekkeita.

     IF SEARCH (“\w”, "word") [ PRINT “Letter in the word.” ]

### ETSIKAIKKI

Haetaan syötemerkkijonon kaikki merkkisarjat, jotka vastaavat annettua säännöllistä lauseketta (regex).

     TULOSTA ETSIKAIKKI("\w+", "Koirat, kissat.") ; tulosteena ['Koirat', 'kissat'], sanojen luettelo.

### MIN

     TULOSTA PIENIN [1, 2, 3] ; tulosteena 1, listan pienin alkio

### MAKS

     TULOSTA SUURIN [1, 2, 3] ; tulosteena 3, listan suurin alkio

## Värivakiot

     KYNÄNVÄRI "HOPEA" ; asetus nimellä
     KYNÄNVÄRI [1] ; asetus tunnisteella
     KYNÄNVÄRI "~HOPEA" ; satunnainen hopeaväri

Tunniste | Nimi
0 | MUSTA
1 | HOPEA
2 | HARMAA
3 | VALKOINEN
4 | PUNARUSKEA
5 | PUNAINEN
6 | PURPPURA
7 | FUKSIA
8 | VIHREÄ
9 | LIMETTI
10 | OLIIVI
11 | KELTAINEN
12 | LAIVASTO
13 | SININEN
14 | SINIVIHREÄ
15 | SYAANI
16 | PINKKI
17 | TOMAATTI
18 | ORANSSI
19 | KULTA
20 | VIOLETTI
21 | TAIVAANSININEN
22 | SUKLAA
23 | RUSKEA
24 | NÄKYMÄTÖN