Innhald
Innhaldsliste 🔎︎

# LibreLogo

LibreLogo er eit enkelt Logo-liknande programmeringsmiljø med vektorbasert skjelpaddegrafikk for å læra programmering og teksthandsaming, DTP og grafisk utforming. Sjå meir om dette på http://www.numbertext.org/logo/librelogo.pdf.

## Verktøylinja LibreLogo

Verktøylinja for LibreLogo (Vis → Verktøylinjer → Logo) inneheld knappar for å flytte skjelpadda, starta og stoppa programmet, heim, tøm skjermen, redigering/utheving/omsetjing og ei innskrivingslinje (kommandolinje).

## Knappar for flytting av skjelpadda

Knappane svarar til Logo-kommandoane “FOROVER 10”, “TILBAKE 10”, “VENSTRE 15”, “HØGRE 15”. Når du klikkar på ein av dei, vil markøren fokusera på skjelpadda.

## Starta logo-program

Klikk på knappen «Start Logo» for å køyra teksten eller den merkte teksten i Writer-dokumentet som eit LibreLogo-program. Viss dokumentet er tomt, vert eit eksempelprogram set inn og utført.

Klikk på knappen «Stopp» for å stoppa utføringa av programmet.

## Heim

Klikk på knappen «Heim» for å setja skjelpadda til utgangsstillinga og nullstilla innstillingane.

## Tøm skjermen

Klikk på knappen «Tøm skjermen» for å fjerna teikneobjekta frå dokumentet.

## Programredigering/syntaksutheving/omsetjing

Knappen «tryllestaven» opnar for eit tosidig oppsett for programredigering, utvidar og omformar dei forkorta Logo-kommandoane frå små til store bokstavar i Writer-dokumentet. Byt språk for dokumentet (LibreOffice → Preferansar Verktøy → Innstillingar → Språkinnstillingar → Språk → Vestleg) og klikk på denne knappen for å omsetja Logo-programmet til det valde språket.

## Kommandolinje

Trykk på Enter i kommandolinja for å utføra kommandoen. Bruk knappen «Stopp» for å stoppa programmet.

Hald nede Enter-tasten for å gjenta kommandoen i kommandolinja. For eksempel med denne sekvensen:

     FOROVER 200 VENSTRE 89

For å tilbakestilla kommandolinja trykk tre gonger på ho, eller trykk påKommando Ctrl + A for å velja dei førre kommandoane og skriv inn dei nye kommandoane.

## Grafisk brukargrensesnitt og grunnleggjande skjelpaddeinnstillingar

Skjelpaddefiguren i LibreLogo er eit vanleg teikneobjekt med fast storleik. Du kan plassera og rotera skjelpadda også på vanleg måte ved å bruka datamusa og roteringsknappen på verktøylinja for teikning. Du kan også bruka linjebreidd, linjefarge og områdefarge på den same verktøylinja for å endra PENNSTORLEIK, PENNFARGE og FYLLFARGE for LibreLogo.

## Programredigering

LibreLogo-teikningane og programkoden brukar det same Writer-dokumentet. Teikneflata for LibreLogo er på den første sida av dokumentet. Programmet vert skrive på den neste sida eller dei neste sidene om nødvendig. Når du opnar dokumentet, kan få fram skjelpadda og setja inn eit sideskift etter den første sida ved å trykkja på «tryllestaven» på verktøylinja for Logo. Det er som oftast praktisk og ha teiknesida og programsida side ved side. Du kan eventuelt endra skriftstorleiken slik at det vert lettare å lesa teksten.

# Programmeringsspråket LibreLogo

LibreLogo er eit enkelt Logo-liknande programmeringsspråk som er omsett til mange språk av LibreOffice sine mange omsetjarar. Språket er bakoverkompatibelt med eldre Logo-system for mellom anna å kunna brukast i undervisning og i andre samanhengar.

     TIL triangel :storleik
     GJENTA 3 [
       FOROVER :storleik
       VENSTRE 120
     ]
     SLUTT

     triangel 10 triangel 100 triangel 200

