Inhoud

# LibreLogo

LibreLogo is een eenvoudige, gelokaliseerde, Logo-achtige programmeeromgeving met turtle vector graphics om computergebruik te leren (programmeren en tekstverwerking), DTP en grafisch ontwerp. Zie http://www.numbertext.org/logo/librelogo.pdf.

## LibreLogo werkbalk

De LibreLogo werkbalk (Beeld - Werkbalken - Logo) bevat 'turtle' bewegingen, mogelijkheid om het programma uit te voeren en te stoppen, alsook de mogelijkheid om terug te keren naar het startscherm en scherm leegmaken, een syntaxis markering/vertaling van pictogrammen en een invoegbalk (opdrachtregel).

## Turtle-pictogrammen voor verplaatsing

Dit zijn equivalenten van de Logo-opdrachten "VOORUIT 10", "TERUG 10", "LINKS 15", "RECHTS 15". Door te klikken op een van de pictogrammen zal de 'turtle-vorm' zich ook richten en de pagina naar zijn positie scrollen.

## Start het Logo-programma

Klik op het pictogram "uitvoeren" om de tekst (of alleen de geselecteerde) van het Writer-document als een LibreLogo programma uit te voeren. In een leeg document zal een voorbeeld-programma worden ingevoegd en uitgevoerd.

Klik op het pictogram "Stop" om het programma te stoppen.

## Home

Klik op het pictogram "Home" om de positie en de instellingen van de turtle te herstellen.

## Scherm leegmaken

Klik op het pictogram "Scherm wissen" om de tekenobjecten uit het document te verwijderen.

## Programma bewerker/Syntaxis markeren/Vertalen

Het “toverstaf”-pictogram stelt de indeling van 2 pagina's in voor het bewerken van programma's, breidt de afgekorte, kleine logo-opdrachten in het Writer-document uit en converteert deze naar hoofdletters. Wijzig de taal van het document (LibreOffice - Voorkeuren Extra - Opties - Taalinstellingen - Talen - Westers) en klik op dit pictogram om het logoprogramma naar de geselecteerde taal te vertalen.

## Opdrachtregel

Druk op Enter in de opdrachtregel om de inhoud uit te voeren. Om het programma te stoppen gebruikt u het pictogram "Stop".

Houd de toets ENTER ingedrukt om de opdrachtregel te herhalen, bijvoorbeeld met de volgende reeks opdrachten:

     VOORUIT 200 LINKS 89

Om de opdrachtregel opnieuw in te stellen, klik er driemaal op of druk op Commando Ctrl +A om de vorige opdrachten te selecteren en typ de nieuwe opdrachten.

## Grafische gebruikersinterface van de fundamentele turtle-instellingen

De schildpadvorm van LibreLogo is een normaal tekenobject met een vast formaat. U kunt het ook op de standaardmanier positioneren en draaien met behulp van de muis en het pictogram Draaien op de werkbalk Tekenobjecteigenschappen. Wijzig de instellingen voor de lijndikte, lijnkleur en vlakkleur van de schildpadvorm om de kenmerken PENSIZE, PENCOLOR en FILLCOLOR van LibreLogo in te stellen.

## Programma bewerken

LibreLogo tekeningen en programma's maken gebruik van hetzelfde Writer-document. Het LibreLogo stramien is op de eerste pagina van het Writer-document. U kunt een pagina-einde invoegen voor de LibreLogo programma's en de zoom/tekengrootte instellen voor een comfortabele twee pagina-indeling voor LibreLogo programmering: links (eerste) pagina is het stramien, rechts (tweede) pagina is voor de LibreLogo programma bewerking.

# LibreLogo programmeertaal

LibreLogo is een inheemse, gemakkelijk op taalinstellingen aanpasbaar, Logo-achtige programmeertaal. Het is terug-compatibel met de oudere Logo systemen, zoals bijvoorbeeld de eenvoudige Logo-programma's die werden gebruikt in het onderwijs.

     VOOR driehoek:size
     HERHAAL 3 [
        VOORUIT:afmeting
       LINKS 120
     ]
     EINDE

     driehoek 10 driehoek 100 driehoek 200

