Nástrojová lišta LibreLogo

Obsah
Rejstřík 🔎︎

# LibreLogo

LibreLogo je jednoduché, lokalizované a na jazyku Logo založené programové prostředí se želví grafikou. Slouží k výuce práce s výpočetní technikou (programování a zpracování textu), DTP a tvorbě obrázků. Viz http://www.numbertext.org/logo/librelogo.pdf.

## Nástrojová lišta LibreLogo

Nástrojová lišta LibreLogo (Zobrazit - Nástrojové lišty - Logo) obsahuje ikony pro pohyb želvy, spuštění a zastavení programu, návrat domů, smazání obrazovky a zvýrazňování/překlad syntaxe a vstupní lištu (příkazový řádek).

## Ikony pro pohyb želvy

Mají stejný význam jako příkazy Loga „DOPŘEDU 10“, „VZAD 10“, „VLEVO 15“, „VPRAVO 15“. Klepnutím na jednu z těchto ikon se na želvu posunující se na svou pozici také nastaví zaměření.

## Spuštění programu v Logu

Klepnutím na ikonu „Spustit program v Logu“ spustíte veškerý (nebo jen vybraný) text dokumentu ve Writeru jako program v LibreLogu. V prázdném dokumentu se vloží a spustí ukázkový program.

Klepnutím na ikonu „Zastavit“ vykonávání programu zastavíte.

## Domů

Klepnutím na ikonu „Domů“ obnovíte výchozí pozici a nastavení želvy.

## Smazat obrazovku

Klepnutím na ikonu „Smazat obrazovku“ z dokumentu odstraníte objekty kresby.

## Editor programu/zvýrazňování syntaxe/překlad

Ikona s „kouzelnou hůlkou“ nastaví dvoustránkové rozvržení vhodné pro úpravu programu a převede příkazy Loga v dokumentu Writeru do nezkrácené podoby psané velkými písmeny. Změnou jazyka dokumentu (LibreOffice - PředvolbyNástroje - Možnosti - Jazyková nastavení - Jazyky - Západní) a klepnutím na tuto ikonu přeložíte program Loga do vybraného jazyka.

## Příkazový řádek

Stisknutím klávesy Enter v příkazovém řádku spustíte jeho obsah. Program zastavíte pomocí ikony „Zastavit“.

Pro opakování příkazového řádku klávesu Enter podržte, například pro následující posloupnost příkazů:

     DOPŘEDU 200 VLEVO 89

Chcte-li příkazový řádek vymazat, třikrát do něj klepněte nebo stisknutím CommandCtrl+A vyberte stávající příkazy a zadejte nové.

## Grafické uživatelské rozhraní pro základní nastavení želvy

Tvar želvy v LibreLogu je obyčejný objekt kresby s uzamčenou velikostí. Nastavit pro něj umístění nebo ho otočit je možné běžným způsobem, pro otočení lze také využít myš po klepnutí na ikonu Otočit na nástrojové liště Vlastnosti objektu kresby. Pokud u želvy změníte šířku čáry, barvu čáry a barvu oblasti, nastavíte tím v LibreLogu příslušné atributy TLOUŠŤKAPERA, BARVAPERA a BARVAVÝPLNĚ.

## Úprava programu

Programy a kresby LibreLoga používají stejný dokument Writeru. Plátno LibreLoga se nachází na první stránce dokumentu Writeru. Pokud před programy v LibreLogu vložíte zalomení stránky, nastavíte přiblížení stránky pomocí ikony s „kouzelnou hůlkou“ z nástrojové lišty Logo a také změníte velikost písma, získáte dvoustránkové rozvržení pohodlné pro programování: na levé (první) stránce bude plátno, pravá (druhá) stránka bude editorem programu v LibreLogu.

# Programovací jazyk LibreLogo

LibreLogo je snadno lokalizovatelný programovací jazyk založený na Logu, který byl jazykovými týmy komunity LibreOffice lokalizován do několika jazyků. Je zpětně kompatibilní se staršími systémy Loga, pokud se jedná o jednoduché programy v Logu používané při výuce, např.

     PŘÍKAZ trojúhelník :velikost
     OPAKUJ 3 [
       DOPŘEDU :velikost
       VLEVO 120
     ]
     KONEC

     trojúhelník 10 trojúhelník 100 trojúhelník 200