## Skilnadar frå det opphavlege Logo-programmeringsspråket

- Listeelementa er skilde med komma: PLASSERING [0, 0]

- Programblokker og lister vert handsama ulikt

- - Programblokker må skiljast med mellomrom eller linjeskift ved parentesane: GJENTA 10 [ FOROVER 10 VENSTRE 36 ]

  - Lister må skrivast i klammeparentesar utan mellomrom: PLASSERING [0, 0] ikkje PLASSERING [ 0, 0 ]

- Funksjonsdeklarasjonar på ei enkelt linje kan ikkje brukast. (Unnateke TIL og SLUTT, som må ha linjeskift etter seg).

## Andre funksjonar i LibreLogo

- Kolon er valfritt framføre variabelnamn.

       TIL triangel storleik
         GJENTA 3 [ FOROVER storleik VENSTRE 120 ]
       SLUTT

- Strengnotasjonen kan også skrivast i hermeteikn eller som Python-syntaks.

       SKRIV UT "ord ; original Logo-syntaks
       SKRIV UT «Vilkårleg tekst.» ; LibreOffice Writer
       SKRIV UT 'Vilkårleg tekst.' ; Python-syntaks

- Python liste- og strenghandsaming

       SKRIV UT “tekst”[2] ; skriv ut “k”
       SKRIV UT “tekst”[1:3] ; skriv ut “es”

- Python-liknande FOR-løkke

- Python-liknande variabeldeklarasjon

       x = 15
       SKRIV UT x

- Det finst ingen ekstra søkjefunksjonar:

       SKRIV UT FYLLFARGE
       p = PLASSERING
       SKRIV UT p
       GJENTA 10 [ PLASSERING ALLE PLASERING p ]

- Alternativ bruk av klammeparentesar i funksjonskall

       TIL stjerne storleik farge
       FYLLFARGE farge
       GJENTA 5 [ VENSTRE 72 FOROVER storleik HØGRE 144 FOROVER storleik ]
       FYLL
       SLUTT

       stjerne 100 “raud”
       stjerner (100, “grøn”)
       stjerne(100, “blå”)

# Kommandoar i LibreLogo

## Grunnleggjande syntaks

### Små og store bokstavar

Kommandoar og fargenamn skil ikkje mellom små og store bokstavar:

     SKRIV UT “Hallo verda!”
     skriv ut “Hallo verda igjen!”

Variabelnamna skil mellom små og store bokstavar:

     a = 5
     A = 7
     SKRIV UT a
     SKRIV UT A

### Programlinjer

Linjene i eit LibreLogo-program er avsnitt i eit LibreOffice Writer-dokument. Ei programlinje kan innehalda fleire kommandoar:

     SKRIV UT “Hallo, verda!” SKRIV UT “LibreLogo”

### Merknadar

Linjer eller delar av linjer kan gjerast til ein merknad ved å setja inn eit semikolon (;). Alt som kjem etter semikolonet, til linjeslutt, vert sett på som ein merknad.

     ; merknadar
     SKRIV UT 5 * 5 ; merknad

### Bryt programlinjene i fleire avsnitt

Det er råd å bryta ei programlinje over fleire linjer ved å bruka tilde-teiknet på slutten av linja:

     SKRIV UT "Dette er ei svært lang " + ~
           “feilmelding."

## Flytting av skjelpadda

### FOROVER, FRAM, FRAMOVER, FR

     FOROVER 10 ; flytt framover 10pt (1pt = 1/72 inch = 0,35 mm)
     FOROVER 10pt ; sjå ovanfor
     FOROVER 0.5in ; flytt framover 0.5 inch (1 inch = 2.54 cm)
     FOROVER 1" ; sjå ovanfor
     FR 1mm
     FR 1cm

### TILBAKE, BAKOVER, TB

     TILBAKE 10 ; flytt 10pt bakover

### VENSTRE, SNU VENSTRE, VE

     VENSTRE 90 ; snu 90 grader mot klokka
     VENSTRE 90° ; sjå ovanfor
     LT 3h ; sjå ovanfor (på klokka)
     VE ALLE ; snu til ein tilfeldig vinkel