## Verschilt van de Logo programmeertaal

- Lijstleden zijn door komma's gescheiden: POSITIE [0, 0]

- Programma blokken en lijsten zijn verschillend

- - Programmablokken hebben een spatie of een nieuwe regel nodig bij tussen haakjes zetten: HERHAAL 10 [ VOORUIT 10 LINKS 36 ]

  - Lijsten moeten aangesloten teksthaken hebben: POSITIE [0, 0], en niet POSITIE [0, 0 ]

- 1-regel functie-verklaringen worden niet ondersteund (TOT en EINDE moeten op een nieuwe regel).

## Andere functies van LibreLogo

- De dubbele punt is optioneel voor de namen van variabelen.

       Voor driehoek formaat
       HERHAAL 3 [ VOORWAARTS formaat LINKS 120 ]
       EINDE

- String notatie ondersteunt ook orthografische en Python syntaxis.

       AFDRUKKEN "woord ; originele Logo syntaxis
       AFDRUKKEN “Willekeurige tekst.” ; orthografie, Writer
       AFDRUKKEN 'Willekeurige tekst.' ; Python syntaxis

- Python lijst en tekenreeks behandeling

       AFDRUKKEN “tekst”[2] ; afdrukken “e”
       AFDRUKKEN “tekst”[1:3] ; afdrukken “ek”

- Python-achtige VOOR lus

- Python-achtige variabele verklaring:

       x = 15
       AFDRUKKEN x

- Er zijn geen extra opvraag functies:

       AFDRUKKEN OPVULKLEUR
       p = POSITIE
       AFDRUKKEN p
       HERHAAL 10 [ POSITIE ELKE POSITIE p ]

- Alternatieve teksthaken in functie-oproepen

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

       star 100 "red"
       star(100, "green")
       star(100, "blue")

# LibreLogo opdrachten

## Basis-syntaxis

### Hoofdlettergevoeligheid

Opdrachten, kleur constanten zijn niet hoofdlettergevoelig:

     AFDRUKKEN “Hallo, Wereld!”
     afdrukken “Hallo, Wereld, opnieuw!”

Namen van variabelen zijn hoofdlettergevoelig.

     a = 5
     A = 7
     AFDRUKKEN a
     AFDRUKKEN A

### Programmaregels

Regels van een LibreLogo-programma zijn alinea's in het Writer-document. Een programmaregel kan meerdere opdrachten bevatten:

     AFDRUKKEN “Hallo, Wereld!” AFDRUKKEN “LibreLogo”

### Opmerkingen

Regels of delen van regels zijn opmerkingen vanaf een puntkomma tot het einde van de regel (alinea):

     ; enkele opmerkingen
     AFDRUKKEN 5 * 5 ; enkele opmerkingen

### Splits programmaregels in meerdere alinea's op

Het is mogelijk om een programma regel in meer alinea's af te breken door het tilde-teken aan het einde van de regel te plaatsen:

     AFDRUKKEN “Dit is een erg lang ” + ~
     “waarschuwingsbericht”

## Turtle bewegingen

### VOORUIT (vu)

     VOORUIT 10 ; ga vooruit 10pt (1pt = 1/72 inch)
     VOORUIT 10pt ; als boven
     VOORUIT 0.5in ; ga vooruit 0.5 inch (1 inch = 2.54 cm)
     VOORUIT 1" ; als boven
     FD 1mm
     FD 1cm

### ACHTERUIT (au)

     ACHTERUIT 10; ga achteruit 10pt

### LINKS (li)

     LINKS 90, draai 90 graden tegen de klok in
     LINKS 90°, als hierboven
     LT 3h, als hierboven (klok positie)
     LT elke, draai naar een willekeurige positie

### RECHTS (re)

     RECHTS 90; draai 90 graden met de klok mee

### PENOMHOOH (ph)

     PENOMHOOG; turtle zal bewegen zonder te tekenen

