Logotipo - Guía rápida
Logo es un lenguaje de programación muy simple y fácil de aprender. Se utiliza para enseñar a los estudiantes y a los niños a programar una computadora.
¿Por qué deberíamos aprender el lenguaje del logo?
- Porque es divertido, muy divertido.
- Realza el sentido lógico de los niños.
- Desarrolla habilidades de programación.
- Es una verdadera informática.
Logo es un lenguaje de programación muy fácil e interesante de aprender. Tiene suficiente profundidad para hacer prácticamente cualquier cosa, lo que se puede hacer en cualquier otro lenguaje de programación de computadoras.
¿Cómo descargar e instalar el software MSW Logo?
Si el software de programación de logotipos no está instalado en la computadora, podemos obtenerlo de forma gratuita desde el siguiente enlace:
www.softronix.com/mswlogo.htmlDespués de la instalación, coloca un ícono de logotipo en el escritorio de su computadora.
La pantalla del logotipo de MSW tiene dos partes:
- Una ventana de dibujo arriba con una TORTUGA en forma de triángulo en el centro.
- Una ventana de Commander como se muestra en la siguiente captura de pantalla.
Escribiremos comandos en la línea de comandos, es decir, el cuadro de texto en la parte inferior de la ventana de Commander. Para ejecutar o ejecutar estos comandos, presione Entrar o haga clic en el botón Ejecutar. También podemos escribir y ejecutar más de un comando en línea a la vez.
El historial de comandos aparecerá en el cuadro gris. Haga clic en una línea en el historial para que salte a la línea de comando respectiva, luego podemos hacer cambios (si es necesario). Una vez hecho esto, presione Entrar o haga clic en el botón Ejecutar.
Los simples comandos de dibujo del logotipo mueven la tortuga hacia adelante y hacia atrás y también la giran hacia la derecha o la izquierda. Los comandos y sus abreviaturas se dan a continuación:
- fd - adelante
- bk - al revés
- rt - derecha
- lt - izquierda
- cs - pantalla clara
Se puede utilizar cualquier versión de estos comandos. Excepto el comando cs, cada uno de estos comandos debe ir seguido de un valor llamado como argumento. Los argumentos para fd y bk son unidades; los de rt y lt son ángulos que pueden ser cualquier número entero. Una rotación de 360 es una rotación completa, por lo tanto, una rotación de 375 grados es lo mismo que 1/15 grados.
forward 60 o fd 60 significa avanzar 60 pasos
right 90 o rt 90 significa girar a la derecha 90 grados
left 90 o lt 90 significa girar a la izquierda 90 grados
back 60 o bk 60 significa retroceder 60 pasos
clearscreen o cssignifica borrar todos los dibujos. Esto coloca a la tortuga en el centro
La ventana gráfica tiene un sistema de coordenadas. Los valores de las dos coordenadas (normalmente llamadas xey) en el centro son 0, 0. En la esquina noreste, son 250, 250; en la esquina sureste, son 250, -250. En la esquina suroeste, son -250, -250; etc. Si la tortuga intenta caminar hacia un lado de la pantalla, se enrolla. El lado derecho se envuelve hacia el lado izquierdo y la parte superior envuelve hacia abajo.
Muchos sistemas de programación funcionan en el mismo tipo de plano de coordenadas 'xy' de dos ejes, con el que también trabajamos en Álgebra.
Aquí, '0 0' es el centro u origen (¡aquí no hay comas ni paréntesis!). En su estado centrado, zoom-"normal", la pantalla de dibujo de Logo muestra un área de aproximadamente 150 puntos hacia arriba o hacia abajo y 300 puntos a la derecha o izquierda desde el centro.
La tortuga se puede dirigir con rumbos que correspondan a una rosa de los vientos, con 0 o 360 grados apuntando hacia arriba, 90 grados hacia la derecha, etc. Puede establecer una variable en un número entre 0 y 360 y luego caminar por ese camino.
Comandos de tortuga
Ahora probemos algunos comandos. Los comandos se emitirán uno por línea seguido de un retorno de carro. Varios de estos comandos se pueden escribir sucesivamente en una ventana de comando seguido de un retorno de carro. El efecto sobre la tortuga es el mismo. Sin embargo, si escribe un comando, que requiere una o más entradas y proporciona las entradas que faltan en la siguiente línea, Logo mostrará un error.
A continuación se muestra un comando de práctica, que muestra los resultados deseados a la derecha.
Los comandos - fd 50 rt 120 fd 50 rt 120 fd 50 rt 120, haz que la tortuga dibuje un triángulo, como puedes ver probándolos.
Estos comandos se leen de izquierda a derecha. Desde el comandofdrequiere un argumento, se toma como el siguiente valor. Similar,rttambién tiene un argumento. Por tanto, Logo puede dar un significado inequívoco a cada una de estas cadenas de caracteres. Para algunos comandos de Logo, se necesitan separadores.
A continuación se muestran algunos comandos de práctica con los resultados deseados a la derecha.
A continuación se incluye un ejercicio para comprobar su aptitud sobre lo que ha aprendido hasta ahora en este capítulo.
Logo tiene otros comandos de dibujo, algunos de los cuales se detallan a continuación.
pu - pluma
pd - pendown
ht - tortuga de piel
dt - tortuga
setpensize
Los comandos pendown y penup le dicen a la tortuga que deje tinta en la pantalla mientras se mueve o que no deje tinta, respectivamente. loshideturtle y showturtleLos comandos ocultan o muestran la tortuga, pero no afectan su capacidad para dejar tinta mientras se mueve. El comando de inicio hace que la tortuga regrese al centro de la pantalla. Puede dejar tinta cuando la tortuga regrese al centro de la pantalla. El comando setpensize decide el tamaño del lápiz de dibujo.
penup o pu significa levantar el bolígrafo, para que pueda mover la tortuga sin dejar huellas.
- pendown o pd significa recoger el bolígrafo, para que pueda mover la tortuga y dejar huellas.
- hideturtle o ht significa esconder la tortuga, para que puedas admirar tu dibujo.
- showturtle o st significa mostrar la tortuga, para que pueda continuar su dibujo.
- setpensizesignifica que puede hacer que el bolígrafo sea más grande y más fácil de ver. El tamaño predeterminado del lápiz es - [1 1].
A continuación se muestran algunos comandos de práctica con los resultados deseados a la derecha.
Logo tiene una serie de otros comandos de dibujo adicionales, algunos de ellos se dan a continuación.
- home
- texto claro o ct
- label
- setxy
El comando de etiqueta toma una sola palabra como una cadena entre comillas (por ejemplo, "a_string") o una lista de palabras entre [] corchetes sin comillas (por ejemplo, [una cadena de letras]) y las imprime en la ventana gráfica en la ubicación de la tortuga . Consideremos el siguiente código.
los setxyEl comando toma dos argumentos, trata el primero como el valor de la abscisa (eje horizontal) y el segundo como un valor de la ordenada (eje vertical). Coloca a la tortuga en estas coordenadas, posiblemente dejando tinta mientras alcanza estas coordenadas. En las siguientes tres figuras, hemos mostrado cómo se puede usar el comando setxy.
El comando de texto sin cifrar, abreviado ct, borra la región de texto de la ventana de comandos.
Ejercicio
A continuación se incluye un ejercicio para comprobar su aptitud sobre lo que ha aprendido hasta ahora en este capítulo.
¿Qué tipo de figura produce la siguiente secuencia de comandos?
cs pu setxy -60 60 pd home rt 45 fd 85 lt 135 fd 120
Interprete estos comandos a medida que los lee de izquierda a derecha. Pruébelo para averiguar el resultado.
A continuación se muestra una tabla de resumen de comandos.
Nombre del comando | Propósito |
---|---|
setx 100 | Establece la coordenada x de la tortuga en +100 Lo mueve 100 puntos a la derecha del centro Sin cambio vertical |
setx -200 | Mueve la tortuga 200 puntos a la izquierda del centro Sin cambio vertical |
sety 150 | Establece la coordenada y de la tortuga en 150 Lo mueve 150 puntos por encima del centro Sin cambio horizontal |
sety - 50 | Mueve la tortuga 50 puntos por debajo del centro. Sin cambio horizontal |
setxy 100 100 | Mueve la tortuga a la coordenada xy 100100 |
mostrar xcor mostrar ycor |
Reporta la coordenada x de la tortuga Reporta la coordenada y de la tortuga |
setheading 0 set 0 |
Apunta a la tortuga hacia arriba, "mediodía" |
set 120 | Mueve la tortuga 120 grados para señalar la posición de las cuatro en punto. |
La siguiente captura de pantalla es una demostración práctica de algunos de los comandos anteriores.
Una variable es el nombre de una ubicación de memoria que puede contener un valor. En una computadora, cada ubicación de la memoria tiene una dirección entera. Dado que sería difícil recordar la dirección de cada ubicación que contenga un valor utilizado por un programa, los científicos informáticos han encontrado formas de dar nombres simbólicos a estas ubicaciones. Una vez que una variable tiene un nombre, podemos usarla y manipularla.
Las variables reciben nombres que son cadenas de letras. Un nombre de variable puede contener alfabetos (que no distinguen entre mayúsculas y minúsculas), dígitos y guiones bajos. Se puede acceder a un nombre de variable en un cálculo usando ':' antes. Consideremos el siguiente ejemplo en la captura de pantalla.
En el ejemplo anterior, hemos definido dos variables first_name, 100_last_name_200 y los inicializó con valores Amal y Das utilizando las siguientes declaraciones:
- hacer "first_name" Amal
- hacer "100_last_name_200" Das
Además, imprimimos estas dos variables con declaraciones print: first_name e print: 100_last_name_200.
El siguiente ejemplo muestra cómo definir variables numéricas:
Aquí, hemos definido dos variables numéricas val1 y val2. También hemos realizado sumas y restas usándolos.
Logo proporciona las operaciones aritméticas habituales de suma, resta, multiplicación y división, indicadas por los símbolos +, -, *, /. Cada una de estas operaciones produce un resultado. Si no hace algo con el resultado, como imprimirlo, Logo mostrará un error.
Con el comando de impresión, el resultado de una operación aritmética se puede utilizar e imprimir en la ventana de comandos. Los ejemplos que se muestran en la siguiente captura de pantalla demuestran lo mismo.
Otros comandos útiles son:
sqrt - Toma un argumento no negativo y devuelve su raíz cuadrada.
power - Toma dos argumentos, llámalos 'a' y 'b', y genera un poder elevado a b.
ln - Toma un argumento y devuelve su logaritmo natural.
exp - Toma un argumento y calcula e elevado a esa potencia, e es el número natural 2.718281828.
log10 - Toma el logaritmo en base 10 de su único argumento.
La siguiente captura de pantalla muestra un ejemplo de los comandos anteriores con sus respectivos resultados.
Los operadores aritméticos tienen una precedencia que determina el orden con el que se evalúan.
Note- imprimir 60 * sqrt 2 e imprimir sqrt 2 * 60 producen diferentes respuestas. Aquí el operador * tiene precedencia sobre el operador sqrt. Por lo tanto, * se hará antes de sqrt, si hay una opción, como en el segundo caso.
Por esta razón, la primera declaración imprime el valor de 60 veces la raíz cuadrada de 2, mientras que la segunda declaración imprime la raíz cuadrada de 120 como se muestra en la siguiente captura de pantalla.
A menudo repetimos una secuencia de comandos. Los programas de computadora a menudo realizan tareas repetitivas. Casi todos los sistemas de programación tienen una forma de realizar esta repetición, o iteración, como la llaman los científicos informáticos. Consideremos el siguiente ejemplo:
Supongamos que queremos dibujar un cuadrado con lados de longitud 100, podemos hacerlo con el siguiente programa:
fd 100
rt 90
fd 100
rt 90
fd 100
rt 90
fd 100
rt 90
Observamos que los dos comandos, fd 100 y rt 90, se repiten cuatro veces. ¿No será más sencillo decirle a la computadora que debe repetir estos dos comandos cuatro veces en lugar de escribirlos cuatro veces seguidas? Podemos hacer exactamente esto, usando el siguiente comando:
Nos ahorra tiempo de escribir para hacer un cuadrado. La forma general es:repeat number [commands]. Debemos usar la palabra clave -repeat seguido de un número y luego una secuencia de comandos entre [corchetes].
A menudo, es posible que tengamos que repetir dentro de la repetición. Se llamanesting. Veamos algunos ejemplos sobre esto.
A continuación se incluye un ejercicio para comprobar su aptitud sobre lo que ha aprendido hasta ahora en este capítulo.
A veces es divertido tener un resultado impredecible de un cálculo. Logo proporciona un procedimiento aleatorio para generar un número aleatorio. Tiene un argumento y produce un valor entero elegido uniformemente al azar, que es mayor o igual a 0 y menor que el valor de su argumento. Por lo tanto, si desea un ángulo aleatorio entre 0 y 359 grados, puede usar el comandorandom 360para producirlo. Tenga en cuenta que Logo mostrará un error a menos que haga algo con el resultado, como imprimir.
Veamos el siguiente ejemplo:
Hemos emitido el comando: print random 360 varias veces en la ventana de comando anterior y, si lo nota, cada vez genera una salida aleatoria.
A continuación se muestran algunos comandos de práctica con los resultados deseados a la derecha.
Los procedimientos proporcionan una forma de encapsular una colección de comandos. Una vez que se ha creado un procedimiento, se puede usar de la misma manera que se usa un comando integrado. El "significado" de un procedimiento es el significado de sus comandos individuales.
Un procedimiento sin argumentos tiene la palabra 'a' (una palabra reservada) y el nombre del procedimiento en la primera línea. (Las palabras reservadas en Logo no se pueden utilizar como variables y tienen un significado y uso bien definidos). Tiene la palabra reservada 'fin' en la última línea.
Un subprograma es una secuencia de pasos con nombre para que se ejecute otro programa. Otros nombres de subprogramas son procedimientos y funciones. En Logo, le dice a la computadora cómo hacer algo, por ejemplo,
to square
repeat 4 [fd 100 rt 90]
end
Una vez que hemos descrito nuestro procedimiento a Logo, podemos ingresar su nombre en la línea de comando, tal como lo haríamos con cualquiera de las cosas integradas. En este caso, escribiríamos 'cuadrado' en la línea de comando y Logo busca los comandos para hacer un cuadrado.
Haga clic en el botón que dice Edall(para editar todo) para que aparezca el editor integrado de Logo. (Si su logotipo no tiene un botón Edall, escriba 'edall' en la línea de comando). El siguiente bloque de código tiene la estructura requerida del subprograma.
to procedurename
steps of your procedure here
end
El procedimiento o subprograma debe comenzar con la palabra 'a', seguida de un nombre que se nos ocurra. El siguiente paso es teclear todos los mismos pasos que escribiríamos en la línea de comando. El procedimiento debe terminar con la palabra "fin". Todos los comentarios o líneas de observación deben ir precedidos de un punto y coma (;).
A continuación se muestra la demostración práctica del ejemplo anterior:
Ahora, desde la línea de comando, ejecute el procedimiento usando su nombre "cuadrado" como se muestra a continuación:
Los procedimientos no solo pueden contener comandos integrados, sino que también pueden contener otros procedimientos.
En el siguiente ejemplo, un procedimiento 'flor' llama a nuestro procedimiento predefinido 'cuadrado' desde su cuerpo.
La siguiente captura de pantalla muestra el resultado cuando se llama al procedimiento "flor" -
No queremos que todos los cuadrados sean del mismo tamaño, queremos variedad. En Logo creamos variables, cuyos valores podemos cambiar. Usaremos el mismo procedimiento de cuadrado con un pequeño cambio en el siguiente ejemplo.
to square :n
repeat 4 [fd :n rt 90]
end
Le damos a Logo un valor de reemplazo para ': n' en la línea de comando como se muestra a continuación.
square 50
square 75
square 100
Aquí está la demostración práctica del ejemplo anterior:
Ahora analicemos cómo pasar dos argumentos a un procedimiento. La siguiente captura de pantalla es una demostración práctica de la misma.
En un procedimiento recursivo, habrá una llamada recurrente del procedimiento dentro del procedimiento. Consideremos el siguiente código:
to spiral_recur :n
if :n < 1 [stop]
fd :n
rt 20
spiral_recur 0.95 * :n
end
El procedimiento spiral_recur se ha llamado desde el propio cuerpo del procedimiento. La siguiente captura de pantalla muestra la ejecución y salida del código.
La toma de decisiones y las variables van juntas. Un programa debe poder cambiar de rumbo dependiendo de la situación. Aquí, por ejemplo, hay un marco para dibujar una espiral. Tiene un bucle, una variación de la repetición mostrada anteriormente y el cuerpo del bucle es para que lo completemos.
to spiral
make "n 1
while [:n < 100] [
make "n :n + 5
fd :n rt 90
]
end
El código anterior muestra varias características nuevas de la sintaxis del logotipo de MSW. Establecemos una variable en un nuevo valor tecleando 'make', luego el nombre de la variable está precedido por una comilla doble "en lugar de dos puntos ':' como se muestra a continuación.
make "n 1
Sin embargo, usamos una variable con dos puntos ':' delante de su nombre.
while [:n < 100]
El código entre corchetes después del 'while [condición]' se ejecuta, mientras que la condición es verdadera. Cuando ya no es cierto, porque (en este caso) el valor de ': n' crece por encima de 100, se ejecuta el código que sigue al corchete.
La siguiente captura de pantalla muestra la ejecución y salida del código anterior.
Ahora, discutiremos el uso de 'sentencias if', que tienen un código que se ejecutará solo cuando una condición dada sea verdadera.
También muestra un logotipo integrado que genera números aleatorios. La declaraciónrandom 3genera cualquier número 0 o 1 o 2 arbitrariamente en una secuencia aleatoria. El procedimiento decide entonces qué camino tomar "al azar". El número aleatorio generado se mantendrá en 'r' y luego, dependiendo del valor de la variable 'r', se ejecutará una de las sentencias if, que satisfará la condición. Entonces, si el -
- El valor de 'r' es 0, entonces [fd 20] será ejecutado.
- El valor de 'r' es 1, entonces [rt 90 fd 20] será ejecutado.
- El valor de 'r' es 2, entonces [lt 90 fd 20] será ejecutado.
La siguiente captura de pantalla muestra la ejecución y el resultado de la discusión anterior.
Cualquier secuencia de caracteres alfanuméricos, por ejemplo, "america", "emp1234", etc. son ejemplos de una cadena. Contar los caracteres es el más básico de todos los procesos de cadenas. La respuesta a la preguntastringlength "abc12ef se da mediante el siguiente procedimiento:
to stringlength :s
make "inputstring :s
make "count 0
while [not emptyp :s] [
make "count :count + 1
print first :s
make "s butfirst :s
]
print (sentence :inputstring "has :count "letters)
end
En el procedimiento anterior –'s 'es la variable que contiene la cadena de entrada. La cadena de entrada variable contiene la copia de la cadena de entrada. El recuento de variables se inicializa con 0. En el ciclo while, la condición comprueba si la cadena se ha quedado vacía o no. En cada recuento de bucles, una variable se incrementa en 1 para mantener el recuento de longitud. La declaraciónprint first :s, imprime el primer carácter solo de la cadena almacenada en 's'.
La declaración make "s butfirst :s, recupera la subcadena excluyendo el primer carácter. Después de salir del ciclo while, hemos impreso el número de caracteres o la longitud de la cadena de entrada. A continuación se muestra la ejecución y salida del código.
Las pantallas de computadora funcionan con componentes de luz rojo, verde y azul, por lo que a veces se les llama RGB screens.
En el menú Establecer logotipo, podemos establecer el color de tres elementos de la pantalla:
- La pluma de la tortuga
- El relleno de la tortuga (como un cubo de pintura para recintos)
- El fondo de la pantalla
Establecemos un color moviendo estos tres controles deslizantes hacia la izquierda y hacia la derecha. Recuerde que el negro es la ausencia de todos los colores y el blanco es todos los colores juntos. Mezclar luz no es como mezclar pintura. Por ejemplo, si mezclas pintura roja y verde, obtienes un color turbio. Dado que se trata de una computadora, cada color tiene una representación numérica interna.
En el extremo izquierdo de la escala móvil hay cero (0). En el extremo derecho está 255, que es como 99 para una computadora (es 2 8 - 1). Así, el negro es [0 0 0], el rojo es [255 0 0], el verde es [0 255 0], el azul es [0 0 255]. Puede hacer cualquier cosa entre estos colores, y en todos estos, hay 256 * 256 * 256 colores posibles. Eso es 2 8 * 2 8 * 2 8 , o 24 bits de color, 24 dígitos binarios dentro de la máquina.
Los siguientes comandos le darán un bolígrafo rojo grande y gordo:
setpensize [5 5]
setpencolor [255 0 0]
Cuando encuentre un color que le guste usando los controles deslizantes, puede preguntarle a Logo qué es: elija el color del lápiz, luego en la ventana de comandos, ingrese el siguiente comando.
show pencolor
La siguiente captura de pantalla muestra la ejecución y salida del código anterior.
Puede hacer un cuadrado de color siguiendo los siguientes pasos:
Step 1 - Dibuja el cuadrado con una longitud de lado de 40 usando el siguiente comando.
repeat 4 [fd 40 rt 90]
Step 2 - Lápiz usando el siguiente comando.
pu
Step 3- Ve a un punto dentro del cuadrado. Por ejemplo, coloque la tortuga en las coordenadas (20, 20) usando el siguiente comando.
setxy 20 20
Step 4- Rellena el cuadrado con el color de inundación establecido. Por ejemplo, para establecer el color de inundación en azul, use el siguiente comando.
setfloodcolor [0 0 255]
La siguiente tabla enumera algunos comandos más relacionados con el lápiz y el color.
Comando Color y lápiz | Propósito del comando |
---|---|
setpencolor [rgb] setpc [rgb] |
Establece el color de la pluma de la tortuga rgb son números en el rango [0, 255] |
setfloodcolor [rgb] setfc [rgb] |
Establece el color de un área respaldada |
setscreencolor [rgb] setsc [rgb] |
Establece el color del fondo |
mostrar el color de la pluma mostrar color de inundación mostrar color de pantalla |
Especifica los valores actuales para [rgb] de un elemento con nombre |
Llenar |
Vuelca un cubo de color de inundación actual en la ubicación del cursor |
Llenar |
Vuelca un cubo de color de inundación actual en la ubicación del cursor |
Intente ejecutar el siguiente conjunto de comandos:
cs - Para limpiar la pantalla.
home - Llevar la tortuga al hogar.
setpensize [5 5] - Configuración del tamaño de la pluma.
setpencolor [255 0 0] - Establecer el color del lápiz en rojo.
setfloodcolor [0 0 255] - Establecer el color de la inundación en azul.
setscreencolor [0 255 0] - Establecer el color de la pantalla en verde.
repeat 4 [fd 40 rt 90] - Dibujar un cuadrado de 40 lados de longitud.
pu - Pluma arriba.
setxy 20 20 - Coloque la tortuga en las coordenadas (20, 20).
fill - Rellena el cuadrado con el set floodcolor blue.
ht - Ocultar tortuga.
Debería recibir el siguiente resultado al ejecutar los comandos anteriores.