### HØGRE, SNU HØGRE, HG

     HØGRE 90 ; snu 90 grader med klokka

### PENN OPP, PO

     PENN OPP ; flyttar skjelpadda utan å teikna

### PENN NED, PN

     PENN NED; skjelpadda teiknar medan ho flytter seg

### PLASSERING, PLASSER, POS

     PLASSER [0, 0] ; drei og flytt til det øvre, venstre hjørnet
     PLASSER SIDESTORLEIK ; drei og flytt til det nedre, høgre hjørnet
     PLASSER [SIDESTORLEIK[0], 0] ; drei og flytt til det øvre, høgre hjørnet
     PLASSER ALLE ; drei og flytt til ein tilfeldig posisjon

### SETRETNING (sett)

     RETNING 0 ; drei mot nord
     RETNING 12t ; sjå over
     RETNING [0, 0] ; drei mot det øvre, venstre hjørnet
     RETNING ALLE ; drei til ei tilfeldig retning

## Andre skjelpaddekommandoar

### GØYMMEG, GM

     GØYMMEG ; gøymer skjelpadda (til kommandoen VISMEG vert brukt)

### VISMEG, VM

     VISMEG ; vis skjelpadda

### HEIM

     HEIM ; Set skjelpadda i utgangsposisjonen

### TØMSKJERMEN, TS

     TØMSKJERMEN; fjernar alle teikneobjekt frå skjermen

### FYLL og LUKK

     FYLL: lukk og fyll den gjeldande strekfiguren eller punkta
    LUKK: lukk den gjeldande strekfiguren og bind saman dei aktuelle punkta

Eksempel: fylle ein likesida trekant:

     FRAM 50 VENSTRE 120 FRAM 50 FYLL

Eksempel: teikna ein likesida trekant:

     FRAM 50 VENSTRE 120 FRAM 50 LUKK

## Penninnstillingar

### PENNSTORLEIK, PENNBREIDD, LINJEBREIDD, PS

     PENNSTORLEIK 100 ; set linjebreidda til 100 pt
     PENNSTORLEIK ALLE ; det same som PENNSTORLEIK TILFELDIG 10

### PENNFARGE, LINJEFARGE, PF

     PENNFARGE “raud” ; set pennfargen til raud (med fargenamnet, sjå om fargekonstantar)
     PENNFARGE [255, 255, 0] ; set fargen til gul (RGB lista)
     PENNFARGE 0xffff00 ; set fargen til gul (heksadesimal kode)
     PENNFARGE 0 ; set fargen til svart (0x000000)
     PENNFARGE ALLE ; tilfeldig farge
     PENNFARGE [5] ; set fargen til raud (med fargeidentifikator, sjå fargekonstantar)
     PENNFARGE “usynleg” ; usynleg farge for figurar med usynleg omriss
     PENNFARGE “~raud” ; set tilfeldig, raud farge

### PENNGJENNOMSIKT

     PENNGJENNOMSIKT 80: set gjennomsikta for den aktuelle pennfargen til 80 %

### LINJEENDE

     LINJEENDE "ingen" ; utan ekstra linjeende (standard)
     LINJEENDE "avrunda" ; avrunda linjeende
     linjeende "kvadrat" ; kvadratisk linjeende

### LINJEKOPLING

     LINJEKOPLING "avrunda"; avrunda linjekopling (standard)
     LINJEKOPLING "skarp" ; skarp linjekopling
     LINJEKOPLING "skråkant" ; linjekopling med skrå kant
     LINJEKOPLING "ingen" ; utan linjekopling

