Verktøylinja LibreLogo

Innhald

# 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 → InnstillingarVerktøy → Innstillingar → Språk og nasjonale innstillingar → Generelt → 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åKommandoCtrl + 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. Du kan setja inn eit sideskift før LibreLogo-programma og bruka ikonet med tryllestaven på Logo-verktøylinja for å optimalisera visinga slik at eit komfortabelt dobbeltsidig oppsett er tilgjengeleg for vising av programmeringa i LobreLogo: på venstre side (første side) teikneflata og på høgre side programkoden.

# 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