### PENOMLAAG (pl)

     PENOMLAAG ; ´turtle´ zal bewegen en tekenen

### POSITIE (pos)

     POSITIE [0, 0], draai en verplaats naar de linker bovenhoek
     POSITIE PAGINAGROOTTE; draai en verplaats naar de rechter benedenhoek
     POSITIE [PAGINAGROOTTE[0], 0]; draai en verplaats naar de rechter bovenhoek
     POSITIE ELKE ; draai en verplaats naar een willekeurige positie

### RICHTING (rt)

     RICHTING 0; draai naar het noorden
     RICHTING 12h; zie boven
     RICHTING [0,0]; draai naar de linkerboven hoek
     RICHTING EENDER; draai in een eendere richting

## Andere turtle opdrachten

### VERBERG (vb)

     VERBERG; verberg (tot de toon opdracht)

### TOON (tn)

     TOON; toon

### THUIS

     THUIS; Terugzetten van de turtle naar de oorspronkelijke positie

### SCHERMLEEGMAKEN (s)

     SCHERMLEEGMAKEN; verwijder tekenobjecten uit het document

### INVULLEN en SLUITEN

     VULLEN; sluiten en invullen van de actuele lijnvorm of punten
     SLUITEN; sluit de actuele lijnvorm of verbindt de aanwezige punten

Voorbeeld: vullen van een gelijkbenige driehoek:

     VOORUIT 50 LINKS 120 VOORUIT 50 VULLEN

Voorbeeld: tekenen van een gelijkbenige driehoek:

     VOORUIT 50 LINKS 120 VOORUIT 50 SLUITEN

## Pen instellingen

### PENGROOTTE (pg)

     PENSIZE 100 ; lijndikte is 100 punten
     PENSIZE ANY ; equivalent van PENSIZE RANDOM 10

### PENKLEUR (pk)

     PENKLEUR “rood” ; Stel de penkleur in op rood (d.m.v. kleurnaam, kijk bij kleurconstanten)
     PENKLEUR [255, 255, 0] ; stel de penkleur in op geel (RGB lijst)
     PENKLEUR 0xffff00 ; stel kleur geel in (hexa code)
     PENKLEUR 0 ; stel zwart in (0x000000)
     PENKLEUR ELKE ; willekeurige kleur
     PENKLEUR [5] ; stel rood in (d.m.v. kleur-identificatie, kijk bij kleurconstanten)
     PENKLEUR “onzichtbaar” ; onzichtbare penkleur voor vormen zonder zichtbare omlijning
     PENKLEUR “~rood” ; stel een willekeurige kleur rood in

### PENTRANSPARANTIE

     PENTRANSPARANTIE 80 ; stelt de transparantie van de actuele penkleur in op 80%

### PENEINDE/LIJNEINDE

     PENEINDE “geen” ; zonder extra lijneinde (standaard)
     PENEINDE “rond” ; afgeronde lijneinde
     PENEINDE “vierkant” ; vierkante lijneinde

### PENVERBINDING/LIJNVERBINDING

     PENVERBINDING “afgerond” ; afgeronde lijnverbinding (standaard)
     PENVERBINDING “snijdend” ; scherpe lijnverbinding
     PENVERBINDING “afschuinen” ; afgeschuinde lijnverbinding
     PENVERBINDING “geen” ; zonder lijnverbinding

### PENSTIJL

     PENSTIJL “ononderbroken” ; ononderbroken lijn (standaard)
     PENSTIJL “gestippeld” ; stippellijn
     PENSTIJL “gestreept” ; streepjeslijn

     ; gebruikergedefinieerde streep-stiplijn gespecificeerd door de volgende lijst van argumenten:
     ; – aantal aansluitende stippen
     ; – lengte van een stip
     ; – aantal aansluitende streepjes
     ; – lengte van een streepje
     ; – afstand tussen stipjes/streepjes
     ; – type (optioneel):
     ;   0 = stipjes zijn rechthoekjes (standaard)
     ;   2 = stipjes zijn vierkantjes (lengtes en afstanden zijn gerelateerd aan de pengrootte)

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