### PENNSTIL, LINJESTIL

     PENNSTIL “einsfarga” ; einsfarga linje (standard)
     PENNSTIL “prikka” ; prikka linje
     PENNSTIL “stipla” ; stipla linje

     ; eigendefinert prikk-strek-mønster definert i ei liste med desse argumenta:
     ; – kor mange prikkar
     ; – lengd på kvar prikk
     ; – kor mange strekar
     ; – lengd på kvar strek
     ; – avstanden mellom prikkane/strekane
     ; – type (valfri):
     ;   0 = prikkane som rektangel (standard)
     ;   2 = prikkane er kvadrat (lengd og avstand er relativ til pennstorleiken)

     PENNSTIL [3, 1mm, 2, 4mm, 2mm, 2] ; ...––...––...––

## Val for fyll

### FYLLFARGE, FF

     FYLLFARGE “blå” ; fyll med blå farge, sjå også PENNFARGE
     FYLLFARGE “usynleg” SIRKEL 10 ; sirkel utan fyll
     FYLLFARGE [“blå”, “raud”] ; fargeovergang frå raud til blå
     FYLLFARGE [[255, 255, 255], [255, 128, 0]] ; frå kvit til oransje
     FYLLFARGE [“blå”, “raud”, 1, 0, 0] ; set aksiell fargeovergang (med nødvendige innstillingar for rotering og kantar), moglege verdiar: 0-5 = lineær, aksiell, radial, elliptisk, kvadratisk og rektangulær fargeovergang
     FYLLFARGE [“raud”, “blå”, 0, 90, 20] ; lineær med 20% kant, rotert med 90 grader frå hovudet på skjelpadda
     FYLLFARGE [“raud”, 'blå”, 0, 90, 20, 0, 0, 200, 50] ; frå 200% til 50% intensitet
     FYLLFARGE [ALLE, ALLE, 2, 0, 0, 50, 50] ; radiell fargeovergang med tilfeldige fargar og 50 % vassrett og loddrett plassering av sentrum.

### FYLLGJENNOMSIKT

     FYLLGJENNOMSIKT 80 ; set gjennomsikt for den aktuelle fyllfargen til 80%
     FYLLGJENNOMSIKT [80] ; set lineær gjennomsiktig overgang frå 80 % til 0 %
     FYLLGJENNOMSIKT [80, 20] ; set lineær gjennomsiktig overgang frå 80 % til 20%
     FYLLGJENNOMSIKT [80, 20, 1, 90] ; set aksial gjennomsiktig overgang rotert 90 grader i høve til skjelpaddehovudet
     FYLLGJENNOMSIKT [80, 20, 2, 0, 20, 50, 50] ; set radial gjennomsiktig overgang frå ytre 80 % til indre 20 % gjennomsikt med 20 % kant og sentrum 50 % vassrett og loddrett

### FYLLSTIL

     FYLLSTIL 0 ; fyll utan skravering (standard)
     FYLLSTIL 1 ; svarte, vassrette strekar
     FYLLSTIL 2 ; svarte skråstrekar (45°)
     FYLLSTIL 3 ; svarte skråstrekar (-45°)
     FYLLSTIL 4 ; svarte, loddrette strekar
     FYLLSTIL 5 ; raude, kryssande skråstrekar (45°)
     FYLLSTIL 6 ; raude, kryssande strekar (0°)
     FYLLSTIL 7 ; blå, kryssande strekar (45 grader)
     FYLLSTIL 8 ; blå, kryssande strekar (0°)
     FYLLSTIL 9 ; 3 blå strekar, vassrett, loddrett og skrå
     FYLLSTIL 10 ; svarte strekar med stor avstand (45°)

     ; eigendefinert skravering ut frå ei liste med desse argumenta:
     ; – stil (1 = enkel, 2 = dobbel, 3 = trippel skravering)
     ; – farge
     ; – avstand
     ; – grader

     FYLLSTIL [2, “grøn”, 3pt, 15] ; grøn, kryssa skravering (15°)

## Teikneobjekt

### SIRKEL

     SIRKEL 100 ; teiknar ein sirkel med diameter 100 pt

### ELLIPSE

     ELLIPSE [50, 100] ; teiknar ein ellipse med diametrane 50 og 100
     ELLIPSE [50, 100, 2t, 12t] ; teiknar ein sirkelsektor frå 2t (klokka 2) til 12t (klokka 12)
     ELLIPSE [50, 100, 2t, 12t, 2]  ; teiknar eit ellipsesegment
     ELLIPSE [50, 100, t, 12h, 3]  ; teiknar ein sirkelboge

### KVADRAT

     KVADRAT 100; teiknar eit kvadrat (storleik = 100 pt)

### REKTANGEL

     REKTANGEL [50, 100] ; teiknar eit rektangel på 50×100 pt
     REKTANGEL [50, 100, 10] ; teiknar eit rektangel med avrunda hjørne

### PUNKT

     PUNKT; teiknar eit punkt med same storleik og farge som pennen

LUKK kan kopla til det siste punktet, FYLL kan fylla figuren definert av punkt. Det er for eksempel enkelt å teikna ei «flat» stjerne ved å byrja i midten av stjerna.

     PENN OPP
     GJENTA 5 [
       FRAM 80
       PUNKT
       TILBAKE 80
       HØGRE 36
       FRAM 50
       PUNKT
       TILBAKE 50
       HØGRE 120
     ] FYLL

### ETIKETT

     ETIKETT “tekst” ; skriv teksten der skjelpadda er
     ETIKETT 'tekst' ; sjå ovanfor
     ETIKETT "tekst ; sjå ovanfor (berre for eitt enkelt ord)

### TEKST

     SIRKEL 10 TEKST "teksten" ; skriv ein tekst for det aktive teikneobjektet

## Skriftinnstillingar

### TEKSTFARGE

     TEKSTFARGE "grøn" ; set skriftfargen til grøn

### SKRIFTFAMILIE

     SKRIFTFAMILIE “Linux Libertine G” ; set skriftfamilien
     SKRIFTFAMILIE “Linux Libertine G:smcp=1” ; set også skriftfamilien (små bokstavar)
     SKRIFTFAMILIE “Linux Libertine G:smcp=1&onum=1” ; små bokstavar + klassisk stil

### TEKSTSTORLEIK, TEKSTHØGD

     TEKSTSTORLEIK 12 ; set skriftstorleiken til 12 pt

### SKRIFTTJUKKLEIK

     SKRIFTTJUKKLEIK “feit” ; set halvfeit skrift
     SKRIFTTJUKKLEIK “normal” ; set normalskrift

### SKRIFTSTIL

     SKRIFTSTIL "kursiv" ; bruk kursivskrift
     SKRIFTSTIL "normal" ; bruk normalskrift

## BILETE, FIG

BILETE vert brukt for å

- gruppera figurar;

- byrja nye strekfigurar;

- lagra SVG-bilete og SVG-/SMIL-animasjonar

- halda plasseringar og linjeformer i høve til den venstre kanten.

### Gruppering av figurar

     ; BILETE [ LibreLogo_kommandoar ]
     BILETE [ FOROVER 100 SIRKEL 100 ] ; tre-liknande gruppert form

Sjå også «Grupper» i hjelp for LibreOffice Writer.

     TIL tre stad
       PENN OPP PLASSERING stad RETNING 0 PENN NED
       BILETE [ FOROVER 100 SIRKEL 100 ] ; tre-liknande gruppert form
     SLUTT

     BILETE [ tre [230, 400] tre [300, 400] ] ; gruppert form i gruppert form

### Byrja nye strekteikningar

     BILETE ; byrjar ein ny strekfigur
     FOROVER 10 BILETE FOROVER 10 ; to strekfigurar

### Lagra SVG-bilete

     BILETE “eksempel.svg” [ SIRKEL 5 ] ; lagra biletet til ei SVG biletfil i brukarmappa
     BILETE “bibliotek/eksempel.svg” [ FRAM 100 SIRKEL 5 ] ; som ovanfor, men med relativ sti
     BILETE “/home/user/eksempel.svg” [ SIRKEL 5 ] ; absolutt sti for Unix/Linux
     BILETE “C:\eksempel.svg” [ SIRKEL 5 ] ; absolutt sti for Windows

### Lagra SVG-/SMIL-animasjonar (teikningar med PAUSE-kommandoar)

     BILETE “animasjon.svg” [ SIRKEL 5 PAUSE 1000 SIRKEL 99 ] ; lagra som SVG/SMIL-animasjon (sjå også PAUSE)
     BILETE “animasjon2.svg” [ SIRKEL 5 PAUSE 1000 SIRKEL 99 PAUSE 2000 ] ; som ovanfor, men ved å bruka PAUSE etter det siste objektet vil laga ei sløyfe. Etter 2 sekund vil SVG-animasjonen byrja på nytt i ein nettlesar som har støtte for SMIL.

### Justering i høve til venstre kant

Bruk BILETE for å plassera figurar i høve til den venstre kanten av Write-dokumentet:

     BILETE [ SIRKEL 20 PLASSERING [-100,100] SIRKEL 20 ]

## Løkker

### GJENTA

     ; GJENTA tal [ kommandoar ]

     GJENTA 10 [ FRAM 10 VENSTRE 45 SIRKEL 10 ] ; gjenta 10 gongar

     ; tal her er valfritt

     GJENTA [ PLASSERING ALLE ] ; endelaus løkke

### TELJAR

Inneheld verdien for løkkevariabelen. (Brukt i GJENTA og i FOR- og MEDAN-sløyfer)

     GJENTA 100 [ FOROVER TELJAR VENSTRE 90 ]

### FOR I

Lag løkke for listeelement:

     FOR n I [1, 5, 7, 9, 11] [
       FOROVER n
       VENSTRE 90
     ]

Lag løkke for teikna i ein tekstsekvens:

     FOR n I  "TEKST" [
     ETIKETT n
     FOROVER 10
     ]

### MEDAN

     MEDAN SANN [ PLASSERING ALLE ] ; endelaus løkke
     MEDAN TELJAR <= 10 [ FOROVER 50 VENSTRE 36 ] ; som GJENTA 10 [ ... ]

### AVBRYT

Stopp løkka.

     GJENTA [ ; endelaus løkke
       PLASSERING ALLE
       VISS TELJAR = 100 [ AVBRYT ]  ; det same som GJENTA 100 [ … ]
     ]

### HALD FRAM

Hopp til den neste gjentakinga av løkka.

     GJENTA 100 [
       PLASSERING ALLE
       VISS TELJAR % 2 = 0 [HALD FRAM ]
      SIRKEL 10 ; teiknar sirklar i annankvar plassering
     ]

## Vilkår

### VISS (IF på engelsk)

     ; VISS vilkår [ sann blokk ]
     ; VISS vilkår [ sann blokk ] [ usann blokk ]

     VISS a < 10 [ SKRIV UT “Liten” ]
     VISS a < 10 [ SKRIV UT “Liten” ] [ SKRIV UT “Stor” ]

### OG, ELLER, IKKJE

Logiske operatorar.

     VISS a < 10 OG IKKJE a = 5 [SKRIV UT “0, 1, 2, 3, 4, 6, 7, 8 eller 9” ]
     VISS a < 10 OG a != 5 [ SKRIV UT “0, 1, 2, 3, 4, 6, 7, 8 eller 9” ] ; I staden for IKKJE kan du bruka ! (utropsteiknet).

## Subrutinar

### TIL, SLUTT

Omsluttar definisjonen av ein eigendefinert prosedyre.

     TIL triangel
      GJENTA 2 [ FOROVER 100 HØGRE 120 ] FYLL
     SLUTT

     GJENTA 10 [ triangel PENN OPP PLASSERING ALLE PENN NED ]

### UTDATA

Returnerer verdien av funksjonen.

     TIL tilfeldigbokstav
       UTDATA TILFELDIG “qwertzuiopasdfghjklyxcvbnm”
     SLUTT

     SKRIV UT tilfeldigbokstav +  tilfeldigbokstav +  tilfeldigbokstav ; skriv ut tilfeldig samansett trebokstavars ord

### STOPP

Gå ut av prosedyren.

     TIL eksempel tal
       VISS tal < 0 [ STOPP ]
       SKRIV UT KVROT tal ; skriv ut kvadratrota
     ]

     eksempel 100
     eksempel -1 ; ingen utdata og inga feilmelding
     eksempel 25