## Odlišnosti od programovacího jazyka Logo

- Prvky seznamu jsou odděleny čárkou: POZICE [0, 0]

- Bloky programu a seznamy se liší

- - Bloky programu vyžadují u závorek mezeru nebo nový řádek: OPAKUJ 10 [ DOPŘEDU 10 VLEVO 36 ]

  - Seznamy vyžadují vnitřní stranu závorek bez mezery: POZICE [0, 0], a ne POZICE [ 0, 0 ]

- Nejsou podporovány jednořádkové deklarace funkcí (PŘÍKAZ a KONEC musí být umístěny na nových řádcích).

## Další vlastnosti LibreLoga

- Dvojtečka je před názvy proměnných nepovinná.

       PŘÍKAZ trojúhelník velikost
         OPAKUJ 3 [ DOPŘEDU velikost VLEVO 120 ]
       KONEC

- Řetězec je možné zapsat také podle pravidel pravopisu nebo syntaxí Pythonu.

       PIŠ "slovo ; původní syntaxe Loga
       PIŠ „Libovolný text.“ ; podle pravopisu, Writer
       PIŠ 'Libovolný text.' ; syntaxe Pythonu

- Seznamy Pythonu a zacházení s řetězci

       PIŠ „text“[2] ; piš „x“
       PIŠ „text“[1:3] ; piš „ex“

- Cyklus PRO podobný jako cyklus for v Pythonu

- Deklarace proměnných jako v Pythonu:

       x = 15
       PIŠ x

- Neexistují zvláštní dotazovací funkce:

       PIŠ BARVAVÝPLNĚ
       p = POZICE
       PIŠ p
       OPAKUJ 10 [ POZICE LIB POZICE p ]

- Alternativní závorky při volání funkcí

       PŘÍKAZ hvězda velikost barva
       BARVAVÝPLNĚ barva
       OPAKUJ 5 [ VLEVO 72 DOPŘEDU velikost VPRAVO 144 DOPŘEDU velikost ]
       VYPLŇ
       KONEC

       hvězda 100 „červená“
       hvězda (100, „zelená“)
       hvězda(100, „modrá“)

# Příkazy LibreLoga

## Základní syntaxe

### Rozlišování velikosti písma

U příkazů, barev a konstant na velikosti písma nezáleží:

     PIŠ „Ahoj, světe!“
     piš „Znova ahoj, světe!“

U názvů proměnných na velikosti písmen záleží:

     a = 5
     A = 7
     PIŠ a
     PIŠ A

### Řádky programu

Řádky programu v LibreLogu jsou představovány odstavci v dokumentu LibreOffice Writer. Řádek programu může obsahovat více příkazů:

     PIŠ „Ahoj, světe!“ PIŠ „LibreLogo“

### Komentáře

Řádky nebo části řádků jsou komentáři od středníku na konec řádku (odstavce):

     ; nějaký komentář
     PIŠ 5 * 5 ; nějaký komentář

### Rozdělení řádku programu na více odstavců

Řádek programu lze rozdělit na více odstavců pomocí znaku vlnovky na konci řádku:

     PIŠ „Toto je velmi dlouhé “ + ~
           „upozornění“

## Pohyb želvy

### DOPŘEDU (do)

     DOPŘEDU 10 ; posuň se dopředu o 10 pt (1 pt = 1/72 palce)
     DOPŘEDU 10pt ; viz výše
     DOPŘEDU 0.5in ; posuň se dopředu o 0,5 palce (1 palec = 2,54 cm)
     DOPŘEDU 1" ; viz výše
     DO 1mm
     DO 1cm

### VZAD (vz)

     VZAD 10 ; posuň se vzad o 10 pt

### VLEVO (vl)

     VLEVO 90 ; otoč se proti směru hodinových ručiček o 90 stupňů
     VLEVO 90° ; viz výše
     VL 3h ; viz výše (pozice na hodinách)
     VL lib ; otoč se o náhodnou pozici

### VPRAVO (vp)

     VPRAVO 90 ; otoč se po směru hodinových ručiček o 90 stupňů