## Opvul eigenschappen

### OPVULKLEUR (ok)

     OPVULKLEUR "blauw"; vult met de kleur blauw, zie ook PENKLEUR
    OPVULKLEUR "onzichtbaar" CIRKEL 10; niet gevulde cirkel
     OPVULKLEUR ["blauw", "rood"]; kleurovergang tussen rood en blauw
     OPVULKLEUR [[255, 255, 255], [255, 128, 0]] ; tussen wit en oranje
     OPVULKLEUR ["blauw", "rood",1, 0, 0]; stel de hoek van de kleurovergang in (met de gewenste draaiing en randen), mogelijke waardes zijn: 0-5 = lineair, axiaal, elliptisch, vierkant en rechthoekig
     OPVULKLEUR [“rood”, “blauw”, 0, 90, 20] ; lineair met 20% rand, 90 graden gedraaid ten opzichte van de huidige richting van de schildpad
     OPVULKLEUR [“rood”, 'blauw”, 0, 90, 20, 0, 0, 200, 50] ; van 200% tot 50% intensiteit
     OPVULKLEUR [ELKE, ELKE, 2, 0, 0, 50, 50] ; radiale kleurovergang met random kleuren en 50-50% horizontale en verticale posities vanaf het centrum

### Vullingstransparantie

     OPVULTRANSPARANTIE 80 ; stel de transparantie van de actuele opvulkleur in op 80%
     OPVULTRANSPARANTIE [80] ; stel de lineaire transparantie van de kleurovergang in van 80% naar 0%
     OPVULTRANSPARANTIE [80, 20] ; stel de lineaire transparantie van de kleurovergang in van 80% naar 20%
     OPVULTRANSPARANTIE [80, 20, 1, 90] ; stel de axiale transparantie van de kleurovergang in, met 90 graden gedraaid ten opzichte van de actuele richting van de schildpad
     OPVULTRANSPARANTIE [80, 20, 2, 0, 20, 50, 50] ; stel radiale transparantie van de kleurovergang in vanaf de buitenste 80% tot binnenste 20% transparantie met 20% rand en met 50-50% horizontale en verticale posities uit het centrum

### VULLING

     VULLING 0; vullen zonder arcering (standaard)
     VULLING 1; zwarte enkele arcering (horizontaal)
     VULLING 2; zwarte enkele arcering (45 graden)
     VULLING 3; zwarte enkele arcering (-45 graden )
     VULLING 4; zwarte enkele arcering (verticaal)
     VULLING 5; rode gekruiste arcering (45 graden)
     VULLING 6; rode gekruiste arcering (0 graden)
     VULLING 7; blauwe gekruiste arcering (45 graden)
     VULLING 8; blauwe gekruiste arcering (0 graden)
     VULLING 9; blauwe driedubbele arcering
     VULLING 10; zwarte brede enkele arcering (45 graden)
     <br />; gebruikergedefinieerde arcering gespecificeerd door een lijst met de volgende argumenten:
    ; - stijl (1 = enkele, 2 = dubbele, 3 = driedubbele, arcering )
    ; - kleur
    ; - afstand
    ; - mate

     VULLING [2, "groen", 3pt, 15 °]; groene gekruiste arcering (15 graden)

## Tekenopbjecten

### CIRKEL

     CIRKEL 100 ; teken een cirkelvorm (diameter = 100pt)

### ELLIPS

     ELLIPS [50, 100] ; teken een ellips met de diameters 50 en 100
     ELLIPS [50, 100, 2h, 12h] ; teken een elliptische sector (van klokpositie 2 uur tot 12 uur)
     ELLIPS [50, 100, 2h, 12h, 2]  ; teken een elliptisch segment
     ELLIPS [50, 100, 2h, 12h, 3]  ; teken een elliptische boog

### VIERKANT

     VIERKANT 100 ; teken een vierkantsvorm (grootte= 100pt)

### RECHTHOEK

     RECHTHOEK [50, 100] ; teken een rechthoekige vorm (50×100pt)
     RECHTHOEK [50, 100, 10] ; teken een rechthoek met afgeronde hoeken

### PUNT

     PUNT; teken een punt met de afmeting en kleur van de pen

SLUITEN kan de laatste punten verbinden, VULLEN kan de vorm sluiten die door punten is gedefinieerd. Bijvoorbeeld: het is eenvoudig om een "platte" ster te tekenen door vanuit het midden daarvan te beginnen:

     PENOMHOOG
     HERHAAL 5 [
       VOORUIT 80
       PUNT
     TERUG 80
       RECHTS 36
       VOORUIT 50
       PUNT
       TERUG 50
       RECHTS 120
     ] VULLEN

### LABEL

     LABEL "tekst"; afdrukken van tekst in de 'turtle-positie'
     LABEL 'tekst', als hierboven
     LABEL "tekst, als hierboven (alleen voor afzonderlijke woorden)

### TEKST

     CIRKEL 10 TEKST "tekst"; stelt de tekst van het tekenobject in

## LETTERTYPE instellingen

### LETTERKLEUR

     LETTERKLEUR “groen” ; stel de letterkleur in

### TEKSTFAMILIE

     TEKSTFAMILIE “Linux Libertine G” ; stel lettertype (familie) in
     TEKSTFAMILIE “Linux Libertine G:smcp=1” ; stel ook het tekstkenmerk (kleine letters) in
     TEKSTFAMILIE “Linux Libertine G:smcp=1&onum=1” ; kleine letters + oude afbeeldingen

### TEKENGROOTTE

     TEKENGROOTTE 12 ; stel in 12pt

### LETTERDIKTE

     LETTERDIKTE “vet” ; stel letteropmaak vet in
     LETTERDIKTE “normaal” ; stel letteropmaak normaal in

### TEKSTSTIJL

     TEKSTSTIJL “cursief” ; instellen cursief
     TEKSTSTIJL “normaal” ; instellen normaal

## AFBEELDING (afb)

AFBEELDING is voor

- vormgroep;

- nieuwe regelvormen starten;

- SVG afbeeldingen en SVG/SMIL animaties opslaan;

- de consistentie van posities en lijnvormen aan de linker rand behouden.

### Vormgroep

     ; AFBEELDING [ LibreLogo_opdrachten]
     AFBEELDING [ VOORWAARTS 100 CIRKEL 100 ] ; boom-achtig gegroepeerde vorm

Zie ook “Groeperen” in LibreOffice Writer Help.

     VOOR boom locatie
       PENOMHOOG POSITIE locatie KOP 0 PENOMLAAG
       AFBEELDING[ VOORUIT 100 CIRKEL 100 ] ; boom-achtige gegroepeerde vorm
     EINDE

     AFBEELDING [ boom [230, 400] boom [300, 400] ] ; gegroepeerde vormen in een gegroepeerde vorm

### Nieuwe lijnvormen maken

     AFBEELDING ; maak een nieuwe lijnvorm
     VOORUIT 10 AFBEELDING VOORUIT 10 ; twee lijnvormen

### SVG afbeeldingen opslaan

     AFBEELDING “voorbeeld.svg” [ CIRCLE 5 ] ; sla de afbeelding op als een SVG image bestand op in de gebruikersfolder
     AFBEELDING “bureaublad/voorbeeld.svg” [ VOORUIT 100 CIRKEL 5 ] ; zoals hierboven, met een  relatief pad
     AFBEELDING “/home/user/voorbeeld.svg” [ CIRKEL 5 ] ; absoluut pad voor Unix/Linux
     AFBEELDING “C:\voorbeeld.svg” [ CIRCLE 5 ] ; absoluut pad voor Windows

### SVG/SMIL animaties opslaan (Tekeningen met het commando SLAAP)

     AFBEELDING “animatie.svg” [ CIRKEL 5 SLAAP 1000 CIRKEL 99 ] ; sla op als een SVG/SMIL animatie (zie ook SLAAP)
     AFBEELDING “animatie2.svg” [ CIRKEL 5 SLAAP 1000 CIRKEL 99 SLAAP 2000 ] ; zoals hierboven, maar door gebruik van SLAAP na het laatste object zal in een lus resulteren: na 2 seconden herstart de SVG animatie in SMIL compatibele bladeraars

### Consistentie bij de linker rand

Gebruik AFBEELDING om de consistentie van posities en lijnvormen op de linker rand van Writer te behouden:

     AFBEELDING [ CIRKEL 20 POSITIE [-100, 100] CIRKEL 20 ]

## Lussen

### HERHAAL

     ; HERHAAL aantal [ opdrachten]

     HERHAAL 10 [ VOORUIT 10 LINKS 45 CIRKEL 10 ] ; herhaal 10 keer

     ; aantal is optioneel

     HERHAAL [ POSITIE ELKE] ; eindloze looping

### KEERHERHAAL

Looping variabele (ook in de VOOR en ZOLANG loopings).

     HERHAAL 100 [ VOORWAARTS KEERHERHAAL LINKS 90 ]

### IN

Lus voor de lijstelementen:

     ZOLANG i IN [1, 5, 7, 9, 11] [
       VOORUIT i
       LINKS 90
     ]

Looping voor de karakters van een tekenreeks:

     ZOLANG i IN “tekst” [
     LABEL i
     VOORUIT 10
     ]

### ZOLANG

     ZOLANG WAAR [ POSITIE ELKE ] ; eindeloze lus
     ZOLANG KEERHERHAAL <= 10 [ VOORUIT 50 LINKS 36 ] ; as HERHAAL 10 [ ... ]

### AFBREKEN

Stop de lus

     HERHAAL [ ; eindeloze lus
       POSITIE ELKE
       ALS KEERHERHAAL = 100 [ AFBREKEN]  ; equivalent van HERHAAL 100 [ ... ]
     ]

### DOORGAAN

Spring in de volgende iteratie van de lus.

     REPEAT 100 [
      POSITION ANY
         IF REPCOUNT % 2 = 0 [ CONTINUE ]
       CIRCLE 10 ; teken cirkels op elke 2de positie
     ]

## Voorwaarden

### OF

     ; ALS voorwaarde [ waar blok ]
     ; ALS voorwaarde [ waar blok ] [ onwaar blok ]

     ALS a < 10 [ AFDRUKKEN “Klein” ]
     ALS a < 10 [ AFDRUKKEN “Klein” ] [ AFDRUKKEN “Groot” ]

### EN, OF, NIET

Logische operatoren

     ALS a < 10 EN NIET a = 5 [ DRUK AF “0, 1, 2, 3, 4, 6, 7, 8 of 9” ]
     ALS a < 10 EN a != 5 [ DRUK AF “0, 1, 2, 3, 4, 6, 7, 8 of 9” ] ; zoals hierboven

## Subroutines

### NAAR, EINDE

Nieuwe woorden (of procedure).

     NAAR driehoek
     HERHAAL 2[ VOORWAARTS 100 RECHTS 120 ] INVULLEN
     EINDE

     HERHAAL 10 [ driehoek PENOMHOOG POSITIE ELKE PENOMLAAG ]

### UITVOER

Resultaatwaarde van de functie.

     OM willekeurigteken
     UITVOER WILLEKEURIG "qwertzuiopasdfghjklyxcvbnm"
     EINDE

     AFDRUKKEN willekeurigteken+ willekeurigteken+ willekeurigteken; afdrukken 3-tekens willekeurige tekenreeks

### STOP

Keer terug uit de procedure.

     TOT voorbeeld nummer
       ALS getal < 0 [STOP]
       AFDRUKKEN SQRT nummer; afdrukken vierkantswortel
     ]

     bijvoorbeeld 100
     bijvoorbeeld -1 ; zonder uitvoer en fout
     voorbeeld 25

