Sisällys

# 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 (LibreOffice - Preferences Tools - Options - Languages and Locales - General - 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

To reset the command line triple-click it or press Command Ctrl+A to select the previous commands, and type the new commands.

## Graafinen käyttöliittymä konnan perusasetuksille

Turtle shape of LibreLogo is a normal fixed size drawing object. You can position and rotate it on standard way, too, using the mouse and the Rotate icon of the Drawing Object Properties toolbar. Modify Line Thickness, Line Color and Area Color settings of the turtle shape to set PENSIZE, PENCOLOR and FILLCOLOR attributes of LibreLogo.

## 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

       TO star size color
       FILLCOLOR color
       REPEAT 5 [ LEFT 72 FORWARD size RIGHT 144 FORWARD size ]
       FILL
       END

       star 100 “red”
       star(100, “green”)
       star(100, “blue”)

# LibreLogo-komennot

## Basic syntax

### 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

Lines of a LibreLogo program are paragraphs in the Writer document. A program line can contain multiple commands:

     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)

     PENSIZE 100 ; line thickness is 100 points
     PENSIZE ANY ; equivalent of PENSIZE RANDOM 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

     FONTFAMILY “Linux Libertine G” ; set font (family)
     FONTFAMILY “Linux Libertine G:smcp=1” ; set also font feature (small caps)
     FONTFAMILY “Linux Libertine G:smcp=1&onum=1” ; small caps + old figures

### 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ä

See also “Group” in LibreOffice Writer Help.

     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-like list generation
     PRINT LIST RANGE 10 ; print [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     PRINT LIST RANGE 3 10 ; print [3, 4, 5, 6, 7, 8, 9]
     PRINT LIST RANGE 3 10 3 ; print [3, 6, 9]

     FOR i IN RANGE 10 50 10 [ ; loop for [10, 20, 30, 40]
       FORWARD i
       LEFT 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]

### MONIKKO

Muunnos Python-monikoksi (ei-muokattava lista)

     TULOSTA MONIKKO [4, 5]

### JÄRJESTETTY

Komento palauttaa järjestetyn listan.

     TULOSTA JÄRJESTETTY [5, 1, 3, 4] ; tulostaa [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

Please support us!