LibreLogo

LibreLogo é un ambiente de programación simple, adaptado, tipo Logo, con graficos vectoriais da tartaruga para aprender programación (programacion e procesamento de textos, DTP e deseño gráfico. Vexa http://www.numbertext.org/logo/librelogo.pdf.

Barra de ferramentas do LibreLogo

A barra de ferramentas do LibreLogo Ver - Ferramentas - Logo) contén movementos da tartaruga, inicio do programa, parar, volver ao inicio, limpar a pantalla, editor de programa / realce de sintaxe / tradución de iconas e unha barra de entrada (liña de ordes).

Iconas de movemento da tartaruga

Son equivalentes ás ordes de Logo «AVANCE 10» «ATRÁS 10», «ESQUERDA 15», «DEREITA 15". Premendo nunha das iconas tamén se enfocará a forma de tartaruga desprazando a páxina para á súa posición.

Iniciar o programa Logo

Fai clic na icona «Iniciar o programa Logo» para executar o texto (ou só o seleccionado) texto do documento do Writer como un programa LibreLogo. Nun documento en branco inserirase e executarase un programa de exemplo.

Prema na icona «Stop» icona para deter a execución do programa.

Inicio

Faga clic na icona «Inicio» para reiniciar a posición e as opcións da tartaruga.

Despexar a pantalla

Faga clic na icona «Despexar a pantalla» para eliminar os obxectos de debuxo do documento.

Editor de programa / Realce de sintaxe / Tradución

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 ( - Languages and Locales - General - Western) and click on this icon to translate the Logo program to the selected language.

Liña de ordes

Prema Intro na liña de comandos para realizar o seu contido. Para deter o programa usa a icona "Stop".

Manteña premida a tecla Intro para repetir a liña de comandos, por exemplo, na seguinte secuencia de comandos:

 FRONTE ESQUERDA 89 200 

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

Interface gráfica de usuario de configuración básicas de tartaruga

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.

Edición de programa

Debuxos e programas LibreLogo usar o mesmo documento do Writer. A pantalla LibreLogo é na primeira páxina do documento Writer. Pode inserir unha quebra de páxina antes de que os programas LibreLogo e axustar o zoom de páxina usando a icona "vara máxica" na barra de ferramentas Logo, tamén cambiar o tamaño da fonte para un esquema de páxina 2 cómodo para a programación LibreLogo: esquerda (primeiro) é a páxina canvas , dereito (segundo) páxina é o editor do programa LibreLogo.

Linguaxe de programación LibreLogo

LibreLogo é unha linguaxe facilmente localizable de programación Logo-like, situada en varios idiomas por comunidades lingüísticas nativa do LibreOffice. É back-compatible cos sistemas máis antigos Logo, no caso dos programas Logo simple usadas na educación, por exemplo.

 PARA triángulo: tamaño 
repeat 3 [
A SEGUIR: tamaño
ESQUERDA 120
]
END

10 triangular triángulo triángulo 100 200

As diferenzas de linguaxe de programación Logo

Outras características do LibreLogo

Ordes LibreLogo

Sintaxe básica

Diferenciar maiúsculas de minúsculas

Ordes, constantes de cores son maiúsculas e minúsculas:

 PRINT "Ola, mundo!" 
Imprimir "Ola, mundo, unha vez máis!"

Os nomes de variables son sensibles ao caso:

 a = 5 
A = 7
copia Unha copia
A

Liñas de programa

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

 PRINT "Ola, mundo!" PRINT "LibreLogo" 

Comentarios

Liñas ou partes de liñas son comentarios de un punto e coma para o fin da liña (parágrafo):

 ; algúns comentarios 
PRINT 5 * 5; algúns comentarios

Rompe liñas de programa para varios parágrafos

É posible romper unha liña de programa a máis parágrafos mediante o carácter til ao final da liña:

 PRINT "Este é un tempo moi longo" + ~ 