## Standardvariablar

### ALLE

Finn ein tilfeldig verdi for eksempel frå standardfargane.

     PENNFARGE ALLE; hentar ein tilfeldig pennfarge

### SANN

Logisk verdi.

     MEDAN SANN [ PLASSERING ALLE ] ; endelaus løkke
     SKRIV UT SANN; skriv ut sann

### USANN

Logisk verdi.

     MEDAN IKKJE USANN [ PLASSERING ALLE ] ; endelaus løkke
     SKRIV UT USANN ; skriv ut usann

### SIDESTORLEIK

     SKRIV UT SIDESTORLEIK ; skriv ei liste med sidestorleiken i punkt, for eksempel [595.30, 841.89]

### PI/π

     SKRIV UT PI ; skriv ut 3.14159265359

## Inndata/utdata

### SKRIV, SKRIV UT

     SKRIV UT "teksten" ; skriv ut "teksten" i dialogvindauget
     SKRIV UT 5 + 10 ; skriv ut 15

### INNDATA

     SKRIV UT INNDATA "Verdi?" ; skriv ut spørsmålet i eit dialogvindauge
     SKRIV UT FLYTTAL (INNDATA "Første talet?") + FLYTTAL (INNDATA "Andre talet?") ; enkel kalkulator

## PAUSE, SOV

     PAUSE 1000 ; vent i 1000 millisekund (1 sekund)

