1. Crie os blocos clicando nos botões do menu acima.
 Lento  Normal  Rápido  CLI  Ajuda
Seu navegador não suporta o elemento "canvas". Atualize para a versão mais recente e volte aqui... =) Compartilhar Gravar como PNG Reiniciar

Olá,

Um exemplo de programa foi carregado para você começar.

Boa diversão.

*vídeo com legenda disponível em português

Guia rápido para a Linguagem LOGO (tradução em andamento):

Guia de referência rápida ao LOGO:

As coisas devem funcionar tanto em caixa alta como em caixa baixa.

Tipos:

PALAVRAS:          FW BW ....
NÚMEROS:        0, 0.1, 20
LISTAS:          [1 2 3 5]
SÍMBOLOS:        "foo "bar
VARIÁVEIS:      :foo :bar 
FUNÇÕES: COMMAND arg arg arg ...
                (COMMAND arg arg arg ...)

Comandos disponíveis:

RESET           Limpa a tela, move o personagem pra posição inicial.


Movimentos:

FORWARD n       Move o personagem para frente n pixels
FW n    

BACKWARD n      Move o personagem para trás n pixels

RIGHT n         Move o personagem para esquerda ou direita em n graus
RT n
LEFT n
LT n

SETX x          Ajustas as coordenadas do personagem nas posições X, Y ou X Y
SETY y
SETXY x y

HOME            Move o personagem para a posição inicial.


Desenho:

CLEARSCREEN     Limpa a tela
CLEAR
CS

CIRCLE r        Desenha um círculo de raio r ao redor do personagem

ARC r d         Desenha um arco de raio r por d graus

PENUP           Levanta a caneta (para de desenhar)
PU
PENDOWN         Desce a caneta (volta a desenhar)
PD

COLOR [r g b]   Mudar a cor da caneta (código rgb = red green blue / 0 a 255)

PENWIDTH w      Muda a grossura da caneta


Texto:

PRINT "foo          Imprime na tela "foo"
PR "foo
PRINT ["foo "bar]   Imprime na tela "foo bar"
PR ["foo "bar]

CLEARTEXT           Limpa o texto impresso anteriormente
CT


Operações Matemáticas:

:: SOMA ::              :: MULTIPLICAÇÃO ::

1 + 2                   1 * 2
SUM 1 2                 PRODUCT 1 2
(SUM 1 2 3 ...)         (PRODUCT 1 2 3 ...)

:: DIFERENÇA ::         :: DIVISÃO ::

1 - 2                   1 / 2
DIFFERENCE 1 2          DIVIDE 1 2


:: MÓDULO ::

1 % 2
MOD 1 2

RANDOM n        Retorna um inteiro em [0,n)
RAND n

RERANDOM s      Modifica o valor do incremento aleatório
SRAND s


:: ALGUNS EXEMPLOS ::

() INT n
() ROUND n
() POWER e m
() EXP n
() LN n
() LOG10 n

:: TRIGONOMETRIA ::

SIN, COS
RADSIN,RADCOS

ARCTAN
RADARCTAN

:: LISTAS ::

* Estas funcionalidades podem apresentar instabilidade a qualquer momento.

FIRST, HEAD             Retorna o primeiro item em uma lista
BUTFIRST, TAIL          Retorna todos menos o primeiro item em uma lista
LAST                    Retorna o último item em uma lista
BUTLAST                 Retorna todos os itens menos o último em uma lista

FPUT item list  Retorna uma nova lista com o item na frente
LPUT item list  Retorna uma nova lista com o item por trás

ITEM index list                 Busca o item indexado (get)
SETITEM index list value        Grava o item indexado (set)

EMPTY? list     Returna true se a lista estiver vazia
EMPTYP list 

:: OPERADORES LÓGICOS E DE COMPARAÇÃO ::

:: IGUALDADE

1 = 1
EQUAL? 1 1
EQUALP 1 1

:: MENOR

1 < 2                1 <= 2
LESS? 1 2               LESSEQUAL? 1 2
LESSP 1 2               LESSEQUALP 1 2

:: MAIOR

2 > 1                2 > 1
GREATER? 2 1            GREATEREQUAL? 2 1
GREATERP 2 1            GREATEREQUALP 2 1

:: LÓGICOS

AND TRUE FALSE          OR FALSE TRUE

:: OPERAÇÕES CONDICIONAIS (E SE...) ::

:: SE CONDIÇÃO EXISTIR FAÇA...
IF COND [IF_TRUE] 
IF 2 > 1 [FW 100]

:: SE CONDIÇÃO FAÇA ISSO SE NÃO AQUILO

IFELSE COND [IF_TRUE] [IF_FALSE]
IFELSE 2 > 1 [FW 100 RT 90] [BW 100 LT 90]


:: BUSCAR E MODIFICAR ::

:: X = 1

Set x to 1:             make "x 1

:: SOMAR N E X

Adding :n to :x         :n + :x

:: ATRIBUIR A X A SOMA DE N + X

Setting :x to :n + :x   make "x :x + :n

:: REPETIÇÕES ::

REPEAT n [COMMANDOS ...]

STOP    - Parar a repetição atual ou função.

OUTPUT f  - Retornar f.
OP f


:: DEFININDO E CHAMANDO

:: CRIA A FUNÇÃO FOO QUE RECEBE OS ARGUMENTOS ARG1, ARG2
:: TODA FUNÇÃO TEM UM CORPO BODY (COMANDOS) E UM FIM (END)

TO FOO :ARG1 :ARG2 BODY END

:: PARA CRIAR UMA FUNÇÃO QUE DESENHA UM QUADRADO E RECEBE O TAMANHO DESSE QUADRADO COMO ARGUMENTO

TO QUADRADO :tamanho
REPEAT 4 [FW :tamanho RT 90]
END

:: DESENHA UM QUADRADO DE TAMANHO 10

QUADRADO :10

:: PARA CRIAR UMA FUNÇÃO QUE DESENHA UM POLÍGONO QUE RECEBE O TAMANHO E O NÚMERO DE LADOS COMO ARGUMENTOS

TO POLYGONO :tamanho :lados
REPEAT :sides [FW :tamanho RT 360/:lados]
END

POLYGONO 5 10

Nota: Funções recursivas são suportadas.