"mensaxe de advertencia"

Tartaruga en movemento

FORWARD (FD)

 FORWARD 10 ; move forward 10pt (1pt = 1/72 inch)
FORWARD 10pt ; see above
FORWARD 0.5in ; move forward 0.5 inch (1 inch = 2.54 cm)
FORWARD 1" ; see above
FD 1mm
FD 1cm

Atrás (BK)

 VOLTA 10; volver 
10pt

PARAESQUERDA (pe)

 ESQUERDA 90; volta á esquerda 90 graos 
ESQUERDA 90 °; ver arriba
LT 3h; ver arriba (posición de reloxo)
LT calquera; virar a unha posición aleatoria

RIGHT (rt)

 DEREITO 90; xire no sentido horario 90 graos 

Penup (pu)

 Penup; tartaruga vai moverse sen chamar 

Pendown (pd)

 Pendown; tartaruga vai moverse con deseño 

POSICIONAR (pos)

 POSICIÓN [0, 0]; transformar e mover ao canto superior esquerdo 
POSICIÓN PageSize; xire e move para colocar o ángulo inferior dereito
[PageSize [0], 0]; transformar e mover ao ángulo superior dereito
colocar CALQUERA; xire e move a unha posición aleatoria

Rúbrica (Seth)

 TÍTULO 0; Xire cara ao norte 12h rúbrica 
; ver arriba
título [0, 0]; virar para o ángulo superior esquerdo
TÍTULO CALQUERA; volver a unha dirección aleatoria

Outros comandos de tartaruga

AGOCHARTARTARUGA (at)

 HIDETURTLE; hide tartaruga (ata que a orde showturtle) 

MOSTRARTARTARUGA (mt)

 SHOWTURTLE; amosar 
tartaruga

INICIO

 HOME ; reset initial turtle position

ClearScreen (cs)

 ClearScreen; eliminar obxectos de debuxo do documento 

Encher e pechar

 FILL ; close and fill the actual line shape or points
CLOSE ; close the actual line shape or join the actual points

Example: filling a regular triangle:

 FORWARD 50 LEFT 120 FORWARD 50 FILL

Example: drawing a regular triangle:

 FORWARD 50 LEFT 120 FORWARD 50 CLOSE

Configuración da pluma

PENSIZE (MA)

 PENSIZE 100 ; line thickness is 100 points
PENSIZE ANY ; equivalent of PENSIZE RANDOM 10

Pencolor / PENCOLOUR (PC)

 Pencolor "vermello"; definir a cor da pluma vermella (por nome de cor, consulte constantes de cores) 
pencolor [255, 255, 0]; definir a cor amarela (lista RGB)
pencolor 0xFFFF00; definir a cor amarela (código hexa)
pencolor 0; definir a cor negra (0x000000)
pencolor CALQUERA; cor aleatoria
pencolor [5]; definir a cor vermella (por identificador de cor, consulte constantes de cores)
pencolor "invisible"; cor da pluma invisible para formas sen contorno visible
pencolor "~ vermello"; Random conxunto cor vermella

PENTRANSPARENCY

 PENTRANSPARENCY 80; definir a transparencia da cor real da pluma para 80% 

Pencap / LineCap

 Pencap "none"; sen fin de liña extra (por defecto) 
Pencap "round"; fin de liña redondeada
Pencap "cadrado"; liña cadrada final

PENJOINT / LineJoint

 PENJOINT "redondeado"; liña redondeada conxunta (por defecto) 
PENJOINT "mitra"; liña nítida
conxunta PENJOINT "bisel"; liña de bisel
conxunta PENJOINT "none"; sen liña
conxunta

Penstyle

 PENSTYLE “solid” ; solid line (default)
PENSTYLE “dotted” ; dotted line
PENSTYLE “dashed” ; dashed line

