Documente Academic
Documente Profesional
Documente Cultură
5a
1.- Historia de MSWLogo ___________________________________________ 2 2.- Uso del entorno de MSWLogo_____________________________________ 2 3.- Crear procedimientos en MSWLogo _______________________________ 3 4.- Definicin de variables ___________________________________________ 6 5.- Listado de primitivas de MSWLogo ________________________________ 8 5.1.5.2.5.3.Primitivas para dibujar _______________________________________ 8 Primitivas para escribir, editar y trabajar con ficheros ______________ 11 Primitivas para trabajar con controladoras _______________________ 15 Salidas digitales Entradas digitales Entradas Analgicas Salidas Analgicas 5.4.5.5.5.6.5.7.5.8.Primitivas de sonido ________________________________________ 21 Primitivas para crear condicionales y bucles______________________ 23 Primitivas para dibujar ventanas _______________________________ 24 Primitivas para trabajar con imgenes___________________________ 33 Primitivas para salir de MSWLogo _____________________________ 35
6.- Botones de la ventana de trabajo _________________________________ 35 7.- Comentarios __________________________________________________ 37 8.- Guardar un fichero de programacin _____________________________ 37 9.- Cargar un fichero de programacin _______________________________ 38 10.- Bibliografa ___________________________________________________ 39
siguientes dcadas l y su equipo continuaron con su desarrollo y tratando de crear un programa con un entorno grfico que fuera a la vez potente y fcil de usar. En 1994 MSWLogo fue modificado para permitir el control por ordenador a travs de los puertos serie y paralelo. Todas las versiones del software Logo para los sistemas operativos Unix, MSDos, Macintosh y Windows desarrolladas inicialmente por la Universidad de California (Berkeley), son gratuitas y pueden ser copiadas sin ningn tipo de restriccin por instituciones educativas. De hecho MSWLogo es la versin libre del lenguaje Logo, que se distribuye bajo la licencia pblica general (GPL) del proyecto GNU de la Free Software Foundation. El smbolo de Logo es una tortuga robotizada que se mueve bajo el control de un ordenador dibujando a medida que se desplaza por la pantalla. En algunas versiones de este lenguaje la tortuga ha evolucionado hasta convertirse en otro tipo de objetos. Por ejemplo, en MSWLogo se ha convertido en un tringulo. MSWLogo se puede utilizar para mltiples utilidades: para dibujar, para crear sonidos, para manipular una controladora a travs del ordenador, etc. La versin que se intentar explicar en esta documentacin es la versin que presenta el Centro Nacional de Informacin y Comunicacin Educativa (CNICE), que es una versin del MSWLogo 6.5a traducida al castellano.
La pantalla de MSWLogo se divide en 2 partes: 1. La pantalla principal: En esta ventana es donde se encuentra la tortuga, mediante la ayuda de sta se dibujan diferentes figuras, se cargan imgenes, etc. Esta ventana est etiquetada con el titulo de Pantalla de MSWLogo. En la parte superior de esta ventana se encuentran diferentes mens para la realizacin de diversas tareas.
A continuacin se muestra una pequea descripcin de las tareas que pueden realizar cada uno de los mens que se muestran en la imagen superior. Archivo: permite guardar, abrir, cerrar y modificar entre otras cosas los archivos de programacin de MSWLogo. Bitmap: permite poder trabajar con imgenes con extensiones bmp. Configurar: permite cambiar el color del lpiz, el grosor del lpiz, el tipo de letra, etc. Zoom: permite acercarse o alejarse de la imagen que se muestra en esta pantalla. Ayuda: vienen los diferentes archivos de ayuda necesarios para la total comprensin del entorno de MSWLogo.
2. La ventana de trabajo o de comandos: Esta ventana a su vez se divide a su vez en 3 partes diferentes: A) La caja de entrada de datos o primitivas: Se pueden usar maysculas o minsculas para las primitivas puesto que Logo no hace diferencia unas de otras. Las primitivas se ejecutan despus de ser introducidas en la ventana de trabajo y de pulsar la tecla ENTER o de hacer clic en el botn Ejecutar. B) Lista de comandos o primitivas ejecutadas: Cada primitiva se graba en una lista de rdenes y comandos que se muestran en la ventana superior a la de entrada de datos.
C) Botones de comandos: Estos botones se encuentran a la derecha de la ventana de trabajo, stos realizarn diferentes acciones que se explicarn ms adelante en este manual.
seguida del
nombre que se vaya a poner al procedimiento y de los parmetros que tenga ste, si es que los tiene. Despus se pondr la definicin del procedimiento con toda la lista de instrucciones, para finalizar el procedimiento se utiliza la palabra reservada fin.
A la hora de crear procedimientos, existen 3 maneras distintas de realizarlos. A continuacin las exponemos:
1. En la ventana de trabajo, hay que escribir en la caja de entrada de datos o primitivas la siguiente instruccin
parmetros], PARA nombre [lista de
En esta ventana se irn introduciendo una a una las sentencias o instrucciones de las que va a constar el procedimiento, segn se vaya poniendo cada instruccin se ir pulsando el botn OK para ir aadindolas al procedimiento. Para terminar con la definicin del procedimiento se introducir la primitiva FIN.
2. Mediante la ventana de edicin, que es una ventana en la que se irn poniendo las instrucciones, previamente tenemos que poner el nombre al procedimiento despus de la palabra ventana se utiliza las primitivas
para.
editatodo
pueden definir variables, asignar valor a dichas variables, escribir comentarios, etc. Cuando se ha acabado de definir el procedimiento se guardar en la opcin del men Archivo Guardar.
3. En un archivo con extensin lgo, dentro de este archivo se pueden definir uno o varios procedimientos mediante las palabras reservadas
para
fin.
MSWLogo el archivo lgo, para lo cual iremos a la opcin del men Archivo Cargar.
Una cosa bastante importante de los procedimientos en MSWLogo es la recursividad, es decir un procedimiento se puede llamar a si mismo. Esto es bastante importante ya que se utilizar bastante en la programacin de los diferentes proyectos para poder crear pequeos bucles.
PARA nombre_del_procedimiento [lista de parmetros] Lista de instrucciones . . nombre_del_procedimiento FIN
Tambin como en otros entornos de programacin un procedimiento puede llamar a otro procedimiento, lo que har esto es realizar las instrucciones que tiene definidas el procedimiento al que se llama.
PARA nombre_del_procedimiento1 [lista de parmetros] Lista de instrucciones . . FIN PARA nombre_del_procedimiento2 [lista de parmetros] Lista de instrucciones . . nombre_del_procedimiento1 FIN
Fija: el tamao de la variable no cambia a lo largo de la ejecucin del programa. Prcticamente todas las variables tienen una longitud fija.
haz
seguida de una apertura de comillas , tras las cuales se pone el nombre que se le vaya a dar a la variable.
Haz nombre_variable
valor
A una variable se la puede asignar un valor, este valor puede ir cambiando a lo largo de la ejecucin de un programa. El valor depende del tipo de dato que se quiera guardar en la variable. sta puede guardar los siguientes tipos de datos, son: - Entero - Lgico - Carcter - Cadena de texto
Para asignar un valor a una variable lo nico que hay que hacer es poner tras el nombre de la variable el valor que se le quiera dar ya sea un nmero o una cadena de texto. As si por ejemplo se quiere asignar un valor de una letra o una palabra, stas irn precedidas de comillas (), pero si se quiere asignar como valor una cadena de texto el valor se pone entre corchetes []. A continuacin mostraremos varios ejemplos.
5 a verdadero
Haz nombre_variable
[Esto es un ejemplo]
Para poder acceder al valor de una variable se debe anteponer al nombre de la variable dos puntos :. As por ejemplo mediante el uso de otra primitiva nos muestra el valor en pantalla de la primitiva.
Haz nombre_variable
muestra :nombre_variable
Tambin hay otra palabra reservada para poder crear variables y asignarles un valor, la palabra a utilizar es haz2, lo nico que cambia con respecto a
haz
es el orden
en la declaracin de la variable. As una variable con un valor asignado se declarara de la siguiente forma:
Haz2
valor nombre_variable
Ej:
Haz2
5 nombre_variable
PRIMITIVA
MTODO ABREVIADO
DESCRIPCIN
EJEMPLO
AVANZA unidades
AV ...
RETROCEDE unidades
RE ...
La
tortuga
retrocede
el
RETROCEDE 100
especificado
de
RE 100
tortuga de el
gira las de
en
el del
sentido reloj
agujas
nmero
grados
especificado.
GIRAIZQUIERDA ngulo
GI ...
La tortuga gira en sentido contrario a las agujas del reloj el ngulo especificado.
PONLAPIZ
PLA
para dibujar). GOMA GO Pone el lpiz BAJADO y el modo a BORRA (la tortuga va borrando mueve). SUBELAPIZ SL Pone el lpiz LEVANTADO, SUBELAPIZ SL sin BAJALAPIZ BL tortuga pantalla al sin CENTRO por donde se GOMA GO
borrarla. Hay que utilizar primitiva evitar va SUBELAPIZ que dibuje el hacia
mientras centro. PONCOLORLAPIZ ... ...] [... PONCL [... ... ...] Pone el
lpiz
del
color
El color amarillo es: PONCOLORLAPIZ 255 000] PNCL[255 255 000] [255
determinado de acuerdo con: PONCOLORLAPIZ [255 000 000] = Rojo PONCOLORLAPIZ [000 255 000] = Verde PONCOLORLAPIZ [000 000 255] = Azul
OCULTATORTUGA
OT
Oculta
la
tortuga
(el
OT
tringulo) en la pantalla.
HAZTORTUGA
tortuga
Coloca
la
tortuga
en
la
HAZTORTUGA Este
[0
100
posicin que le indicamos, hincndole la posicin y el ngulo de ubicacin, as como las instrucciones que va a realizar
45 [av 100]] ejemplo coloca la tortuga n 0 en el unidad 0 del eje X y 100 del eje Y, despus la rota en un ngulo de 45, y por ltimo sentido avanza sta 100 unidades en este
BORRAPANTALLA
BP
BORRAPANTALLA BP LIMPIA
LIMPIA
Borra
la
pantalla, actual en
pero la
mantiene a la tortuga en su posicin pantalla. ROTULA [texto] RO [] Escribe direccin texto se un texto en en la se la ROTULA [Texto de
que en
encuentra la tortuga. Este muestra pantalla de MSWLogo. PONGROSOR alto] [ancho PONG [] Coloca el ancho del trazado del lpiz y la altura MSWLogo especificados.
PONGROSOR [50 50] PONG [50 50] Aumenta el grosor del lpiz tamao 50 veces su
utiliza solamente el valor de la anchura. Por defecto el valor de la anchura del lpiz es 1. PONPOS [X Y] Coloca la tortuga en las
PONPOS [100 100] Coloca la tortuga en la unidad 100 del eje X y en la unidad 100 del eje Y PERSPECTIVA
coordenadas que se indican, siendo el primer nmero las X y el segundo nmero las Y. PERSPECTIVA Se aade a la tortuga una tercera para mover dimensin sta sta (eje se Z) que por pueda
dimensin.
Este comando precede a los comandos que vienen debajo de ste. PONBALANCEO grados Rota la tortuga a una nueva posicin absoluta segn los PONBALANCEO 90 Rota la tortuga 90
10
grados que se indican. sta rota sobre el eje Y. Este comando slo funciona en modo perspectiva. PONCABECEO grados Rota la tortuga a una nueva posicin absoluta segn los grados que se indican. sta rota sobre el eje X. Este comando slo funciona en modo perspectiva. BALANCEA grados BAL ... Rota la tortuga los hacia que la se
respecto al eje Y
derecha funciona
grados en
indican. Este comando slo modo perspectiva. BALANCEAIZQUIERDA grados CAI ... Rota la tortuga hacia la
izquierda los grados que se indican. Este comando slo funciona perspectiva. en modo
BAJANARIZ grados
BAJAN ...
la
de que
la se
los
indiquen.
comando modo
funciona
perspectiva.
PRIMITIVA
MUESTRA texto
MTODO ABREVIADO
DESCRIPCIN
Escribe la entrada o entradas en la salida de escritura que este actualmente (inicialmente terminal). si es palabra comillas de texto de El una es el sola llevar apertura va entre [], texto
EJEMPLO
MUESTRA ejemplo MUESTRA [Esto es un ejemplo]
11
tambin
Escribe la entrada o entradas en la salida de escritura es que est el las Todas actualmente inicialmente terminal).
entradas de texto se escriben en una sola lnea. El texto si es una sola palabra de llevar una va [], comillas de
los corchetes. MUESTRAT texto Muestra la entrada o entradas comando excepto muestra de el nueva similar que lnea no al no al son escribe, carcter MUESTRAT ejemplo MUESTRAT [Esto es un ejemplo]
final, y las entradas mltiples separadas por lneas. EDITA PROCEDIMIENTOS EDITAPROCEDIMIENTOS Abre la ventana que crear del nos o Este comando se
procedimientos, variables que estemos creando. es Editar. EDITA CONTENIDO EDITATODO Es similar a la Se Este comando se Su funcin al botn similar
anterior.
del
Este
comando
se
12
editor con el nombre de procedimiento que se le haya dado. EDITAFICHERO nombre_fich llamada Abre estndar fichero se de pone que En un indicado. un con se editor el haya
EDITAFICHERO c:\\ejemplo.lgo rotula Abre el [Este el fichero a editar] fichero que ejemplo.lgo y una vez
llamada conjunto a se
instrucciones cuando
ejecutar
pantalla de MSWLogo texto comando rotula LISTA Devuelve las pueden una lista que LISTA [a b c] Crea una lista de 3 elementos. lista comando: MUESTRA LISTA [a b c] LISTA? objeto Devuelve verdadero si el objeto de entrada es una lista, y devuelve falso si no lo es. Con respecto del a la Al ver el el contenido de la con
listas o matrices.
lista este
anterior utilizamos mediante del muestra poder resultado pantalla. MUESTRA LISTA? [a b c] Nos verdadero MUESTRA LISTA? [a b] Nos devuelve falso devuelve ver
el en
TAPA contenidos
TAPATODO
Oculta procedimientos,
los
13
Oculta MSWLogo
para
el el
procedimiento encender
corchetes [ ]. TAPADO Devuelve una lista de contenidos con los elementos tapados del entorno de trabajo. Mediante del los a la ayuda comando procedimientos MSWLogo. Con
muestra nos dice que se han ocultado respecto al ejemplo anterior: MUESTRA TAPADO Devuelve encender
BORRA contenidos
BO ...
Borra del entorno de trabajo procedimientos, variables y listas de propiedades han pasado entrada. que en se la los
BORRAPROCEDIMIENTOS
Borra
todos
los que
BORRAPROCEDIMIENTOS
hay en el entorno de
que
BORRATEXTO
hay en el Terminal. CARGA nombre_fichero Lee las instrucciones del para fichero a lgo continuacin CARGA C:\\ejemplo.lgo Carga el fichero que ejemplo.lgo
realizarlas.
se encuentra en C GUARDA nombre_fichero Guarda en un fichero lgo los las procedimientos, sin definiciones de todos variables y listas de propiedades tapar. BOARCHIVO BA ... Borra el fichero que BOARCHIVO GUARDA C:\\ejemplo.lgo Guarda fichero ejemplo.lgo que se encuentra en C en el
14
nombre_archivo
se el
indica, el fichero
para ha
que de
funcione
comando
estar cerrado.
se encuentra en C
El listado de primitivas que se van a exponer a continuacin sirve para poder trabajar con las controladoras ENCONOR y CNICE. Hay que tener en cuenta que estas controladoras no tienen las mismas conexiones, as por ejemplo no tienen el mismo nmero de entradas analgicas, por ello hay algunas primitivas que no se pueden utilizar. Adems la controladora CNICE no tiene salidas analgicas y por tanto las primitivas que para este tipo de salidas no se podrn usar con ella.
PRIMITIVA
M1 I Hacer
DESCRIPCIN
girar en un sentido un M1 I
EJEMPLO
motor conectado a las salidas digitales 0 y 1. Si el actuador es una bombilla, Activa la rel o lo electroimn, activa. digital 0. M1 D Hacer contrario girar a en la sentido primitiva M1 D simplemente
salida
anterior un motor conectado a las salidas digitales 0 y 1. No se diferencia de la primitiva anterior bombilla, si estn o conectados electroimn, Activa otros actuadores como son una rel lo simplemente activa.
15
conectado a una de las salidas digitales 0 y 1 M2 I, M2 D, M2 P M3 I, M3 D, M3 P M4 I, M4 D, M4 P Realiza las mismas acciones que las primitivas que anteriores, son lo las nico actan. M2 M3 M4 M? Salida 2 y 3 Salida 4 y 5 Salida 6 y 7 una los lista 4 con el Los Esta junto primitiva con la para se utiliza primitiva ver el cambia M2 I, M2 D, M2 P M3 I, M3 D, M3 P M4 I, M4 D, M4 P
Devuelve estado de
motores.
estados son: I, D y P.
resultado en pantalla.
M [lista_motores]
Permite los 4
activar motores
desactivar de manera
simultneamente. En la lista de motores se pone el estado que se La quiera lista por ha cada de ir motor, entre separados stos por un espacio. corchetes []. CONECTAR Activa todas las salidas
CONECTAR
digitales de la controladora. CONECTA numero Activa indicada la salida en digital :NUM CONECTA 1 Activa la salida digital 0
(1,2,3,4,5,6,7,8) DESCONECTA numero Desactiva indicada la salida en digital :NUM DESCONECTA 8 Desactiva la salida digital 7
(1,2,3,4,5,6,7,8) CONECTADO? Devuelve una lista de 4 Esta junto primitiva con la para se utiliza primitiva ver el
elementos (uno por cada motor) cuyos valores son 0 1 segn estn activos o no.
muestra,
SALIDA dato
SALIDA 131
16
salidas digitales. Enva a las salidas digitales el dato en binario equivalente al decimal que se ponga en dato. ENVIAOCTETO dato Procedimiento compatibilidad para con la las
Activa
las
salidas
digitales
0, 1 y 7 (1+2+128)
primitivas ENCONOR (realiza la misma funcin que la primitiva SALIDA). Enva a las salidas el nmero decimal que se ponga en dato. APAGA numero_salida Procedimiento compatibilidad primitivas la salida ENCONOR. digital para con la las indicada
Desconecta
numero_salida que van de 0 al 7, dejando el resto de salidas como estn. SALIDA? Devuelve una lista de ocho elementos con el estado de las ocho salidas digitales (devuelve un 1 si la salida est activada o un 0 si la salida se encuentra desactivada. VS? Devuelve en un nmero decimal el valor en decimal que de las estn salidas digitales Se utiliza el junto muestra resultado con la para en
MUESTRA SALIDA? nos devuelve: [1 0 0 0 0 0 1 1] Se utiliza el junto muestra resultado con la para en
activadas.
PRIMITIVA
ENTRADA numero_entrada
DESCRIPCIN
Procedimiento compatibilidad primitivas por VERDADERO si ENCONOR. la para con la las Se
EJEMPLO
utiliza el junto con la para en
muestra resultado
MUESTRA ENTRADA 1
17
digital conectada
indicada
en est
y devuelve FALSO
VE?
Devuelve que
un
nmero que
decimal entradas
Se
utiliza el
junto
con
la para en
indica
muestra resultado
SD numero_entrada
Devuelve el valor del sensor digital un 1 si que la se indica en est numero_entrada, devuelve
Se
utiliza el
junto
con
la para en
muestra resultado
entrada
que
la
entrada
SD?
Se
utiliza el
junto
con
la para en
muestra resultado
digitales 0, 6 y 7.
ESPERAON numero_entrada
Deja el programa parado a la espera de que se active la entrada digital indicada en numero_entrada.
ESPERAOFF numero_entrada
Deja el programa parado a la espera de que se desactive la entrada digital indicada en numero_entrada.
entrada digital 0
18
PRIMITIVA
LEEANALOGICA dato
DESCRIPCIN
Procedimiento compatibilidad para con la las Se
EJEMPLO
utiliza el junto con la en
muestra resultado
para
primitivas proporcionadas por la empresa ENCONOR. Lee los y escribe el entre en valor 0 y la el puerto para que decimal 255) entrada datos necesarios
obtener (valor
proporciona
analgica 1. Para obtener voltios esta entrada se aplica la formula descrita. El valor es: 468 Voltios anteriormente
analgica indicada en dato (que puede ser 1, 2, 3, o 4). Si para valor consigue poder leer el las valor se la entradas, devuelve su valor, obtener en voltios correspondiente al decimal devuelto consigue aplicando
siguiente formula: Voltaje(V) = (N*5/256) SAV Primitiva valida para la Se utiliza el junto con la en
muestra resultado
para
Nos indica que la entrada analgica 1 de Enconor est desactivada SAW Primitiva ENCONOR. Devuelve el valor en voltios de la entrada, de la esta entrada depende controladora valida tanto para Se utiliza el junto con la en
muestra resultado
para
que se este utilizando. Ser: -CNICE: entrada analgica 1 -ENCONOR: entrada analgica 2
Nos indica que la entrada analgica entrada desactivada 1 2 de de CNICE la la est controladora Enconor o la controladora
19
SAX
Primitiva ENCONOR.
valida
tanto
para
Se
utiliza el
junto
con
la en
la controladora CNICE como la Devuelve el valor en voltios de la entrada, de la esta entrada depende controladora
muestra resultado
para
que se este utilizando. Ser: -CNICE: entrada analgica 2 -ENCONOR: entrada analgica 3
Nos indica que la entrada analgica entrada desactivada 2 3 de de CNICE la la est controladora Enconor o la controladora
SAY
Primitiva ENCONOR.
valida
tanto
para
Se
utiliza el
junto
con
la en
la controladora CNICE como la Devuelve el valor en voltios de la entrada, de la esta entrada depende controladora
muestra resultado
para
que se este utilizando. Ser: -CNICE: entrada analgica 3 -ENCONOR: entrada analgica 4
Nos indica que la entrada analgica entrada desactivada 3 4 de de CNICE la la est controladora Enconor o la controladora
SAZ
Primitiva ENCONOR.
valida
tanto
para
Se
utiliza el
junto
con
la en
la controladora CNICE como la Devuelve el valor en voltios de la entrada, de la esta entrada depende controladora
muestra resultado
para
que se este utilizando. Ser: -CNICE: entrada analgica 4 -ENCONOR: entrada analgica 5
Nos indica que la entrada analgica entrada desactivada 4 5 de de CNICE la la est controladora Enconor o la controladora
SA?
Devuelve
una
lista
con
el
Se
utiliza el
junto
con
la en
muestra resultado
para
20
analgicas
PRIMITIVA
SALIDAANALOGICA numero_salida valor_salida
DESCRIPCIN
Escribe los datos necesarios para poner en la salida analgica que se le indica en numero_salida el valor Para extensin conocer indicado el valor en en valor_salida (vara entre 0 y 255). tensin en la salida analgica se utiliza la siguiente frmula: Voltaje(V) = (valor_salida/23,8)
EJEMPLO
SALIDAANALOGICA 1 100 A la salida analgica 1 se le asigna 100. el valor ste de salida valor
corresponde a un nivel de tensin que se calcula con la frmula anteriormente descrita. El valor es: 420 Voltios VOLTAJE 2 2,5 A la salida analgica 2 se le asigna un valor de tensin de 25 voltios
VOLTAJE valor_salida
numero_salida
Fija
en
la en
salida
analgica el 0
indicada
valor en tensin especificado en valor_salida 10,5). VOLTAJE? Devuelve una lista con el valor en voltios de todas las salidas analgicas.
Se
utiliza el
junto
con
la en
muestra resultado
para
MUESTRA VOLTAJE? [0 4.5 0 0] Nos muestra que la salida analgica 2 tiene un valor de 4,5 voltios
PRIMITIVA
TONO [flujosonido] Emite un
DESCRIPCIN
tono de sonido. es La una
EJEMPLO
TONO [700 5000] Emite agudo un tono de un sonido perodo durante
expresin
flujosonido
lista de pares compuesta por: [frecuencia duracion] Frecuencia Duracin Hertzios Milsimas de segundo
de tiempo de 5 segundos.
21
El sonido solo se emite por el altavoz del PC. SUENATONO duracion frecuencia Funcin que se similar mantiene a la de anterior, versiones SUENATONO [1000 5000] Emite ms un agudo tono que de sonido con el durante
anteriores de MSWLogo.
comando segundos. ENCIENDESONIDO frecuencia Emite un sonido cuya frecuencia coincide con el parmetro que se le pasa. El sonido continuar hasta que se detenga el comando APAGASONIDO. Esta primitiva no funcionar en Sistemas Operativos con ncleos NT, ya que utiliza la primitiva escribepuerto. APAGASONIDO Quitar puesto un sonido la que se haya
anterior
un perodo de tiempo de 5
ENCIENDESONIDO 1000 Emite manera comando sistemas un tono no agudo de Este en continua. funciona
operativos
con
primitiva
ENCIENDESONIDO frecuencia. Esta primitiva no funcionar en Sistemas Operativos con ncleos NT, ya que utiliza la primitiva escribepuerto. SUENAWAVE ficherowave opciones Reproduce un fichero de tipo
.wav segn las opciones que se indiquen. Las opciones se indican con un nmero entero. 0-> Sincrono que no devuelve el control terminado 1-> Asncrono que devuelve el control 2 -> No inmediatamente utiliza el mientras por hasta que se haya
control a MSWLogo
el sonido sigue sonando sonido defecto si el indicado no puede orse 8 -> Reproduce continua el sonido que de se manera hasta
ejecuta otra primitiva de sonido 16 -> No para un sonido que ya estaba sonando Las opciones anteriores se pueden combinar.
22
PRIMITIVA
SI condicion [instrucciones] Realiza
DESCRIPCIN
una instruccin o un
EJEMPLO
La variable entradas se ha creado para guardar el valor SI Se de las entradas digitales. (:entradas_digitales=1) expresa se se no que si 0 la est [M1 "P] entrada activada, 1. Si no digital
desactivan cumple se la
las salidas digitales 0 y condicin, nada. SISINO condicion [instrucciones1] [instrucciones2] Realiza instrucciones las si la primeras condicin La variable entradas se ha creado para guardar el valor SISINO (:entradas_digitales=1) [M1 "P] [salida 255] Se expresa se si se las que si 0 la est entrada activada, 1, todas digitales. HAZ.HASTA [condicion] [instrucciones] Repite la lista de instrucciones tantas veces hasta que se cumpla la esta condicion. de se forma Primero asegura se lee que el de las al conjunto instrucciones, ejecutan La variable entradas se ha creado para guardar el valor de las entradas digitales. HAZ.HASTA [ SI SI [:entradas_digitales=3] [:entradas_digitales=5] [salida 1] [salida 0]] [:bucle=1] Lo primero que hace es las chequear pero digital de las entradas digitales. ejecuta
instrucciones la condicin.
23
que
son si
2 se
HAZ.HASTA,
instrucciones
del HAZ.HASTA. HASTA [condicion] [instrucciones] Repite la lista de instrucciones tanta veces hasta que se cumpla la condicin. se Si la condicin no se expresada sola vez. cumple La variable entradas se ha creado para guardar el valor de las entradas digitales. HASTA [:bucle=1] [SI [:entradas_digitales=3] [salida 1] SI [:entradas_digitales=5] comprueba la se cumple si se si del [salida 0]] Primero cumple sta las no condicin,
evala
instrucciones
HASTA. HAZ.MIENTRAS [instrucciones] [condicion] Repite la lista de instrucciones tantas veces como se de la condicin expresada. Primero lee el conjunto de instrucciones, de esta forma se asegura se que las al instrucciones la condicin. ejecutan La variable entradas se ha creado para guardar el valor de las entradas digitales. HAZ.MIENTRAS [ SI SI [:entradas_digitales=3] [:entradas_digitales=5] [salida 1] [salida 0]] [:bucle=1] Lo primero que hace son si es las que 2 se del ms chequear instrucciones, despus cumple se
24
[instrucciones]
tanta
veces no
como Si se la
se
de no
la se
ha creado para guardar el valor de las entradas digitales. MIENTRAS [:bucle=1] [SI [:entradas_digitales=3] [salida 1] SI [:entradas_digitales=5] comprueba la si se si del [salida 0]] Primero cumple condicin,
condicin
cumple
sta se cumple evala las instrucciones MIENTRAS. SIEMPRE [instrucciones] Repite la lista de instrucciones de forma repetida. SIEMPRE[ escribe [Esto es un ejemplo] Esto es un ejemplo Esto es un ejemplo Esto es un ejemplo Esto es un ejemplo . . . Escribir continua hasta que se de estas manera frases, el
detenga
proceso mediante la ayuda del botn ALTO. REPITE numero [instrucciones] Repite la lista de instrucciones tantas veces como se indica en el nmero. REPITE 3 [escribe [Esto es un ejemplo]] Esto es un ejemplo Esto es un ejemplo Esto es un ejemplo Nos muestra el que texto 3
25
PRIMITIVA
CREAVENTANA [titulo] pox padre poxy nombre alto
DESCRIPCIN
Crea una ventana en la pantalla de MSWLogo. -padre es el nombre principal de la ventana. -nombre se utiliza para identificar la ventana, y este nombre ha de ser nico, ya que quizs ventana. -pox posy son las posiciones de las X y de la las Y respectivamente ventana. -ancho ventana. -configuracin de es una esta lista lista instrucciones, alto de la nueva esquina sea padre de otra
EJEMPLO
CREAVENTANA [Ejemplo de principal ventana] ej 120
ancho
[configuracin]
150 287 100 [] Esto crear una ventana con el nombre de ej en la cual se muestra la etiqueta de Ejemplo de ventana. El nombre del proceso padre de esta ventana se se si pusiera llama esta dentro principal, ventana
puede estar vaca y aadir los controles ms tarde. BORRAVENTANA nombre Borra la ventana que se indica en nombre. BORRAVENTANA principal Borra todas borrara ventanas la ventana las que padre de las de ventanas, colgarn
tambin
esta ventana padre. BORRAVENTANA ej Borra solamente la ventana etiquetada ej. CREAGROUPBOX padre nombre posx posy ancho alto Crea una caja en la dentro que se de una de la el para CREAGROUPBOX ej_groupbox 5 0 274 85 Crea una caja dentro de la ventana ej a con la la cual etiqueta se llama ej con el nombre
pueden
botones, es en el la se
ej_groupbox.
26
de ser nico. -pox posy son las posiciones de las X y de la las Y respectivamente esquina
superior izquierda de izquierda del nuevo groupbox. -ancho alto del nuevo groupbox. BORRAGROUPBOX nombre Borra el groupbox que se indica en nombre. BORRAGROUPBOX ej_groupbox Borra la caja etiquetada como ej_groupbox. CREABOTON padre nombre posx Crea un botn es en el la se el dentro nombre que de de una la el para ha de CREABOTON ej ej_boton
ventana. -padre ventana botn. -nombre identificar ser nico. -pox posy son las posiciones de las X y de la del las Y nuevo respectivamente superior botn. -ancho alto del nuevo botn creado. llamada de de un es una pequea o un a el lista nombre llamar botn. instrucciones se esquina utiliza botn y crea
[Botn] 25 10 110 35 [] Se crea un botn dentro de la con ventana al el y etiquetada se nombre muestra con de el ej cual etiqueta
ej_boton,
texto de Botn.
izquierda
procedimiento pulsa
cuando
Sustituye el texto que aparece dentro del botn. -nombre se utiliza para saber que ventana cuelga.
por la palabra Escribe en Botn actualizado. BORRABOTON nombre Borra el botn que se indica en nombre. BORRABOTON ej_boton Borra el botn etiquetado como ej_boton. CREABOTONRADIO padre grupo nombre [etiqueta] posx posy ancho alto Crea un botn que da al usuario la posibilidad de seleccin de un elemento de 2 estados CREABOTONRADIO ej_groupbox [Esto es otro ejemplo] ej 25
ej_botonradio
27
(verdadero o falso). Este tipo de botn es en es tiene el la que estar de la asociado con un groupbox. -padre ventana botn. -grupo groupbox asociado. -nombre identificar ser nico. -etiqueta etiqueta que nuevo botn. -pox posy son las posiciones de las X y de la del las Y nuevo respectivamente superior botn. -ancho alto del nuevo botn creado. BORRABOTONRADIO nombre Borra el botn que se indica en nombre. esquina se utiliza aparece en como el se el utiliza botn y para ha de el al nombre que del est nombre que crea este
50 120 30 Crea un botn de seleccin dentro del groupbox al que se etiqueta el con cual ej_botonradio, ejemplo.
izquierda
Crea un botn que da al usuario la posibilidad de seleccin de un elemento. Este tipo de botn tiene que estar asociado con un groupbox. -padre ventana botn. -grupo groupbox asociado. -nombre identificar ser nico. -etiqueta etiqueta que nuevo botn. -pox posy son las posiciones de las X y las Y se utiliza aparece en como el se el utiliza botn y para ha de es el al nombre que del est es en el la nombre que crea de la este
CREACHECKBOX ej_groupbox [Texto 110 35 Crea dentro el cual el botn de ejemplo] 155
ej ej_checkbox 10
checkbox con
del se
groupbox muestra
28
de
la del
esquina nuevo
izquierda
-ancho alto del nuevo botn creado. BORRACHECKBOX nombre Borra el botn que se en BORREACHECKBOX ej_checkbox Borra el botn etiquetado como ej_checkbox. CREALISTBOX padre nombre posx posy ancho alto Crea una lista de seleccin de diferentes elementos. -padre ventana botn. -nombre identificar ser nico. -pox posy son las posiciones de las X y de la las Y respectivamente esquina se la utiliza lista y para ha de es en el la nombre que crea de la este CREALISTBOX ej ej_listbox 155 45 90 20 Crea una lista de seleccin dentro esta de se la como la ventana ej, a etiqueta etiquetada lista
nombre.
como ej_listbox.
superior izquierda de la lista. -ancho alto de la lista. BORRALISTBOX nombre Borra la lista de seleccin que se indica en nombre. BORRALISTBOX ej_listbox Borra la lista de seleccin etiquetada ej_listbox. CREACOMBOBOX padre nombre posx posy ancho alto Crea para una dar caja al de es el se el que se utiliza una CREACOMBOBOX ej como
usuario
ej_combobox 155 55 90 20 Crea una caja de mltiples elementos dentro de la ventana ej, a la cual se llamar ejcombobox.
-pox posy son las posiciones de las X y de la del las Y nuevo respectivamente superior botn. -ancho alto del nuevo botn creado. BORRACOMBOBOX nombre Borra la caja de seleccin de mltiples elementos que se indica en nombre. BORRACOMBOBOX ejcombobox Borra la caja de seleccin etiquetada como esquina
izquierda
29
ej_combobox. CREAESTATICO padre nombre [texto] posx posy ancho alto Permite mostrar dentro de una ventana un texto. Este texto se puede -padre -nombre actualizar es el se con de la la primitiva actualizaestatico. nombre utiliza ventana en la que se crea. para identificar el texto que se va a introducir en la ventana y ha de ser nico. -pox posy son las posiciones de las X y de la las Y respectivamente esquina CREAESTATICO "ej_estatico 70 50 10 Crea la una ventana se el de texto llama texto dentro de la ventana ej a cual ej_estatico. Esta ventana contiene ESTATICO. [ESTATICO] "ej 35
superior izquierda de donde se va a ubicar el texto. -ancho alto del texto introducido en la ventana. ACTUALIZAESTATICO nombre [texto] Sustituye el texto que se crea con creaestatico. -nombre se utiliza para saber de que creaestatico cuelga. ACTUALIZAESTATICO ej_estatico [ACTUALIZADO] Actualiza ventana de de el texto de la a texto esttica
ESTATICO
ACTUALIZADO. BORRAESTATICO nombre Borra el botn esttico que se indica en nombre. BORRAESTATICO ej_estatico Borra la ventana de texto como etiquetada ej_estatico.
A continuacin vamos a mostrar el resultado en pantalla de los comandos explicados anteriormente en orden progresivo en la creacin de ventanas. Dentro de un marco rojo estarn los resultados de los comandos utilizados.
30
Crear ventana
Crear groupbox
Crear botn
31
Actualizar botn
Crear checkbox
32
Crear listbox
Crear combobox
Crear esttico
33
Actualizar esttico
PRIMITIVA
CARGADIB ruta_imagen.bmp Carga una
DESCRIPCIN
imagen .bmp que se
EJEMPLO
CARGADIB C:\\ejemplo.bmp
encuentra
donde
indica
ruta_imagen.bmp. CARGADIBTAMAO ruta_imagen.bmp Devuelve el tamao de la imagen que devuelve se en una indica El tamao de lista en lo 2 ruta_imagen.bmp. Se utiliza el junto con la en
muestra resultado
para
CARGADIBTAMAO
C:\\ejemplo.bmp Nos devuelve: [256 256] GUARDADIB ruta\nombre_bitmap Guarda .bmp una en imagen la en formato del GUARDADIB C:\\ejemplo.bmp
ubicacin
ordenador que se especifique. CARGAGIF ruta_imagen.gif Carga una imagen .gif que se CARGAGIF C:\\ejemplo.gif
encuentra
donde
indica
ruta_imagen.gif. GUARDAGIF ruta\nombre_gif Guarda .gif una en imagen la en formato del GUARDAGIF C:\\ejemplo.gif
ubicacin
34
PRIMITIVA
ADIOS
DESCRIPCIN
Cierra el programa de MSWLogo. ADIOS
EJEMPLO
Alto: detiene la ejecucin del programa que se esta ejecutando sobre MSWLogo.
Trazar: permite ver en el historial de la pantalla de Trabajo las sentencias del programa de MSWLogo que se estn ejecutando tiempo real. Se muestra en la imagen de abajo el historial de las sentencias que se estn ejecutando.
35
ejecutando sobre MSWLogo. Nos mostrar una ventana en pantalla en la tendremos que darle a continuar para que siga el desarrollo del programa.
Estado: muestra en una tabla informacin sobre el estado del lpiz, la orientacin de ste, el color del lpiz, la posicin de la tortuga y el estado del ncleo de MSWLogo.
Paso: ejecuta el programa de MSWLogo paso a paso, es decir, lnea a lnea del archivo de programacin, teniendo que dar consentimiento para que se ejecute la siguiente lnea de programacin. Nos muestra una ventana similar de la que se muestra a continuacin.
36
Ejecutar: ejecuta las sentencias de programacin de MSWLogo que se escriben en la ventana blanca de la pantalla de Trabajo.
7.- Comentarios
Los comentarios en el lenguaje de MSWLogo han de ir precedidos por un punto y coma ;. A continuacin se muestra un ejemplo.
Guardar o Archivo
37
Se utiliza la primitiva guarda nombfichero.lgo en el que se guarda las definiciones de todos los procedimientos, variables y listas de propiedades sin tapar.
En ambos casos hay que destacar que no se guarda cada procedimiento en un archivo, sino que todo el trabajo definido durante una sesin de MSWLogo se guarda junto en el mismo archivo, excepto aquellas variables o procedimientos que se hayan tapado.
podemos cargar un archivo de programacin de MSWLogo. En esta ventana solo aparecen los archivos con extensin .lgo. Para que aparezcan todos los archivos se debe seleccionar en Tipo de archivos: todos los archivos *.*.
38
Se utiliza la primitiva carga nombfichero.lgo para que cargue el archivo de programacin de MSWLogo especificado. Si el archivo no est dentro de la carpeta bc5, se tendr que poner la ruta de acceso a ese fichero.
Es importante destacar que cuando se carga un fichero lgo se cargan todos sus procedimientos en el entorno de MSWLogo. Si no se han guardado el entorno de trabajo de la sesin actual en disco o si en el archivo existen procedimientos ya definidos en la sesin actual, se sobrescribir. Pero antes de eso MSWLogo emite una ventana de aviso:
10.- Bibliografa
Gua prctica de MSWLogo en ingls: http://www.southwest.com.au/~jfuller/logotut/logo1.htm
39