## Standaard variabelen

### ELKE

Standaard willekeurige waarde van kleuren e.d.

     PENKLEUR ELKE; willekeurige penkleur

### WAAR

Logische waarde.

     ZOLANG WAAR [ POSITION ANY ] ; eindloze looping
     AFDRUKKEN WAAR ; druk af waar

### ONWAAR

Logische waarde.

     ZOLANG NIET ONWAAR [ POSITIE ELKE ] ; eindloze lus
     AFDRUKKEN ONWAAR ; afdrukken onwaar

### PAGINAGROOTTE

     AFDRUKKEN PAGINAGROOTTE ; afdrukken lijst van paginagroottes in punten, zoals [595.30, 841.89]

### PI/π

     AFDRUKKEN PI ; afdrukken 3.14159265359

## Invoer/Uitvoer

### AFDRUKKEN

     AFDRUKKEN “tekst” ; afdrukken “tekst” in een dialoogvenster
     AFDRUKKEN 5 + 10 ; afdrukken 15

### INVOER

     AFDRUKKEN INVOER “Invoerwaarde?” ; vraag en druk een tekenreeks in elk opvraagdialoogvenster af
     AFDRUKKEN FLOAT (INVOER “Eerste nummer?”) + FLOAT (INVOER “Tweede nummer?”) ; simpele rekenmachine