### PERONAHORU (pn)

     PERONAHORU ; želva se bude pohybovat bez kreslení

### PERODOLŮ (pd)

     PERODOLŮ ; želva bude při pohybu kreslit

### POZICE (poz)

     POZICE [0, 0] ; otoč se a posuň se do levého horního rohu
     POZICE VELIKOSTSTRÁNKY ; otoč se a posuň se do pravého dolního rohu
     POZICE [VELIKOSTSTRÁNKY[0], 0] ; otoč se a posuň se do pravého horního rohu
     POZICE LIB ; otoč se a posuň se na náhodnou pozici

### SMĚR (nastavsměr)

     SMĚR 0 ; otoč se na sever
     SMĚR 12h ; viz výše
     SMĚR [0, 0] ; otoč se na levý horní roh
    SMĚR LIB ; otoč se na náhodný směr

## Další příkazy pro želvu

### SKRYJŽELVU (sž)

     SKRYJŽELVU ; skryj želvu (dokud se nepoužije příkaz pro zobrazení želvy)

### UKAŽŽELVU (už)

     UKAŽŽELVU ; ukaž želvu

### DOMŮ

     DOMŮ ; nastav želvě počáteční pozici

### SMAŽOBRAZOVKU (so)

     SMAŽOBRAZOVKU ; odstraň z dokumentu objekty kresby

### VYPLŇ a UZAVŘI

     VYPLŇ ; uzavři a vyplň tvar z aktuální čáry nebo bodů
     UZAVŘI ; uzavři tvar z aktuální čáry nebo spoj aktuální body

Příklad: vyplnění rovnostranného trojúhelníku:

     DOPŘEDU 50 VLEVO 120 DOPŘEDU 50 VYPLŇ

Příklad: kreslení rovnostranného trojúhelníku:

     DOPŘEDU 50 VLEVO 120 DOPŘEDU 50 UZAVŘI

## Nastavení pera

### TLOUŠŤKAPERA (tp)

     TLOUŠŤKAPERA 100 ; šířka čáry je 100 bodů
     TLOUŠŤKAPERA LIB ; stejné jako TLOUŠŤKAPERA NÁHODNÉ 10

### BARVAPERA (bp)

     BARVAPERA „červená“ ; nastav červenou barvu pera (pomocí názvu barvy, viz konstanty barev)
     BARVAPERA [255, 255, 0] ; nastav žlutou barvu (RGB seznam)
     BARVAPERA 0xffff00 ; nastav žlutou barvu (šestnáctkový kód)
     BARVAPERA 0 ; nastav černou barvu (0x000000)
     BARVAPERA LIB ; náhodná barva
     BARVAPERA [5] ; nastav červenou barvu (pomocí identifikátoru barvy, viz konstanty barev)
     BARVAPERA „neviditelná“ ; neviditelná barva pera pro tvary bez viditelného obrysu
     BARVAPERA „~červená“ ; nastav náhodnou červenou barvu

### PRŮHLEDNOSTPERA (PRŮHLPERA)

     PRŮHLEDNOSTPERA 80 ; nastav průhlednost aktuální barvy pera na 80 %

### ZAKONČENÍPERA/ZAKONČENÍČÁRY

     ZAKONČENÍPERA „žádné“ ; bez zvláštního zakončení čáry (výchozí)
     ZAKONČENÍPERA „oblé“ ; oblé zakončení čáry
     ZAKONČENÍPERA „čtverec“ ; čtvercové zakončení čáry

### NAPOJENÍPERA/NAPOJENÍČÁRY

     NAPOJENÍPERA „oblé“ ; oblé napojení čáry (výchozí)
     NAPOJENÍPERA „ostré“ ; ostré napojení čáry
     NAPOJENÍPERA „šikmé“ ; šikmé napojení čáry
     NAPOJENÍPERA „žádné“ ; bez napojení čáry

