Logo es un lenguaje de programación, desarrollado a finales de los años 70 por un equipo de matemáticos, dirigidos por Seymour Papert en la Universidad de California (Berkeley), con el fin de entrenar el pensamiento lógico. Originalmente, el lenguaje Logo estaba destinado a controlar el movimiento de un vehículo robotizado, con aspecto de tortuga, controlado desde un ordenador.
Este intérprete fue escrito en JavaScript y se puede ejecutar en cualquier navegador actual sin necesidad de instalar un plugin. Es de código abierto y se puede descargar el código en mi página Github.
Aquí, puedes encontrar otros ejemplos .
Languaje Logo en castellano
; Programa de demostración PARA Espiral :N :D :S :A BAJALAPIZ HAZ "x :D REPITE REDONDEA :N / :S [AVANZA :X GIRAIZQUIERDA :A HAZ "x :X + :S] FIN PARA Espirales BORRAPANTALLA PONCOLORLAPIZ [255 0 0] espiral 200 0 1.1 53 ESPERA 100 BORRAPANTALLA PONCOLORLAPIZ [0 255 0] espiral 300 0 4 90 ESPERA 100 BORRAPANTALLA PONCOLORLAPIZ [0 0 255] espiral 500 0 3 178 PONCOLORLAPIZ [0 0 0] SUBELAPIZ CENTRO PONRUMBO 0 BAJALAPIZ FIN MUESTRATORTUGA Espirales
Velocidad : | Modo debug: | ||
Tortuga : | Pantalla : | Fondo : |
Primitivas | Alias | Descripción | Ejemplo |
---|---|---|---|
AVANZA n | AV n | La tortuga avanza el número indicado de puntos | AVANZA 10 AV 5*3 |
BAJALAPIZ | BL | El lápiz toca el papel y pinta cuando se mueve. | BL BajaLapiz |
CENTRO | Lleva la tortuga al centro de la pantalla sin borrar. | Centro | |
ESPERA n | Pide a la tortuga a un n/60 de un segundo descanso. | Espera 100 | |
GIRADERECHA n | GD n | Gira a la derecha el ángulo especificado en grados. | GiraDerecha 90 GD 45 |
GIRAIZQUIERDA n | GI n | Gira a la izquierda el ángulo especificado en grados. | GiraIzquierda 90 GI 45 |
OCULTATORTUGA | OT | Oculta el icono de la tortuga. | OT OcultaTortuga |
PONCOLORLAPIZ c | PONCL c | Establece el color con que pinta. Colores predefinidos son BLANCO, AZUL , MARRON, CIAN , GRIS , AMARILLO, CIAN , NEGRO , ROJO, VERDE. | PonCL [ 64 128 0 ] PonColoLapiz azul |
PONPOS [x y] | Sitúa la tortuga en las coordenadas especificadas. | PonPOS [ -100 0 ] | |
PONRUMBO n | Orienta la tortuga en la dirección del ángulo n. | PonRumbo 90 | |
PONX n | Sitúa la tortuga en la coordenada X especificada. | PonX 100 | |
PONXY x y | Sitúa la tortuga en las coordenadas especificadas. | PonXY 0 0 | |
PONY n | Sitúa la tortuga en la coordenada Y especificada. | PonY 100 | |
RETROCEDE n | RE n | Retrocede el número de puntos especificado. | Retrocede 10 RE 5*3 |
RUMBO | Da la orientación de la tortuga. | Muestra RUMBO |
Primitivas | Alias | Descripción | Ejemplo |
---|---|---|---|
REDONDEA n | Aproxima el número decimal n hasta el número entero más próximo. | Avanza REDONDEA 20/3 | |
COS n | Calcula el coseno de un ángulo. | COS 100 | |
DIFERENCIA n1 n2 n3... | - | Restar números (n1 - n2 - n3 ...) | GiraIzquierda Diferencia 100 45 |
AZAR n | Generar un número aleatorio comprendido entre 0 y n | GiraIzquierda Azar 360 | |
LOG10 n | Evaluar el logaritmo decimal de un número | Retrocede Log10 100 | |
MENOS n | - | Cambiar el signo. | Avanza Menos 10 |
PI | El número pi (la constante que relaciona el perímetro de una circunferencia con la amplitud de su diámetro) | GiraDerecha PI | |
PRODUCTO n1 n2 n3... | * | Multiplicar números (n1 * n2 * n3...) | Producto 1 2 3 4 5 |
POTENCIA n1 n2 | ^ | Calcular una potencia | Retrocede Potencia 2 3 |
DIVISION n1 n2 | / | Dividir dos números (n1 / n2) | división 12 4 |
RESTO n1 n2 | % | Resto de una división entera | Resto 10 3 |
RAIZCUADRADA n | RC n | Hallar la raíz cuadrada de un número | RC 144 |
SENO n | SEN n | Calcula el seno de un ángulo. | GiraDerecha Sen 200 |
SUMA n1 n2 n3... | + | Sumar números | Retrocede Suma 1 2 3 4 5 |
Primitivas | Alias | Descripción | Ejemplo |
---|---|---|---|
ELEGIR l | Devolver un elemento al azar. | Avanza Elegir [ 10 20 15 12 ] | |
CUENTA l | Contar el número de elementos. | MUESTRA Cuenta [ a b c d ] | |
ULTIMO l | UL l | Devolver el último elemento. | Avanza Ultimo [ 10 20 15 12 ] |
QUITA n l | Quitar el elemento n. | Haz "lst Quita 15 [ 10 20 15 12 ] | |
INVIERTE l | Invertir la lista. | Haz "lst Invierte [ 5 4 3 2 1 ] | |
ELEMENTO n l | Devolver el elmento n-simo. | Avanza elemento 2 [ 10 20 15 12 ] | |
LISTA n1 n2 n3... | Combinar en una lista | PonColorLapiz Lista 255 0 255 | |
PONULTIMO e l | PU e l | Añadir algo el último. | Haz "lst PU 5 [ 1 2 3 4 ] |
PONPRIMERO e l | PP e l | Añadir algo el primero. | Haz "lst PP 1 [ 2 3 4 5 ] |
MEZCLA l | Mezclar los elementos. | Haz "lst Mezcla [ Paul John Ringo Georges ] | |
PRIMERO l | PRI l | Devolver el primer elemento. | GI Pri [ 45 90 135 180 225 ] |
MENOSULTIMO l | MU l | Quitar el último elemento. | Donne "lst SD [ 1 2 3 4 5 6 ] |
MENOSPRIMERO l | MP l | Quitar el primer elemento. | Haz "lst MenosPrimero [ 0 1 2 3 4 5 ] |
VACIO? l | Muestra Vacio? [ ] |
Primitivas | Alias | Descripción | Ejemplo |
---|---|---|---|
IGUALES? n1 n2 | IGUAL? = | Devuelve CIERTO si n1 y n2 son iguales, falso sino. | Iguales? 10 2*5 |
Y n1 n2 | & | Devuelve CIERTO si las dos condiciones n1 Y n2 son ciertos. | Y (10>2) (2>5) |
NOIGUAL? n1 n2 | <> | Devuelve CIERTO si n1 y n2 son iguales | NoIgual? 10 2*5 |
O n1 n2 | | | Devuelve CIERTO si al menos una de las condiciones es cierto. | O (10>2) (2>5) |
MAYORQUE? n1 n2 | > | Devuelve CIERTO si n1 > n2. | MayorQue? 10 2*5 |
MENORQUE? n1 n2 | < | Devuelve CIERTO si n1 < n2. | MenorQue? 10 2*5 |
Primitivas | Alias | Descripción | Ejemplo |
---|---|---|---|
EJECUTA l | Ejecute las ordenes contenidas en la lista l. | Ejectuta [AV 10 GD 90] | |
REPITE n l | Repite la lista de instrucciones tantas veces como se indica en el número. | REPETE 4 [Avanza 10 GiraDerecha 90] | |
SI c l | Realiza una instrucción o un conjunto de instrucciones si se cumple la condición expresada.. | SI (10>2) [RE 10 GD 20] |
En el editor Logo pulse Ctrl+espacio para activar el sistema de autofinalización de términos.
Puedes descargar tu dibujo a partir de aquí (en PNG) o de ahí (en SVG).