## GLOBAL

Set globale variablar brukte i prosedyrar.

     GLOBAL om
     om = “LibreLogo”

     TIL eksempel
       SKRIV UT om
       GLOBAL om ; når vi ønskjer å leggja ein ny verdi i variabelen
       om = “ny verdi for den globale variabelen”
     SLUTT

     eksempel
     SKRIV UT om

## Funksjonar

### TILFELDIG

     SKRIV UT TILFELDIG 100 ; skriv ut eit tilfeldig desimaltal (0 <= x < 100)
     SKRIV UT TILFELDIG “tekst” ; skriv ut ein tilfeldig bokstav frå teksten “tekst”
     SKRIV UT TILFELDIG [1, 2] ; skriv ut eit tilfeldig listeelement (1 eller 2)

### HEILTAL

     SKRIV UT HEILTAL 3,8 ; skriv ut 3 (heiltalsdelen av 3,8)
     SKRIV UT HEILTAL TILFELDIG 100 ; eit tilfeldig heiltal (0 <= x < 100)
     SKRIV UT HEILTAL “7” ; omformar strenginnhaldet til heiltal

### FLYTTAL

     ; omformar strengparameterane til desimaltal
     SKRIV UT 2 * FLYTTAL “5,5” ; skriv ut 11,0

### STR

     ; omformar tal til streng
     SKRIV UT “Resultat: ” + STR 5 ; skriv ut “Resultat: 5”
     SKRIV UT 10 * STR 5 ; skriv ut 5555555555