### DRUHPERA

     DRUHPERA „plná“ ; plná čára (výchozí)
     DRUHPERA „tečkovaná“ ; tečkovaná čára
     DRUHPERA „čárkovaná“ ; čárkovaná čára

     ; vlastní vzorek teček a čárek určený seznamem s následujícími parametry:
     ; – počet teček vedle sebe
     ; – délka tečky
     ; – počet čárek vedle sebe
     ; – délka čárky
     ; – vzdálenost teček/čárek
     ; – typ (nepovinný):
     ;   0 = tečky jsou tvořeny obdélníky (výchozí)
     ;   2 = tečky jsou tvořeny čtverci (délky a vzdálenosti jsou relativní k tloušťce pera)

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

## Nastavení výplně

### BARVAVÝPLNĚ (bv)

     BARVAVÝPLNĚ „modrá“ ; vyplň modrou barvou, viz také BARVAPERA
     BARVAVÝPLNĚ „neviditelná“ KRUH 10 ; nevyplněný kruh
    BARVAVÝPLNĚ [„modrá“, „červená“] ; přechod mezi červenou a modrou
     BARVAVÝPLNĚ [[255, 255, 255], [255, 128, 0]] ; mezi bílou a oranžovou
     BARVAVÝPLNĚ [„modrá“, „červená“, 1, 0, 0] ; nastav axiální přechod (se zadaným otočením a nastavením ohraničení), možné hodnoty: 0-5 = lineární, axiální, radiální, oválné, čtvercové a obdélníkové přechody
     BARVAVÝPLNĚ [„červená“, „modrá“, 0, 90, 20] ; lineární s 20% ohraničením, otočený o 90 stupňů vzhledem k aktuálnímu směru želvy
     BARVAVÝPLNĚ [„červená“, „modrá“, 0, 90, 20, 0, 0, 200, 50] ; od 200% do 50% intenzity
     BARVAVÝPLNĚ [LIB, LIB, 2, 0, 0, 50, 50] ; radiální přechod náhodných barev se středem umístěným vodorovně i svisle v 50 %

### PRŮHLEDNOSTVÝPLNĚ (PRŮHLVÝPLNĚ)

     PRŮHLEDNOSTVÝPLNĚ 80 ; nastav průhlednost aktuální barvy výplně na 80 %
     PRŮHLEDNOSTVÝPLNĚ [80] ; nastav lineární přechod průhlednosti od 80 % do 0 %
     PRŮHLEDNOSTVÝPLNĚ [80, 20] ; nastav lineární přechod průhlednosti od 80 % do 20 %
     PRŮHLEDNOSTVÝPLNĚ [80, 20, 1, 90] ; nastav axiální přechod průhlednosti otočený o 90 stupňů vzhledem k aktuálnímu směru želvy
     PRŮHLEDNOSTVÝPLNĚ [80, 20, 2, 0, 20, 50, 50] ; nastav radiální přechod průhlednosti od vnější 80% do vnitřní 20% průhlednosti s 20% ohraničením a středem umístěným vodorovně i svisle v 50 %

### DRUHVÝPLNĚ

     DRUHVÝPLNĚ 0 ; vyplň šrafováním (výchozí)
     DRUHVÝPLNĚ 1 ; černé jednoduché šrafování (vodorovné)
     DRUHVÝPLNĚ 2 ; černé jednoduché šrafování (45 stupňů)
     DRUHVÝPLNĚ 3 ; černé jednoduché šrafování (-45 stupňů)
     DRUHVÝPLNĚ 4 ; černé jednoduché šrafování (svislé)
     DRUHVÝPLNĚ 5 ; červené křížové šrafování (45 stupňů)
     DRUHVÝPLNĚ 6 ; červené křížové šrafování (0 stupňů)
     DRUHVÝPLNĚ 7 ; modré křížové šrafování (45 stupňů)
     DRUHVÝPLNĚ 8 ; modré křížové šrafování (0 stupňů)
     DRUHVÝPLNĚ 9 ; modré trojité křížové
     DRUHVÝPLNĚ 10 ; černé široké jednoduché šrafování (45 stupňů)

     ; vlastní šrafování určené seznamem s následujícími parametry:
     ; – druh (1 = jednoduché, 2 = dvojité, 3 = trojité šrafování)
     ; – barva
     ; – vzdálenost
     ; – stupně

     DRUHVÝPLNĚ [2, „zelená“, 3pt, 15°] ; zelené křížové šrafování (15 stupňů)

## Objekty kresby

### KRUH

     KRUH 100 ; nakresli kruhový tvar (průměr = 100pt)