; custom dot–dash pattern specified by a list with the following arguments:
; – number of the neighbouring dots
; – length of a dot
; – number of the neighbouring dashes
; – length of a dash
; – distance of the dots/dashes
; – type (optional):
; 0 = dots are rectangles (default)
; 2 = dots are squares (lengths and distances are relative to the pensize)

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

Encha definicións

FillColor / FILLCOLOUR (fc)

 FILLCOLOR “blue” ; fill with blue color, see also PENCOLOR
FILLCOLOR “invisible” CIRCLE 10 ; unfilled circle
FILLCOLOR [“blue”, “red”] ; gradient between red and blue
FILLCOLOR [[255, 255, 255], [255, 128, 0]] ; between white and orange
FILLCOLOR [“blue”, “red”, 1, 0, 0] ; set axial gradient (with the required rotation and border settings), possible values: 0-5 = linear, axial, radial, elliptical, square and rectangle gradients
FILLCOLOR [“red”, “blue”, 0, 90, 20] ; linear with 20% border, rotated with 90 degrees from the actual heading of the turtle
FILLCOLOR [“red”, “blue”, 0, 90, 20, 0, 0, 200, 50] ; from 200% to 50% intensity
FILLCOLOR [ANY, ANY, 2, 0, 0, 50, 50] ; radial gradient with random colors and 50-50% horizontal and vertical positions of the center

FILLTRANSPARENCY

 FILLTRANSPARENCY 80; definir a transparencia da cor real de recheo do 80% 
FILLTRANSPARENCY [80]; definido gradiente lineal transparencia do 80% a 0%
FILLTRANSPARENCY [80, 20]; definido gradiente lineal transparencia do 80% ao 20%
FILLTRANSPARENCY [80, 20, 1, 90]; definido gradiente de transparencia axial rodado con 90 graos a partir da posición real da tartaruga
FILLTRANSPARENCY [80, 20, 2, 0, 20, 50, 50]; definir gradiente radial de transparencia externa de 80% a 20% de transparencia interna con 20% de fronteira e con 50-50% posicións horizontal e vertical do centro

FillStyle

 FILLSTYLE 0 ; fill without hatches (default)
FILLSTYLE 1 ; black single hatches (horizontal)
FILLSTYLE 2 ; black single hatches (45 degrees)
FILLSTYLE 3 ; black single hatches (-45 degrees)
FILLSTYLE 4 ; black single hatches (vertical)
FILLSTYLE 5 ; red crossed hatches (45 degrees)
FILLSTYLE 6 ; red crossed hatches (0 degrees)
FILLSTYLE 7 ; blue crossed hatches (45 degrees)
FILLSTYLE 8 ; blue crossed hatches (0 degrees)
FILLSTYLE 9 ; blue triple crossed
FILLSTYLE 10 ; black wide single hatches (45 degrees)

; custom hatches specified by a list with the following arguments:
; – style (1 = single, 2 = double, 3 = triple hatching)
; – color
; – distance
; – degree

FILLSTYLE [2, “green”, 3pt, 15°] ; green crossed hatches (15 degrees)

Obxectos de debuxo

CÍRCULO

 CIRCLE 100; deseñar unha forma de círculo (diámetro = 100pt) 

ELIPSE

 Elipse [50, 100]; debuxar unha elipse con 50 e 100 diámetros 
elipse [50, 100, 2H, 12h]; deseñar un sector elíptico (a partir da posición de reloxo 2h 12h)
elipse [50, 100, 2h, 12h, 2]; deseñar un segmento elíptico Ellipse
[50, 100, 2h, 12h, 3]; deseñar un arco elíptico

CADRADO

 Cadrado 100; debuxar unha forma cadrada (size = 100pt) 

RECTÁNGULO

 RECTANGLE [50, 100] ; draw a rectangle shape (50×100pt)
RECTANGLE [50, 100, 10] ; draw a rectangle with rounded corners

PUNTO

 PUNTO; deseñar un punto co tamaño ea cor da pluma 