## SLAAP

     SLAAP 1000: wacht 1000 ms (1 sec)

## GLOBAAL

Stel de globale variabelen die in procedures worden gebruikt in.

     GLOBAAL over
     over= “LibreLogo”

     TOT voorbeeld
     AFDRUKKEN over
     GLOBAAL over; wanneer we een nieuwe waarde willen toevoegen
     over= “nieuwe waarde voor de globale variabele”
     EINDE

     voorbeeld
     AFDRUKKEN over

## Functies

### WILLEKEURIG

     WILLEKEURIG AFDRUKKEN 100 ; willekeurig drijvendekommagetal (0 <= x < 100)
     WILLEKEURIG AFDRUKKEN “tekst” ; willekeurige letter uit de “tekst”
     WILLEKEURIG AFDRUKKEN [1, 2] ; willekeurig lijstelement (1 of 2)

### INT

     AFDRUKKEN INT 3,8 ; afdrukken 3 (integer deel van 3,8)
     AFDRUKKEN INT WILLEKEURIG 100 ; willekeurig integer getal (0 <= x < 100)
     AFDRUKKEN INT “7” ; converteert de tekenreeks-parameter naar een heel getal

### FLOAT

     ; converteert de tekenreeksparameter naar een drijvendekommagetal
     AFDRUKKEN 2 * FLOAT “5,5” ; afdrukken 11,0