### ELIPSA

     ELIPSA [50, 100] ; nakresli elipsu s průměry 50 a 100
     ELIPSA [50, 100, 2h, 12h] ; nakresli výseč elipsy (od pozice na 2h do 12h)
     ELIPSA [50, 100, 2h, 12h, 2]  ; nakresli úseč elipsy
     ELIPSA [50, 100, 2h, 12h, 3]  ; nakresli oblouk elipsy

### ČTVEREC

     ČTVEREC 100 ; nakresli čtvercový tvar (velikost = 100pt)

### OBDÉLNÍK

     OBDÉLNÍK [50, 100] ; nakresli obdélníkový tvar (50×100pt)
     OBDÉLNÍK [50, 100, 10] ; nakresli obdélník se zaoblenými rohy

### BOD (PUNTÍK)

     BOD ; nakresli bod o velikosti a barvě pera

UZAVŘI spojí koncové body, pomocí VYPLŇ lze vyplnit tvar určený body. Je tak například snadné nakreslit stylizovanou hvězdu, začíná se ze středu:

     PERONAHORU
     OPAKUJ 5 [
       DOPŘEDU 80
       BOD
       VZAD 80
       VPRAVO 36
       DOPŘEDU 50
       BOD
       VZAD 50
       VPRAVO 120
     ] VYPLŇ

### TEXT

     TEXT „text“ ; piš text na pozici želvy
     TEXT "text" ; viz výše
     TEXT "text ; viz výše (pouze pro samostatná slova)

### POPISEK

     KRUH 10 POPISEK „text“ ; nastav text k aktuálnímu objektu kresby

## Nastavení písma

### BARVAPÍSMA

     BARVAPÍSMA „zelená“ ; nastav barvu písma

### DRUHPÍSMA

     DRUHPÍSMA „Linux Libertine G“ ; nastav druh písma (rodinu)
     DRUHPÍSMA „Linux Libertine G:smcp=1“ ; nastav také vlastnosti písma (malé kapitálky)
     DRUHPÍSMA „Linux Libertine G:smcp=1&onum=1“ ; malé kapitálky + staré písmo

### VELIKOSTPÍSMA

     VELIKOSTPÍSMA 12 ; nastav 12pt

### TLOUŠŤKAPÍSMA

     TLOUŠŤKAPÍSMA „tučné“ ; nastav tučné písmo
     TLOUŠŤKAPÍSMA „normální“ ; nastav normální tloušťku

### STYLPÍSMA

     STYLPÍSMA „kurzíva“ ; nastav kurzívu
     STYLPÍSMA „normální“ ; nastav normální písmo

## OBRÁZEK (obr)

OBRÁZEK slouží k

- seskupování tvarů;

- začátku nového tvaru z čáry;

- ukládání obrázků SVG a animací SVG/SMIL;

- zachování konzistence pozicí a tvarů z čáry na levém okraji.

### Seskupení tvarů

     ; OBRÁZEK [ příkazy_LibreLoga ]
    OBRÁZEK [ DOPŘEDU 100 KRUH 100 ] ; seskupený tvar stromu

Viz také „Seskupení“ v nápovědě k LibreOffice Writer.

     PŘÍKAZ strom umístění
       PERONAHORU POZICE umístění SMĚR 0 PERODOLŮ
       OBRÁZEK [ DOPŘEDU 100 KRUH 100 ] ; seskupený tvar stromu
     KONEC

     OBRÁZEK [ strom [230, 400] strom [300, 400] ] ; seskupené tvary v seskupeném tvaru

### Začátek nového tvaru z čáry

     OBRÁZEK ; začátek nového tvaru z čáry
     DOPŘEDU 10 OBRÁZEK DOPŘEDU 10 ; dva tvary tvořené čarami

### Ukládání obrázků SVG

     OBRÁZEK „priklad.svg“ [ KRUH 5 ] ; ulož obrázek jako soubor SVG do složky uživatele
     OBRÁZEK „Plocha/priklad.svg“ [ DOPŘEDU 100 KRUH 5 ] ; jako výše, ale s relativní cestou
     OBRÁZEK „/home/uzivatel/priklad.svg“ [ KRUH 5 ] ; absolutní cesta pro Unix/Linux
     OBRÁZEK „C:\priklad.svg“ [ KRUH 5 ] ; absolutní cesta pro Windows