CLOSE can join the last points, FILL can fill the shape defined by points. For example, it’s easy to draw a “flat” star starting from its center:

 PENUP
REPEAT 5 [
FORWARD 80
POINT
BACK 80
RIGHT 36
FORWARD 50
POINT
BACK 50
RIGHT 120
] FILL

ETIQUETA

 LABEL "texto"; texto de impresión na posición de tartaruga 
LABEL 'texto'; ver arriba
LABEL \ "text; ver arriba (só para palabras illadas)

TEXTO

 CIRCLE 10 TEXT "texto"; texto constante do real obxecto de debuxo 

Configuración de fonte

Fontcolor / fontcolour

 Fontcolor "verde"; definir 
cor do tipo de letra

Fontfamily

 Fontfamily "Linux Libertine G"; font set (familia) 
fontfamily "Linux Libertine G: SMCP = 1"; definir tamén a característica da fonte (small caps)
fontfamily "Linux Libertine G: SMCP = 1 & onum = 1"; small caps + vello figuras

TAMAÑO DA FONTE

 FontSize 12; definir 
12pt

FontWeight

 FontWeight "negra"; definir negra 
fontWeight "normal"; definir
peso normal

ESTILO DA FONTE

 Fontstyle "cursiva"; definir cursiva fontstyle variante 
"normal"; definido
variante normal

PICTURE (pic)

PICTURE é para

Forma agrupación

 ; PICTURE [LibreLogo_commands] 
PICTURE [FRONTE 100 CIRCLE 100]; tree-like agrupados forma

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

Iniciando novas formas de liña

 PICTURE; iniciar unha nova forma de liña 
FRONTE A FRONTE 10 PICTURE 10; dúas liñas formas

Salvando imaxes SVG

 PICTURE "example.svg" [CIRCLE 5]; gardar a imaxe como un arquivo de imaxe SVG no cartafol do usuario 
PICTURE "Escritorio / example.svg" [A FRONTE 100 CIRCLE 5]; como antes, con un camiño relativo
PICTURE "/home/user/example.svg" [CIRCLE 5]; camiño absoluto para Unix / Linux
PICTURE "C: \ example.svg" [CIRCLE 5]; camiño absoluto para Windows

Salvando animacións SVG / SMIL (debuxos con comandos do sono)

 PICTURE "animation.svg" [CIRCLE 5 SLEEP 1000 CIRCLE 99]; gardar como un SVG / animación SMIL (ver tamén durmir) 
PICTURE "animation2.svg" [CIRCLE 5 SLEEP 1000 CIRCLE 99 SLEEP 2000]; enriba, pero utilizando SLEEP despois do último obxecto resultará looping: Tras 2 segundos, a animación SVG reiniciar en navegadores SMIL-conformant

Consistencia na fronteira esquerda

Use PICTURE to keep the consistency of positions and line shapes at the left border of Writer:

 PICTURE [CIRCLE 20 POSICIÓN [-100, 100] CIRCLE 20] 

Lazos

REPETIR

 ; Número repeat [comandos] 

repeat 10 [FRONTE 10 ESQUERDA 45 CIRCLE 10]; Repita 10 veces
 ; número é repeat 

opcional [POSICIÓN CALQUERA];
loop infinito

REPCOUNT

Variable do lazo (tamén no for e while).

 Repeat 100 [FRONTE REPCOUNT ESQUERDA 90] 

NO

Lazo para os elementos da lista:

 FOR i IN [1, 5, 7, 9, 11] [
FRONTE i
LEFT 90
]

Lazo para os carácteres dunha secuencia de caracteres:

 FOR i IN "texto" [LABEL 
i
Avanzado 10
]

Mentres

 Mentres verdade [POSICIÓN CALQUERA]; 
loop infinito Mentres REPCOUNT <= 10 [FRONTE 50 ESQUERDA 36]; como repeat 10 [...]

QUEBRA