### STR

     ; converteert de parameter aantal naar een tekenreeks
     AFDRUKKEN “Resultaat: ” + STR 5 ; afdrukken “Resultaat: 5”
     AFDRUKKEN 10 * STR 5 ; afdrukken 5555555555

### SQRT

     AFDRUKKEN SQRT 100 ; afdrukken 10, vierkantswortel van 100

### SIN

     AFDRUKKEN SIN 90 * PI/180 ; afdrukken 1.0 (sinus van 90° in radialen)

### COS

     AFDRUKKEN COS 0 * PI/180 ; afdrukken 1.0 (cosinus van 0° in radialen)

### LOG10

     AFDRUKKEN LOG10 100 ; print 2.0 (gewoon logaritme van 100)

### RONDAF

     AFDRUKKEN RONDAF 3.8 ; afdrukken 4 (afronding 3.8)
     AFDRUKKEN RONDAF WILLEKEURIG 100 ; willekeurig geheel nummer (0 <= x <= 100)

### ABS

     AFDRUKKEN ABS -10 ; afdrukken 10, absolute waarde van -10

### AANTAL

     AFDRUKKEN AANTAL “tekst” ; afdrukken 4, karakteraantal van “tekst”
     AFDRUKKEN AANTAL [1, 2, 3] ; afdrukken 3, grootte van de lijst