### Ukládání animací SVG/SMIL (kresby s příkazy ČEKEJ)

     OBRÁZEK „animace.svg“ [ KRUH 5 ČEKEJ 1000 KRUH 99 ] ; ulož jako animaci SVG/SMIL (viz také ČEKEJ)
     OBRÁZEK „animace2.svg“ [ KRUH 5 ČEKEJ 1000 KRUH 99 ČEKEJ 2000 ] ; jako výše, ale použití ČEKEJ za posledním objektem způsobí opakování: v prohlížečích podporujících SMIL se animace po 2 sekundách spustí znovu

### Konzistence na levém okraji

K zachování konzistence pozic a tvarů z čáry na levém okraji Writeru použijte OBRÁZEK:

     OBRÁZEK [ KRUH 20 POZICE [-100, 100] KRUH 20 ]

## Cykly

### OPAKUJ

     ; OPAKUJ počet [ příkazy ]

     OPAKUJ 10 [ DOPŘEDU 10 VLEVO 45 KRUH 10 ] ; opakuj 10krát

     ; počet je nepovinný

     OPAKUJ [ POZICE LIB ] ; nekonečný cyklus

### POČÍTADLO (POČ)

Proměnná cyklu (také v cyklech PRO a DOKUD).

     OPAKUJ 100 [ DOPŘEDU POČÍTADLO VLEVO 90 ]

### PRO Z

Cyklus pro prvky seznamu:

     PRO i Z [1, 5, 7, 9, 11] [
       DOPŘEDU i
       VLEVO 90
     ]

Cyklus pro znaky z posloupnosti znaků:

     PRO i Z „text“ [
       TEXT i
       DOPŘEDU 10
     ]

### DOKUD

     DOKUD PRAVDA [ POZICE LIB ] ; nekonečný cyklus
     DOKUD POČÍTADLO <= 10 [ DOPŘEDU 50 VLEVO 36 ] ; jako OPAKUJ 10 [ ... ]

### UKONČI

Zastav cyklus.

     OPAKUJ [ ; nekonečný cyklus
       POZICE LIB
       KDYŽ POČÍTADLO = 100 [ UKONČI ]  ; stejné jako OPAKUJ 100 [ ... ]
     ]

### POKRAČUJ

Přejdi na další iteraci cyklu.

     OPAKUJ 100 [
       POZICE LIB
       KDYŽ POČÍTADLO % 2 = 0 [ POKRAČUJ ]
       KRUH 10 ; nakresli kruh na každé druhé pozici
     ]

## Podmínky

### KDYŽ

     ; KDYŽ podmínka [ blok pro pravdu ]
     ; KDYŽ podmínka [ blok pro pravdu ] [ blok pro nepravdu ]

     KDYŽ a < 10 [ PIŠ „Malé“ ]
     KDYŽ a < 10 [ PIŠ „Malé“ ] [ PIŠ „Velké“ ]

### AZÁROVEŇ (az), NEBO, NENÍ

Logické operátory.

     KDYŽ a < 10 AZ NENÍ a = 5 [ PIŠ „0, 1, 2, 3, 4, 6, 7, 8 nebo 9“ ]
     KDYŽ a < 10 AZ a != 5 [ PIŠ „0, 1, 2, 3, 4, 6, 7, 8 nebo 9“ ] ; jako výše

## Funkce

### PŘÍKAZ, KONEC

Nové slovo (nebo procedura).

     PŘÍKAZ trojúhelník
       OPAKUJ 2 [ DOPŘEDU 100 VPRAVO 120 ] VYPLŇ
     KONEC

     OPAKUJ 10 [ trojúhelník PERONAHORU POZICE LIB PERODOLŮ ]

### VÝSLEDEK

Vrací hodnotu funkce.

     PŘÍKAZ náhodnépísmeno
       VÝSLEDEK NÁHODNÉ „qwertzuiopasdfghjklyxcvbnm“
     KONEC

     PIŠ náhodnépísmeno + náhodnépísmeno + náhodnépísmeno ; piš 3znakovou náhodnou posloupnost znaků