Deter o loop.

 Repeat [; loop infinito POSICIÓN 
CALQUERA
IF REPCOUNT = 100 [BREAK]; equivalente do repeat 100 [...]
]

CONTINUAR

Ir á seguinte iteración do bucle.

 Repeat 100 [POSICIÓN 
CALQUERA
IF REPCOUNT% 2 = 0 [continuar]
CIRCLE 10; deseñar círculos en cada 2 posicións
]

Condicións

SE

 ; IF condición [certo bloque] 
; IF condición [certo bloque] [bloque false]
a <10 [PRINT "pequeno"] <br /> a <10 [PRINT "pequeno"] [PRINT "Big"] <br />

E, OU NON,

Operadores lóxicos.

 Se a <10 E NON a = 5 [PRINT "0, 1, 2, 3, 4, 6, 7, 8 ou 9"] <br /> a <10 e un! = 5 [PRINT "0, 1 , 2, 3, 4, 6, 7, 8 ou 9 "]; como antes 

Subrutinas

Rematar

Nova palabra (ou procedemento).

 TO triangle
REPEAT 2 [ FORWARD 100 RIGHT 120 ] FILL
END

REPEAT 10 [ triangle PENUP POSITION ANY PENDOWN ]

SAÍDA

Valor da función volver.

 A randomletter 
OUTPUT RANDOM "qwertzuiopasdfghjklyxcvbnm"
END

randomletter PRINT + randomletter + randomletter; impresión de 3 letras de caracteres aleatorios secuencia

PARAR

Retorno do procedemento.

 A exemplo número 
IF número <0 [STOP] <br /> número PRINT sqrt; imprimir raíz cadrada
]
exemplo 100
exemplo -1; sen saída e erro
exemplo 25

Variables estándar

CALQUERA

Estándar valor aleatorio de cores, etc.

 Pencolor CALQUERA; pluma cor aleatoria 

VERDADEIRO

Valor lóxico.

 Mentres verdade [POSICIÓN CALQUERA]; loop infinito 
PRINT TRUE; imprimir verdadeira

FALSO

Valor lóxico.

 Aínda que non sexa FALSE [POSICIÓN CALQUERA]; loop infinito 
PRINT FALSE; imprimir falsa

PageSize

 PRINT PageSize; lista de impresión da páxina tamaños en puntos, por exemplo. [595,30, 841,89] 

PI / π

 PRINT PI; imprimir 3,14159265359 

Input / Output

IMPRIMIR

 PRINT "texto"; print "texto" nunha caixa de diálogo 
PRINT 5 + 10; imprimir 15

ENTRADA

 PRINT INPUT "Valor de entrada?"; pedir e imprimir unha secuencia de caracteres por un cadro de diálogo consulta 
PRINT float (INPUT "Primeiro número?") + float (INPUT "Segundo número?");
simple calculadora

SLEEP

 SLEEP 1000; esperar a 1000 ms (1 seg) 

GLOBAL

Definir variables globais utilizados en procedementos.

 GLOBAL sobre 
sobre = "LibreLogo"

para imprimir exemplo
sobre
sobre GLOBAL; cando queremos engadir un novo valor
sobre = "novo valor para a variábel global"
END

exemplo
imprimir sobre

Funcións

ALEATORIO

 Imprimir RANDOM 100; Número de flutuación aleatoria (0 <= x <100) <br /> Imprimir RANDOM "texto"; carta aleatoria do "texto" 
imprimir RANDOM [1, 2]; elemento lista aleatoria (1 ou 2)

ENT

 PRINT INT 3,8; impresión 3 (parte enteira de 3,8) 
PRINT INT RANDOM 100; número enteiro aleatorio (0 <= x <100) <br /> PRINT INT "7"; converter o parámetro de cadea para enteiro

Float

 ; converter o parámetro de cadea para flotar número 
PRINT 2 * float "5.5"; imprimir 11,0

STR

 ; converter o parámetro de número de secuencia de 