### SET

     ; Converteert de lijst naar een Python-set
     AFDRUKKEN SET [4, 5, 6, 6] ; afdrukken{4, 5, 6}
     AFDRUKKEN SET [4, 5, 6, 6] | SET [4, 1, 9] ; afdrukken {1, 4, 5, 6, 9}, vereniging
     AFDRUKKEN SET [4, 5, 6, 6] & SET[4, 1, 9] ; afdrukken {4}, doorsnede
     AFDRUKKEN SET ([4, 5, 6, 6]) - SET [4, 1, 9] ; afdrukken {5, 6}, verschil
     AFDRUKKEN SET [4, 5, 6, 6] ^ SET [4, 1, 9] ; afdrukken {1, 5, 6, 9}, symmetrisch verschil

### BEREIK

     ; Python-achtige lijstgeneratie
     AFDRUKBEREIK 10 ; afdrukken [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     UITVOERLIJST BEREIK 3 10 ; afdrukken [3, 4, 5, 6, 7, 8, 9]
     UITVOERLIJST BEREIK 3 10 3 ; afdrukken[3, 6, 9]

     VOOR i IN BEREIK 10 50 10 [ ; lus voor [10, 20, 30, 40]
       VOORUIT i
       LINKS 90
     ]

### LIJST

     ; verwijder de herhalende elementen uit een lijst gebruikmakend van instellingen en lijstconversies
     AFDRUKKEN LIJST (STEL IN [1, 3, 5, 5, 2, 1]) ; afdrukken [1, 3, 5, 2]

### TUPEL

Conversie naar Python tuple (niet-wijzigbare lijst)

     AFDRUKKEN TUPEL [4, 5]

### GESORTEERD

Het resultaat is een gesorteerde lijst.

     AFDRUKKEN GESORTEERD [5, 1, 3, 4] ; afdrukken [1, 3, 4, 5]

### SUB

Vervang tekenreeksen met regex (reguliere expressie) patronen.

     AFDRUKKEN SUB (“t”, “T”, “tekst”) ; afdrukken “Tekst”, vervangt “t” door “T”
     AFDRUKKEN SUB (“(.)”, “\\1\\1”, “tekst”) ; afdrukken “tteekksstt”, verdubbelt alle tekens

### ZOEKEN

Zoek tekenreeks-patronen met behulp van regex patronen.

     ALS ZOEKEN (“\w”, woord) [ AFDRUKKEN“Letter in het woord.” ]

### ALLES ZOEKEN

Zoek alle tekenreeksen in de invoertekenreeks die gelijk zijn aan het gegeven regex-patroon.

     AFDRUKKEN ZOEKALLE(“\w+”, “Honden, katten.”) ; afdrukken [“Honden”, “katten”], de lijst van de woorden.

### MIN

     AFDRUKKEN MIN [1, 2, 3] ; afdrukken 1, het laagste element van de lijst

### MAX

     AFDRUKKEN MAX [1, 2, 3] Afdrukken 3, het grootste element van de lijst

## Kleurconstanten

     PENKLEUR “ZILVER” ; stelt in op naam
     PENKLEUR [1] ; stelt in op aanwijzingen
     PENKLEUR “~ZILVER” ; willekeurige kleur zilver

Aanwijzing | Naam
--- | ---
0 | ZWART
1 | ZILVER
2 | GRIJS
3 | WIT
4 | KASTANJEBRUIN
5 | ROOD
6 | PAARS
7 | FUCHSIA/MAGENTA
8 | GROEN
9 | LIMOEN
10 | OLIJFGROEN
11 | GEEL
12 | MARINEBLAUW
13 | BLAUW
14 | GROENBLAUW
15 | WATER/CYAAN
16 | ROOS/ROZE
17 | TOMAAT
18 | ORANJE
19 | GOUD
20 | VIOLET
21 | HEMELSBLAUW
22 | CHOCOLADEBRUIN
23 | BRUIN
24 | ONZICHTBAAR