### ZASTAV

Vrátí se z procedury.

     PŘÍKAZ příklad číslo
       KDYŽ číslo < 0 [ ZASTAV ]
       PIŠ ODMOCNINA číslo ; piš odmocninu
     ]

     příklad 100
     příklad -1 ; bez výsledku a chyby
     příklad 25

## Výchozí proměnné

### LIBOVOLNĚ (LIB)

Výchozí náhodná hodnota barvy atd.

     BARVAPERA LIB ; náhodná barva pera

### PRAVDA

Logická hodnota.

     DOKUD PRAVDA [ POZICE LIB ] ; nekonečný cyklus
     PIŠ PRAVDA ; piš pravdu

### NEPRAVDA

Logická hodnota.

     DOKUD NENÍ NEPRAVDA [ POZICE LIB ] ; nekonečný cyklus
     PIŠ NEPRAVDA ; piš nepravdu

### VELIKOSTSTRÁNKY

     PIŠ VELIKOSTSTRÁNKY ; piš seznam rozměrů stránky v bodech, např. [595.30, 841.89]

### PI/π

     PIŠ PI ; piš 3,14159265359

## Vstup/výstup

### PIŠ

     PIŠ „text“ ; piš „text“ do dialogového pole
     PIŠ 5 + 10 ; piš 15

### VSTUP

     PIŠ VSTUP „Vstupní hodnota?“ ; zeptej se a piš řetězec pomocí vstupního dialogového pole
     PIŠ DESETINNÉ (VSTUP „První číslo?“) + DESETINNÉ (VSTUP „Druhé číslo?“) ; jednoduchá kalkulačka

## ČEKEJ

     ČEKEJ 1000 ; čekej 1000 ms (1 sekundu)

## GLOBÁLNÍ

Nastav globální proměnné používané v procedurách.

     GLOBÁLNÍ oprogramu
     oprogramu = „LibreLogo“

     PŘÍKAZ příklad
       PIŠ oprogramu
       GLOBÁLNÍ oprogramu ; když chceme přidat novou hodnotu
       oprogramu = „nová hodnota globální proměnné“
     KONEC

     příklad
     PIŠ oprogramu

## Funkce

### NÁHODNÉ

     PIŠ NÁHODNÉ 100 ; náhodné desetinné číslo (0 <= x < 100)
     PIŠ NÁHODNÉ „text“ ; náhodná písmena ze slova „text“
     PIŠ NÁHODNÉ [1, 2] ; náhodný prvek seznamu (1 nebo 2)

### CELÉ

     PIŠ CELÉ 3,8 ; piš 3 (celá část z 3,8)
     PIŠ CELÉ NÁHODNÉ 100 ; náhodné celé číslo (0 <= x < 100)
     PIŠ CELÉ „7“ ; převeď řetězec na celé číslo

### DESETINNÉ

     ; převeď řetězec na desetinné číslo
     PIŠ 2 * DESETINNÉ „5,5“ ; piš 11,0

### ŘETĚZEC

     ; převeď číslo na řetězec
     PIŠ „Výsledek: “ + ŘETĚZEC 5 ; piš „Výsledek: 5“
     PIŠ 10 * ŘETĚZEC 5 ; piš 5555555555

### ODMOCNINA

     PIŠ ODMOCNINA 100 ; piš 10, odmocninu ze 100

### SIN

     PIŠ SIN 90 * PI/180 ; piš 1,0 (sinus 90° v radiánech)

### COS

     PIŠ COS 0 * PI/180 ; piš 1,0 (kosinus 0° v radiánech)

### LOG10

     PIŠ LOG10 100 ; piš 2,0 (dekadický logaritmus 100)

### ZAOKROUHLENÉ

     PIŠ ZAOKROUHLENÉ 3,8 ; piš 4 (zaokrouhlené 3,8)
     PIŠ ZAOKROUHLENÉ NÁHODNÉ 100 ; náhodné celé číslo (0 <= x <= 100)

### ABSOLUTNÍ

     PIŠ ABSOLUTNÍ -10 ; piš 10, absolutní hodnotu -10