PRINT "Resultado:" + STR 5; print "Resultado: 5"
imprimir 10 * STR 5; imprimir 5555555555

RAÍZC

 PRINT sqrt 100; impresión 10, raíz cadrada de 100 

SENO

 PRINT SIN 90 * PI / 180; imprimir 1,0 (seo 90 ° en radiáns) 

COS

 COS DE IMPRESIÓN 0 * PI / 180; imprimir 1,0 (cosinus de 0 ° en radiáns) 

LOG10

 PRINT LOG10 100; imprimir 2.0 (logaritmo común de 100) 

ARREDONDAR

 Imprimir Rolda 3,8; impresión 4 (redondeando 3,8) 
PRINT ROUND RANDOM 100; número enteiro aleatorio (0 <= x <= 100) <br />

ABS

 PRINT ABS -10; impresión 10, valor absoluto de -10 

CONTAR

 PRINT COUNT "texto"; 4 de impresión, contador de caracteres de "texto" PRINT COUNT 
[1, 2, 3]; 3 impresión, tamaño da lista de

SET

 ; Lista converter a Python definir 
PRINT SET [4, 5, 6, 6]; print {4, 5, 6}
PRINT SET [4, 5, 6, 6] | SET [4, 1, 9]; print {1, 4, 5, 6, 9}, unión
PRINT SET [4, 5, 6, 6] & SET [4, 1, 9]; print {4} , intersección
PRINT SET ([4, 5, 6, 6]) - SET [4, 1, 9]; print {5, 6}, diferenza
PRINT SET [4, 5, 6, 6] ^ SET [4, 1, 9]; print {1, 5, 6, 9}, simétrica diferenza

INTERVALO

 ; 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

 ; eliminar os elementos de repetición dunha lista utilizando set e lista de conversión 
LIST PRINT (SET [1, 3, 5, 5, 2, 1]); impresión [1, 3, 5, 2]

Tupla

Conversión a Python tupla (lista non-modificable)

 PRINT tupla [4, 5] 

SORTED

El retorna cunha lista clasificada.

 PRINT SORTED [5, 1, 3, 4]; impresión [1, 3, 4, 5] 

SUB

Secuencias de caracteres de substitución usando regex (expresións regulares).

 PRINT SUB ("t", "T", "texto"); print "Texto", substituíndo "t" con "T" 
PRINT SUB ("().", "\\ \\ 1 1", "texto"); print "tteexxtt", dobrando cada caracteres

PROCURAR

Busca carácter secuencias patróns usando patróns de expresión regular.

 IF SEARCH (“\w”, "word") [ PRINT “Letter in the word.” ]

FindAll

Buscar todas as secuencias de caracteres na cadea de entrada que corresponden ao estándar regex dado.

 FindAll PRINT ("\ w +", "Cans, gatos."); imprimir ["Dogs", "gatos"], a lista das palabras. 

MÍNIMO

 PRINT MIN [1, 2, 3]; impresión 1, o menor elemento da lista 

MÁXIMO

 PRINT MAX [1, 2, 3]; impresión 3, o maior elemento da lista 

Constantes de cores

 Pencolor "SILVER"; fixado polo nome 
pencolor [1]; definido por identificadores
pencolor "~ SILVER"; color plata aleatoria

Identificador

Nome

0

NEGRO

1

PRATA

2

GRIS

3

BRANCO

4

MARRÓN

5

VERMELLO

6

PÚRPURA

7

FUCSIA/MAXENTA

8

VERDE

9

LIMA

10

OLIVA

11

AMARELO

12

AZUL MARIÑO

13

AZUL

14

Teal

15

AGUAMARIÑA

16

ROSA

17

TOMATE

18

LARANXA

19

OURO

20

VIOLETA

21

AZUL CELESTE

22

CHOCOLATE

23

CASTAÑO

24

INVISÍBEL


Precisamos da súa axuda!