### KVROT

     SKRIV UT KVROT 100 ; skriv ut 10, som er kvadratrota av 100

### SIN

     SKRIV UT SIN 90 * PI/180 ; skriv ut 1,0 (sinus av 90° i radianar)

### COS

     SKRIV UT COS 0 * PI/180 ; skriv ut 1,0 (cosinus av 0° i radianar)

### LOG10

     SKRIV LOG10 100 ; skriv ut 2,0 (logaritmen av 100)

### AVRUND

     SKRIV UT AVRUND 3,8 ; skriv ut 4 (som er avrundinga av 3,8)
     SKRIV UT AVRUND TILFELDIG 100 ; eit tilfeldig heiltal (0 <= x <= 100)

### ABS

     SKRIV UT ABS -10 ; skriv ut 10, som er den absolutte verdien av -10

### TEL, PLASSAR

     SKRIV UT TEL “tekst” ; skriv 5, talet på bokstavar i “tekst”
     SKRIV UT TEL [1, 2, 3] ; skriv ut 3, storleiken på lista

### SET

     ; Omformar liste til Python sett
     SKRIV UT SET [4, 5, 6, 6] ; skriv ut {4, 5, 6}
     SKRIV UT SET [4, 5, 6, 6] | SET [4, 1, 9] ;skriv ut {1, 4, 5, 6, 9}, union
     SKRIV UT SET [4, 5, 6, 6] & SET [4, 1, 9] ; skriv ut {4}, snitt
     SKRIV UT SET ([4, 5, 6, 6]) - SET [4, 1, 9] ; skriv ut {5, 6}, differans
     SKRIV UT SET [4, 5, 6, 6] ^ SET [4, 1, 9] ; skriv ut {1, 5, 6, 9}, symmetrisk differans