### POČET

     PIŠ POČET „text“ ; piš 4, počet znaků slova „text“
     PIŠ POČET [1, 2, 3] ; piš 3, velikost seznamu

### MNOŽINA

     ; Převeď seznam na množinu Pythonu
     PIŠ MNOŽINA [4, 5, 6, 6] ; piš {4, 5, 6}
     PIŠ MNOŽINA [4, 5, 6, 6] | MNOŽINA [4, 1, 9] ; piš {1, 4, 5, 6, 9}, sjednocení
     PIŠ MNOŽINA [4, 5, 6, 6] & MNOŽINA [4, 1, 9] ; piš {4}, průnik
     PIŠ MNOŽINA ([4, 5, 6, 6]) - MNOŽINA [4, 1, 9] ; piš {5, 6}, doplněk
     PIŠ MNOŽINA [4, 5, 6, 6] ^ MNOŽINA [4, 1, 9] ; piš {1, 5, 6, 9}, rozdíl

### OBLAST

     ; vytváření seznamu jako v Pythonu
     PIŠ SEZNAM ROZSAH 10 ; piš [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     PIŠ SEZNAM ROZSAH 3 10 ; piš [3, 4, 5, 6, 7, 8, 9]
     PIŠ SEZNAM ROZSAH 3 10 3 ; piš [3, 6, 9]

     PRO i Z ROZSAH 10 50 10 [ ; cyklus pro [10, 20, 30, 40]
       DOPŘEDU i
       VLEVO 90
     ]

### SEZNAM

     ; odstraň opakující se prvky seznamu pomocí množiny a převeď množinu na seznam
     PIŠ SEZNAM (MNOŽINA [1, 3, 5, 5, 2, 1]) ; piš [1, 3, 5, 2]

### NTICE

Převod na typ Pythonu n-tice (neměnný seznam)

     PIŠ NTICE [4, 5]

### SEŘAZENO

Vrací seřazený seznam.

     PIŠ SEŘAZENO [5, 1, 3, 4] ; piš [1, 3, 4, 5]

### NAHRAĎ

Nahraď posloupnosti znaků pomocí regulárních výrazů.

     PIŠ NAHRAĎ („t“, „T“, „text“) ; piš „Text“, „t“ je nahrazeno „T“
     PIŠ NAHRAĎ („(.)“, „\\1\\1“, „text“) ; piš „tteexxtt“, každý znak je zdvojen

### HLEDEJ

Hledej posloupnost znaků pomocí regulárních výrazů.

     KDYŽ HLEDEJ („\w“, "slovo") [ PIŠ „Slovo obsahuje písmeno.“ ]

### NAJDIVŠE

Najdi všechny posloupnosti znaků ve vstupním řetězci, které odpovídají zadanému regulárnímu výrazu.

     PIŠ NAJDIVŠE(„\w+“, „Psi, kočky.“) ; piš seznam slov [„Psi“, „kočky“].

### MIN

     PIŠ MIN [1, 2, 3] ; piš 1, nejmenší prvek seznamu

### MAX

     PIŠ MAX [1, 2, 3] ; piš 3, největší prvek seznamu

## Konstanty barev

     BARVAPERA „STŘÍBRNÁ“ ; nastav podle názvu
     BARVAPERA [1] ; nastav podle identifikátoru
     BARVAPERA „~STŘÍBRNÁ“ ; náhodná stříbrná barva

Identifikátor | Název
0 | ČERNÁ
1 | STŘÍBRNÁ
2 | ŠEDÁ
3 | BÍLÁ
4 | KAŠTANOVÁ
5 | ČERVENÁ
6 | TMAVĚ PURPUROVÁ
7 | MAGENTA
8 | ZELENÁ
9 | ŽLUTOZELENÁ
10 | OLIVOVÁ
11 | ŽLUTÁ
12 | TMAVOMODRÁ
13 | MODRÁ
14 | ZELENOMODRÁ
15 | AZUROVÁ
16 | RŮŽOVÁ
17 | CIHLOVÁ
18 | ORANŽOVÁ
19 | ZLATÁ
20 | FIALOVÁ
21 | BLEDĚMODRÁ
22 | ČOKOLÁDOVÁ
23 | HNĚDÁ
24 | NEVIDITELNÁ