LibreLogo
O LibreLogo é um ambiente de programação ao estilo da linguagem Logo, simples, traduzido, com desenhos vetoriais feitos com a tartaruga do Logo; foi feito para ensino de computação (programação e processamento de palavras), para editoração eletrônica e para design gráfico. Consulte em inglês http://www.numbertext.org/logo/librelogo.pdf.
Barra de ferramentas LibreLogo
A barra de ferramentas LibreLogo (
ogo) contém ícones para movimentação da tartaruga, execução do programa, parar programa, ir para o centro, limpar a tela, tradução e colocação da sintaxe em maiúsculas, e uma caixa de entrada (linha de comandos).Ícones de movimentação da tartaruga
Eles são equivalentes aos comandos Logo “PARAFRENTE 10”, “PARATRÁS 10”, “PARAESQUERDA 15º”, “PARADIREITA 15º”. Clicar em um desses ícones também vai colocar o foco na tartaruga, rolando a página para a sua posição.
Executar programa Logo
Clique no ícone “Executar programa Logo” para executar o texto (ou apenas o texto selecionado) no documento do Writer contendo um programa LibreLogo. Para um documento vazio, um programa de exemplo será inserido e executado.
Clique no ícone “PARAR” para interromper a execução do programa.
PARACENTRO
Clique no ícone “PARACENTRO” para reiniciar a posição e as configurações da tartaruga.
Limpar tela (TAT)
Clique no ícone “Limpar tela” para remover os objetos de desenho do documento.
Editor do programa / Destaque da sintaxe / Tradução
O ícone da “varinha mágica” configura um leiaute de duas páginas para edição do programa, coloca por extenso e também converte para maiúsculas os comandos Logo abreviados no documento do Writer. Altere o idioma do documento (
) e clique neste ícone para traduzir o programa Logo para o idioma selecionado.Linha de comandos
Pressione Enter na linha de comandos para executar o seu conteúdo. Para interromper o programa, use o ícone “PARAR”.
Mantenha a tecla Enter pressionada para repetir a linha de comandos, por exemplo, na seguinte sequência de comandos:
PARAFRENTE 200 PARAESQUERDA 89
Para reiniciar a linha de comandos, clique nela três vezes, ou pressione Ctrl+A para selecionar os comandos anteriores, e digite os novos comandos.
Interface gráfica do usuário para as configurações básicas da tartaruga
A tartaruga do LibreLogo é um objeto de desenho com tamanho fixo. Você pode posicioná-la e girá-la da forma convencional, também, utilizando o mouse e o ícone Girar na barra de ferramentas Desenho. Mude as configurações Largura da Linha, Cor da Linha e Cor da Área da tartaruga para definir os atributos dos comandos do LibreLogo MUDARESPESSURADOLÁPIS, MUDARCORDOLÁPIS e MUDARCORDAPINTURA.
Edição do programa
Os desenhos e programas do LibreLogo usam o mesmo documento Writer. A tela do LibreLogo está sobre a primeira página do documento. Você pode inserir uma quebra de página antes dos programas LibreLogo e configurar o zoom utilizando o ícone da “varinha mágica” na barra de ferramentas Logo; também pode alterar o tamanho da letra para um leiaute de duas páginas que seja confortável para a programação com o LibreLogo: a página esquerda (a primeira) é a tela, e a página da direita (a segunda) é para o editor de programas do LibreLogo.
Linguagem de programação LibreLogo
LibreLogo é uma linguagem ao estilo do Logo facilmente traduzível, traduzida para diversos idiomas por comunidades nativas de cada língua. Possui compatibilidade retroativa com sistemas Logo mais antigos, no caso de programas Logo simples utilizados em educação, por exemplo.
APRENDER triangulo :tamanho
REPETIR 3 [
PARAFRENTE :tamanho
PARAESQUERDA 120
]
FIM
triangulo 10 triangulo 100 triangulo 200
Diferenças em relação à linguagem de programação Logo
-
Os membros das listas são separados por vírgula: POSICIONAR [0, 0]
-
Blocos de programa e listas são coisas diferentes:
-
-
Blocos de programa necessitam de espaço ou de nova linha ao lado dos colchetes: REPETIR 10 [ PARAFRENTE 10 PARAESQUERDA 36 ]
-
Listas necessitam de colchetes sem espaçamento: POSICIONAR [0, 0], em vez de POSICIONAR [ 0, 0 ]
-
-
Declarações de funções em uma só linha não são suportadas (APRENDER e FIM necessitam de novas linhas ao final).
Outras características do LibreLogo
-
O sinal de dois pontos é opcional antes do nome das variáveis.
APRENDER triangulo tamanho
REPETIR 3 [ PARAFRENTE tamanho PARAESQUERDA 120 ]
FIM -
A notação de cadeias de caracteres também possui suporte à sintaxe e ortografia da linguagem Python.
ESCREVER "palavra ; sintaxe original do Logo
ESCREVER “Texto arbitrário.” ; ortografia do Writer
ESCREVER 'Texto arbitrário.' ; sintaxe do Python -
Manipulação de cadeias e listas do Python
ESCREVER “texto”[2] ; escrever “x”
ESCREVER “texto”[1:3] ; escreve “ex” -
Laço PARA ao estilo do Python
-
Declaração de variáveis ao estilo do Python:
x = 15
ESCREVER x -
Não há funções extra de consulta:
ESCREVER MUDARCORDAPINTURA
p = POSICIONAR
ESCREVER p
REPETIR 10 [ POSICIONAR QUALQUER POSICIONAR p ] -
Sintaxe alternativa nas chamadas de funções com parâmetros
APRENDER estrela tamanho cor
MUDARCORDAPINTURA cor
REPETIR 5 [ PARAESQUERDA 72 PARAFRENTE tamanho PARADIREITA 144 PARAFRENTE tamanho ]
PINTAR
FIM
estrela 100 “VERMELHO”
PARAFRENTE 10
estrela (100, “VERDE”)
PARAFRENTE 10
estrela(100, “AZUL”)
Comandos do LibreLogo
Sintaxe básica
Distinção entre maiúsculas e minúsculas
Os comandos e as constantes de cores não diferenciam minúsculas de maiúsculas:
ESCREVER “Olá, Mundo!”
escrever “Olá, Mundo, novamente!”
Já os nomes das variáveis diferenciam minúsculas de maiúsculas:
a = 5
A = 7
ESCREVER a ; valor 5
ESCREVER A ; valor 7
Linhas do programa
As linhas de um programa LibreLogo são parágrafos no documento do Writer. Uma linha de programa pode conter múltiplos comandos:
ESCREVER “Olá, Mundo!” ESCREVER “LibreLogo”
Comentários
Linhas - ou partes delas - são consideradas como comentários a partir do sinal de ponto e vírgula até o final da linha (parágrafo):
; algum comentário
ESCREVER 5 * 5 ; algum comentário
Quebra de linhas do programa em múltiplos parágrafos
É possível quebrar uma linha do programa em vários parágrafos usando o caractere til no final da linha:
ESCREVER “Esta é uma mensagem de aviso ” + ~
“muito extensa”
Movimentação da tartaruga
PARAFRENTE (pf)
PARAFRENTE 10 ; move para a frente em 10pt (1pt = 1/72 polegadas)
PARAFRENTE 10pt ; ver acima
PARAFRENTE 0.5pol ; move para a frente em 0.5 polegadas (1 polegada = 2.54 cm)
PARAFRENTE 1" ; ver acima
PF 1mm
PF 1cm
PARATRÁS (pt)
PARATRÁS 10 ; move para trás 10pt
PARAESQUERDA (pe)
PARAESQUERDA 90 ; gira 90 graus para a esquerda
PARAESQUERDA 90° ; ver acima
PE 3h ; ver acima (posição do relógio)
PE QUALQUER ; gira aleatoriamente
PARADIREITA (pd)
PARADIREITA 90 ; gira 90 graus para a direita
USARNADA (un)
USARNADA ; a tartaruga se movimenta sem desenhar
USARLÁPIS (ul)
USARLÁPIS ; a tartaruga se movimenta desenhando
POSICIONAR (pos)
POSICIONAR [0, 0] ; gira e move a tartaruga para o canto superior esquerdo
POSICIONAR TAMANHODAPÁGINA ; gira e move a tartaruga para o canto inferior direito
POSICIONAR [TAMANHODAPÁGINA[0], 0] ; gira e move a tartaruga para o canto superior direito
POSICIONAR QUALQUER ; gira e move a tartaruga aleatoriamente
MUDARDIREÇÃO (mdir)
MUDARDIREÇÃO 0 ; gira para o norte
MUDARDIREÇÃO 12h ; ver acima
MUDARDIREÇÃO [0, 0] ; gira para o canto superior esquerdo
MUDARDIREÇÃO QUALQUER ; gira para uma direção aleatória
Outros comandos da tartaruga
DESAPARECERTAT (dt)
DESAPARECERTAT ; oculta a tartaruga (até que se utilize o comando aparecertat)
APARECERTAT (at)
APARECERTAT ; mostra a tartaruga
PARACENTRO (pc)
PARACENTRO ; reinicia as configurações iniciais e a posição da tartaruga
TARTARUGA (tat)
TARTARUGA ; remove os objetos de desenho do documento
PINTAR e FECHAR
PINTAR ; fecha e pinta a forma de linha atual
FECHAR ; fecha a forma de linha atual ou une os pontos
Exemplo: pintar um triângulo regular:
PARAFRENTE 50 PARAESQUERDA 120 PARAFRENTE 50 PINTAR
Exemplo: desenhar um triângulo regular:
PARAFRENTE 50 PARAESQUERDA 120 PARAFRENTE 50 FECHAR
Configurações do lápis
MUDARESPESSURADOLÁPIS (mespla)
MUDARESPESSURADOLÁPIS 100 ; a largura da linha é 100 pontos
MUDARESPESSURADOLÁPIS QUALQUER ; equivalente a MUDARESPESSURADOLÁPIS ALEATÓRIO 10
MUDARCORDOLÁPIS (mcorla)
MUDARCORDOLÁPIS “vermelho” ; define a cor vermelha (pelo nome da cor; consulte constantes de cor)
MUDARCORDOLÁPIS [255, 255, 0] ; define a cor amarela (lista RGB)
MUDARCORDOLÁPIS 0xffff00 ; define a cor amarela (hexadecimal)
MUDARCORDOLÁPIS 0 ; define a cor preto (0x000000)
MUDARCORDOLÁPIS QUALQUER ; define aleatoriamente a cor
MUDARCORDOLÁPIS [5] ; define a cor vermelha (por identificador; consulte constantes de cor)
MUDARCORDOLÁPIS “invisível” ; define a cor transparente para formas sem contornos
MUDARCORDOLÁPIS “~vermelho” ; define um vermelho aleatório
MUDARTRANSPARÊNCIADOLÁPIS (mtrala)
MUDARTRANSPARÊNCIADOLÁPIS 80 ; define a transparência da cor do lápis corrente para 80%
MUDARPONTADOLÁPIS (mponla)
MUDARPONTADOLÁPIS “nenhum” ; sem ponta de linha extra (padrão)
MUDARPONTADOLÁPIS “arredondado” ; ponta de linha arredondada
MUDARPONTADOLÁPIS “quadrado” ; ponta de linha quadrada
MUDARCANTODALINHA (mcanli)
MUDARCANTODALINHA “arredondado” ; canto de linha arredondado (padrão)
MUDARCANTODALINHA “pontudo” ; canto de linha pontudo
MUDARCANTODALINHA “cortado” ; canto de linha cortado
MUDARCANTODALINHA “nenhum” ; sem canto de linha
MUDARESTILODOLÁPIS (mestla)
MUDARESTILODOLÁPIS “sólido” ; linha sólida (padrão)
MUDARESTILODOLÁPIS “pontilhado” ; linha pontilhada
MUDARESTILODOLÁPIS “tracejado” ; linha tracejada
; personalizar o padrão de acordo com seguintes argumentos:
; – número de pontos próximos
; – tamanho do ponto
; – número de traços próximos
; – tamanho do traço
; – distância entre pontos e traços
; – tipo (opcional):
; 0 = os pontos são retângulos (padrão)
; 2 = os pontos são quadrados (tamanho e distância são proporcionais à espessura do lápis)
MUDARESTILODOLÁPIS [3, 1mm, 2, 4mm, 2mm, 2] ; ...––...––...––
Configurações de pintura
MUDARCORDAPINTURA (mcorpi)
MUDARCORDAPINTURA “azul” ; pinta com a cor azul - ver também MUDARCORDOLÁPIS
MUDARCORDAPINTURA “invisível” CÍRCULO 10 ; círculo sem pintura
MUDARCORDAPINTURA [“azul”, “vermelho”] ; gradiente entre vermelho e azul
MUDARCORDAPINTURA [[255, 255, 255], [255, 128, 0]] ; entre branco e laranja
MUDARCORDAPINTURA [“azul”, “vermelho”, 1, 0, 0] ; configura gradiente axial (com as configurações de rotação e borda requeridas), valores possíveis: 0-5 = gradientes linear, axial, radial, elíptico, quadrado e retangular
MUDARCORDAPINTURA [“vermelho”, “azul”, 0, 90, 20] ; linear com 20% de borda, rotacionado com 90 graus da direção atual da tartaruga
MUDARCORDAPINTURA [“vermelho”, “azul”, 0, 90, 20, 0, 0, 200, 50] ; intensidade de 200% a 50%
MUDARCORDAPINTURA [QUALQUER, QUALQUER, 2, 0, 0, 50, 50] ; gradiente radial com cores aleatórias e 50-50% de posições verticais e horizontais do centro
MUDARTRANSPARÊNCIADAPINTURA (mtrapi)
MUDARTRANSPARÊNCIADAPINTURA 80 ; define a transparência da cor de pintura atual para 80%
MUDARTRANSPARÊNCIADAPINTURA [80] ; define gradiente de transparência linear de 80% a 0%
MUDARTRANSPARÊNCIADAPINTURA [80, 20] ; define gradiente de transparência linear de 80% a 20%
MUDARTRANSPARÊNCIADAPINTURA [80, 20, 1, 90] ; define gradiente de transparência axial rotacionado 90 graus da direção atual da tartaruga
MUDARTRANSPARÊNCIADAPINTURA [80, 20, 2, 0, 20, 50, 50] ; define gradiente de transparência radial de transparência 80% externa para 20% interna com 20% de borda e com 50-50% de posições horizontal e vertical do centro
MUDARESTILODAPINTURA (mestpi)
MUDARESTILODAPINTURA 0 ; preencher sem hachurados (padrão)
MUDARESTILODAPINTURA 1 ; hachurados simples negros (horizontais)
MUDARESTILODAPINTURA 2 ; hachurados simples negros (45 graus)
MUDARESTILODAPINTURA 3 ; hachurados simples negros (-45 graus)
MUDARESTILODAPINTURA 4 ; hachurados simples negros (verticais)
MUDARESTILODAPINTURA 5 ; hachurados cruzados vermelhos (45 graus)
MUDARESTILODAPINTURA 6 ; hachurados cruzados vermelhos (0 graus)
MUDARESTILODAPINTURA 7 ; hachurados cruzados azuis (45 graus)
MUDARESTILODAPINTURA 8 ; hachurados cruzados azuis (0 graus)
MUDARESTILODAPINTURA 9 ; cruzado triplo azul
MUDARESTILODAPINTURA 10 ; hachurados simples negros e largos (45 graus)
; personalizar por uma lista com os seguintes argumentos:
; – estilo (1 = simples, 2 = duplo, 3 = hachurado triplo)
; – cor
; – distância
; – grau
MUDARESTILODAPINTURA [2, “verde”, 3pt, 15°] ; hachurados cruzados verdes (15 graus)
Desenho de objetos
CÍRCULO
CÍRCULO 100 ; desenha um círculo (diâmetro = 100pt)
ELIPSE
ELIPSE [50, 100] ; desenha uma elipse com diâmetro 50x100
ELIPSE [50, 100, 2h, 12h] ; desenha um setor elíptico (no sentido horário de 2h até 12h)
ELIPSE [50, 100, 2h, 12h, 2] ; desenha um segmento elíptico
ELIPSE [50, 100, 2h, 12h, 3] ; desenha um arco elíptico
QUADRADO
QUADRADO 100 ; desenha um quadrado (tamanho = 100pt)
RETÂNGULO
RETÂNGULO [50, 100] ; desenha um retângulo (50×100pt)
RETÂNGULO [50, 100, 10] ; desenha um retângulo com cantos arredondados
PONTO
PONTO ; desenha um ponto com o tamanho e a cor do lápis
FECHAR pode unir os últimos pontos, e PINTAR pode pintar a forma definida pelos pontos. Por exemplo, é fácil desenhar uma estrela simples a partir do seu centro:
USARNADA
REPETIR 5 [
PARAFRENTE 80
PONTO
PARATRÁS 80
PARADIREITA 36
PARAFRENTE 50
PONTO
PARATRÁS 50
PARADIREITA 120
] PINTAR
ROTULAR
ROTULAR “texto” ; insere texto na posição da tartaruga
ROTULAR 'texto' ; ver acima
ROTULAR "texto ; ver acima (somente para palavras únicas)
TEXTO
CÍRCULO 10 TEXTO “texto” ; define o texto contido no objeto de desenho atual
Configurações do tipo de letra
MUDARCORDALETRA (mcorle)
MUDARCORDALETRA “verde” ; define a cor da letra
MUDARTIPODALETRA (mtiple)
MUDARTIPODALETRA “Linux Libertine G” ; define o tipo de letra (família)
MUDARTIPODALETRA “Linux Libertine G:smcp=1” ; define também o tipo de capitalização (versaletes)
MUDARTIPODALETRA “Linux Libertine G:smcp=1&onum=1” ; versaletes + figuras antigas
MUDARTAMANHODALETRA (mtamle)
MUDARTAMANHODALETRA 12 ; define 12pt
MUDARESPESSURADALETRA (mesple)
MUDARESPESSURADALETRA “negrito” ; define a letra como negrito
MUDARESPESSURADALETRA “normal” ; define a letra como normal
MUDARESTILODALETRA (mestle)
MUDARESTILODALETRA “itálico” ; define o texto como itálico
MUDARESTILODALETRA “normal” ; define o texto como normal
AGRUPAR (FIGURA, grp)
AGRUPAR serve para:
-
agrupar formas;
-
iniciar a construção de novas formas de linha;
-
salvar imagens SVG e animações SVG/SMIL;
-
manter a consistência das posições e formas de linha na borda esquerda.
Agrupamento de formas
; AGRUPAR [ Comandos_LibreLogo ]
AGRUPAR [ PARAFRENTE 100 CÍRCULO 100 ] ; agrupa em forma de árvore
Pesquise também “Grupos” na ajuda do LibreOffice Writer.
APRENDER arvore localizacao
USARNADA POSICIONAR localizacao MUDARDIREÇÃO 0 USARLÁPIS
AGRUPAR [ PARAFRENTE 100 CÍRCULO 100 ] ; agrupa na forma de árvore
FIM
AGRUPAR [ arvore [230, 400] arvore [300, 400] ] ; formas agrupadas em outra forma agrupada
Iniciar novas formas de linha
AGRUPAR ; inicia uma nova forma de linha
PARAFRENTE 10 AGRUPAR PARAFRENTE 10 ; duas formas de linha
Salvar imagens SVG
AGRUPAR “exemplo.svg” [ CÍRCULO 5 ] ; salva figura como um arquivo de imagem SVG na pasta do usuário
AGRUPAR “Desktop/exemplo.svg” [ PARAFRENTE 100 CÍRCULO 5 ] ; como acima, com caminho relativo
AGRUPAR “/home/user/exemplo.svg” [ CÍRCULO 5 ] ; caminho absoluto para Unix/Linux
AGRUPAR “C:/exemplo.svg” [ CÍRCULO 5 ] ; caminho absoluto para Windows
Salvar animações SVG/SMIL (desenhos com comandos ESPERAR)
AGRUPAR “anima.svg” [ CÍRCULO 5 ESPERAR 1000 CÍRCULO 99 ] ; salva como uma animação SVG/SMIL (ver também ESPERAR)
AGRUPAR “anima2.svg” [ CÍRCULO 5 ESPERAR 1000 CÍRCULO 99 ESPERAR 2000 ] ; como acima, mas utilizar ESPERAR após último objeto resulta em um laço: após 2 segundos a animação SVG reinicia em navegadores compatíveis com SMIL
Consistência na margem esquerda
Use FIGURA para manter a consistência de posições e formas de linha na margem esquerda do Writer:
AGRUPAR [ CÍRCULO 20 POSICIONAR [-100, 100] CÍRCULO 20 ]
Laços
REPETIR
; REPETIR número [ comandos ]
REPETIR 10 [ PARAFRENTE 10 PARAESQUERDA 45 CÍRCULO 10 ] ; repete 10 vezes
; número é opcional
REPETIR [ POSICIONAR QUALQUER ] ; laço infinito
CONTVEZES
Variável de laço (também presente nos laços PARA e ENQUANTO).
REPETIR 100 [ PARAFRENTE CONTVEZES PARAESQUERDA 90 ]
PARA EM
Laço para os elementos de lista:
PARA i EM [1, 5, 7, 9, 11] [
PARAFRENTE i
PARAESQUERDA 90
]
Laço para caracteres de uma sequência de caracteres:
PARA i EM “texto” [
ROTULAR i
PARAFRENTE 10
]
ENQUANTO
ENQUANTO VERDADEIRO [ POSICIONE QUALQUER ] ; laço sem fim
ENQUANTO CONTVEZES <= 10 [ PARAFRENTE 50 PARAESQUERDA 36 ] ; igual a REPEAT 10 [ ... ]
INTERROMPER
Interrompe o laço.
REPETIR [ ; laço sem fim
POSICIONAR QUALQUER
SE CONTVEZES = 100 [ INTERROMPER ] ; equivalente a REPETIR 100 [ ... ]
]
CONTINUAR
Salta para a próxima iteração do laço.
REPETIR 100 [
POSICIONAR QUALQUER
SE CONTVEZES % 2 == 0 [ CONTINUAR ]
CÍRCULO 10 ; desenha círculos a cada 2ª posição
]
Condições
SE
; SE condição [ bloco verdadeiro ]
; SE condição [ bloco verdadeiro ] [ bloco falso ]
SE a < 10 [ ESCREVER “Pequeno” ]
SE a < 10 [ ESCREVER “Pequeno” ] [ ESCREVER “Grande” ]
E, OU, NÃO
Operadores lógicos.
SE a < 10 E NÃO a = 5 [ ESCREVER “0, 1, 2, 3, 4, 6, 7, 8 ou 9” ]
SE a < 10 E a != 5 [ ESCREVER “0, 1, 2, 3, 4, 6, 7, 8 ou 9” ] ; como acima
Sub-rotinas
APRENDER, FIM
Nova palavra (ou procedimento).
APRENDER triangulo
REPETIR 2 [ PARAFRENTE 100 PARADIREITA 120 ] PINTAR
FIM
REPETIR 10 [ triangulo USARNADA POSICIONAR QUALQUER USARLÁPIS ]
RETORNAR
Devolve/retorna o valor da função.
APRENDER letraqualquer
RETORNAR ALEATÓRIO “qwertzuiopasdfghjklyxcvbnm”
FIM
ESCREVER letraqualquer + letraqualquer + letraqualquer ; imprime aleatoriamente 3 letras da sequência
PARAR
Sair do procedimento.
APRENDER exemplo numero
SE numero < 0 [ PARAR ]
ESCREVER RAIZ numero ; imprime a raiz quadrada
]
exemplo 100
exemplo -1 ; sem resultados nem erros
exemplo 25
Variáveis padrão
QUALQUER
Valor aleatório padrão para cores etc.
MUDARCORDOLÁPIS QUALQUER ; cor aleatória do lápis
VERDADEIRO
Valor lógico.
ENQUANTO VERDADEIRO [ POSICIONAR QUALQUER ] ; laço infinito
ESCREVER VERDADEIRO ; imprime verdadeiro
FALSO
Valor lógico.
ENQUANTO NÃO FALSO [ POSICIONAR QUALQUER ] ; laço infinito
ESCREVER FALSO ; imprime falso
TAMANHODAPÁGINA (tampág)
ESCREVER TAMANHODAPÁGINA ; imprime lista com tamanho da página em pontos, por ex. [595.30, 841.89]
PI/π
ESCREVER PI ; imprime 3.14159265359
Entrada/Saída
ESCREVER (esc)
ESCREVER “texto” ; imprime “texto” em uma caixa de diálogo
ESCREVER 5 + 10 ; imprime 15
LER
ESCREVER LER “Valor de entrada?” ; solicita e imprime uma cadeia de caracteres em uma caixa de diálogo
ESCREVER REAL (LER “Primeiro número?”) + REAL (LER “Segundo número?”) ; calculadora básica
ESPERAR
ESPERAR 1000 ; espera 1000 ms (1 segundo)
GLOBAL
Definir variáveis globais usadas em procedimentos.
GLOBAL sobre
sobre = “LibreLogo”
APRENDER exemplo
ESCREVER sobre
GLOBAL sobre ; se quisermos usar e adicionar um novo valor
sobre = “novo valor da variável global”
FIM
exemplo
ESCREVER sobre
Funções
ALEATÓRIO
ESCREVER ALEATÓRIO 100 ; número real aleatório (0 <= x < 100)
ESCREVER ALEATÓRIO “texto” ; letra aleatória de “texto”
ESCREVER ALEATÓRIO [1, 2] ; elemento aleatório da lista (1 ou 2)
INT
ESCREVER INT 3.8 ; imprime 3 (parte inteira de 3.8)
ESCREVER INT ALEATÓRIO 100 ; número inteiro aleatório (0 <= x < 100)
ESCREVER INT “7” ; converte o parâmetro da cadeia para inteiro
REAL
; converte o parâmetro da cadeia de texto num número real
ESCREVER 2 * REAL “5.5” ; imprime 11.0
STR
; converte o parâmetro numérico numa cadeia de texto
ESCREVER “Resultado: ” + STR 5 ; imprime “Resultado: 5”
ESCREVER 10 * STR 5 ; imprime 5555555555
RAIZ
ESCREVER RAIZ 100 ; imprime 10, a raiz quadrada de 100
SEN
ESCREVER SEN 90 * PI/180 ; imprime 1.0 (o seno de 90° em radianos)
COS
ESCREVER COS 0 * PI/180 ; imprime 1.0 (o cosseno de 0° em radianos)
LOG10
ESCREVER LOG10 100 ; imprime 2.0 (logaritmo de 100 na base 10)
ARRED
ESCREVER ARRED 3.8 ; imprime 4 (arredondamento de 3.8)
ESCREVER ARRED ALEATÓRIO 100 ; número inteiro aleatório (0 <= x <= 100)
ABS
ESCREVER ABS -10 ; imprime 10, o valor absoluto de -10
CONTAGEM
ESCREVER CONTAGEM “texto” ; imprime 5, o número de caracteres em “texto”
ESCREVER CONTAGEM [1, 2, 3] ; imprime 3, o tamanho da lista
CONJUNTO
; Converte a lista para um conjunto Python
ESCREVER CONJUNTO [4, 5, 6, 6] ; imprime {4, 5, 6}
ESCREVER CONJUNTO [4, 5, 6, 6] | CONJUNTO [4, 1, 9] ; imprime {1, 4, 5, 6, 9}, união
ESCREVER CONJUNTO [4, 5, 6, 6] & CONJUNTO [4, 1, 9] ; imprime {4}, interseção
ESCREVER CONJUNTO ([4, 5, 6, 6]) - CONJUNTO [4, 1, 9] ; imprime {5, 6}, diferença
ESCREVER CONJUNTO [4, 5, 6, 6] ^ CONJUNTO [4, 1, 9] ; imprime {1, 5, 6, 9}, diferença simétrica
INTERVALO
; geração de listas ao estilo do Python
ESCREVER INTERVALO 10 ; imprime [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
ESCREVER INTERVALO 3 10 ; imprime [3, 4, 5, 6, 7, 8, 9]
ESCREVER INTERVALO 3 10 3 ; imprime [3, 6, 9]
PARA i EM INTERVALO 10 50 10 [ ; laço para [10, 20, 30, 40]
PARAFRENTE i
PARAESQUERDA 90
]
LISTA
; remover os elementos repetidos de uma lista utilizando conversão de conjunto e de lista
ESCREVER LISTA (CONJUNTO [1, 3, 5, 5, 2, 1]) ; imprime [1, 3, 5, 2]
TUPLA
Conversão para tupla do Python (lista não-modificável)
ESCREVER TUPLA [4, 5]
ORDENADO
Retorna uma lista ordenada.
ESCREVER ORDENADO [5, 1, 3, 4] ; imprime [1, 3, 4, 5]
SUBST
Substituir sequências de caracteres usando padrões regex (expressões regulares).
ESCREVER SUBST (“t”, “T”, “texto”) ; imprime “Texto”, substituindo “t” por “T”
ESCREVER SUBST (“(.)”, “\\1\\1”, “texto”) ; imprime “tteexxttoo”, duplicando todos os caracteres
PESQUISA
Procurar padrões de sequências de caracteres usando padrões regex.
SE PESQUISA (“\w”, word) [ ESCREVER “Letra na palavra.” ]
LOCALIZATUDO
Localizar todas as sequências de caracteres no texto de entrada, coincidentes com o padrão regex dado.
ESCREVER LOCALIZATUDO(“\w+”, “Cães, gatos.”) ; imprime [“Cães”, “gatos”], a lista das palavras.
MÍNIMO
ESCREVER MÍNIMO [1, 2, 3] ; imprime 1, o menor elemento da lista
MÁXIMO
ESCREVER MÁXIMO [1, 2, 3] ; imprime 3, o maior elemento da lista
Constantes de cor
MUDARCORDOLÁPIS “PRATA” ; define a cor pelo nome
MUDARCORDOLÁPIS [1] ; define a cor por identificador
MUDARCORDOLÁPIS “~PRATA” ; escolhe uma cor prateada aleatória
Identificador |
Nome |
0 |
PRETO |
1 |
PRATA |
2 |
CINZA |
3 |
BRANCO |
4 |
CASTANHO |
5 |
VERMELHO |
6 |
ROXO |
7 |
MAGENTA |
8 |
VERDE |
9 |
LIMA |
10 |
OLIVA |
11 |
AMARELO |
12 |
MARINHO |
13 |
AZUL |
14 |
TURQUESA |
15 |
CIANO |
16 |
ROSA |
17 |
TOMATE |
18 |
LARANJA |
19 |
OURO |
20 |
VIOLETA |
21 |
CELESTE |
22 |
CHOCOLATE |
23 |
MARROM |
24 |
INVISÍVEL |