### OMRÅDE

     ; Python-liknande listegenerering
     SKRIV UT OMRÅDE 10 ; skriv ut [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     SKRIV UT OMRÅDE 3 10 ; skriv ut [3, 4, 5, 6, 7, 8, 9]
     SKRIV UT OMRÅDE 3 10 3 ; skriv ut [3, 6, 9]

     FOR n I OMRÅDE 10 50 10 [ ; løkke for [10, 20, 30, 40]
       FRAM i
       VENSTRE 90
     ]

### LISTE

     ; fjernar element som finst meir enn ei gong i ei liste ved hjelp av set og omforming av lista
     SKRIV UT LISTE (SET [1, 3, 5, 5, 2, 1]) ; skriv ut [1, 3, 5, 2]

### TUPLE

Omformar til Python tuple (liste som ikkje kan endrast)

     SKRIV UT TUPLE [4, 5]

### SORTERT

Returnerer ei sortert liste

     SKRIV UT SORTERT [5, 1, 3, 4] ; skriv ut [1, 3, 4, 5]

### BYT, BYT UT

Byter ut teiknsekvensar ved hjelp av regexmønster (regulært uttrykk) .

     SKRIV UT BYT (“t”, “T”, “tekst”) ; skriv ut “Tekst”, men byter ut «t» med «T»
     SKRIV UT BYT (“(.)”, “\\1\\1”, “tekst”) ; skriv ut “tteexxtt”, skal doble kvar bokstav, men dette stemmer ikkje i mi utgåve (LO 4.2.0.3).

### SØK, FINN

Søkjer etter bokstavmønster ved hjelp av regex-mønster.

     VISS SØK (“o”, ord) [ PRINT “Bokstaven finst i ordet.” ]

### FINNALLE

Finn alle bokstavsekvensane i inndatastrengen som passa det gjevne regex-mønsteret.

     SKRIV UT FINNALLE(“\w+”, “Hundar, Kattar”) ; skriv ut [“Hundar”, “Kattar”], det vil seie heile lista med orda.

### MIN

     SKRIV UT MIN [1, 2, 3] ;skriv ut 1, det minste elementet i lista.

### MAKS

     SKRIV UT MAKS [1, 2, 3] ; skriv ut 3, det største elementet i lista.

## Fargekonstantar

     PENNFARGE “SØLV” ; sett med namn
     PENNFARGE [1] ; sett med idendifikator
     PENNFARGE “~SØLV” ; tilfeldig sølvfarge

Identifikator | Namn
--- | ---
0 | SVART
1 | SØLV
2 | GRÅ
3 | KVIT
4 | RAUDBRUN
5 | RAUD
6 | LILLA
7 | FUKSIA, MAGENTARAUD
8 | GRØN
9 | GRASGRØN
10 | OLIVENGRØN
11 | GUL
12 | MARINEBLÅ
13 | BLÅ
14 | MØRK GRØNBLÅ
15 | CYANBLÅ
16 | ROSA
17 | TOMATRAUD
18 | ORANSJE
19 | GULL
20 | FIOLETT
21 | HIMMELBLÅ
22 | SJOKOLADEBRUN
23 | BRUN
24 | USYNLEG