?_#l8 Manual de Referencia de MswLogo%MswLogo (traducido por Rosario Ruiz)8CreateButton("btn_annotate", "&Annotate", "Annotate()")BrowseButtons()/&;)z4  |CONTEXT|CTXOMAPh|FONTF|KWBTREE%|KWDATA{|KWMAP|SYSTEM|TOPIC|TTLBTREETlogo.rtf 169 3EDAF5018 KEYBOARDOFF 1 KEYBOARDOFF logo.rtf 169 7B8A0C8F2 KEYBOARDVALUE 1 KEYBOARDVALUE logo.rtf 169 +C6098E38 MOUSEON 1 MOUSEON logo.rtf 169 -439AE226 MOUSEOFF 1 MOUSEOFF logo.rtf 169 -439AEAEF MOUSEPOS 1 MOUSEPOS logo.rtf 169 /A03B7DC6 CLEARTEXT 1 CLEARTEXT logo.rtf 169 /B2F26C84 SETCURSOR 1 SETCURSOR logo.rtf 169 )AE30AC1E CURSOR 1 CURSOR logo.rtf 169 1173D88E7 SETMARGINS 1 SETMARGINS logo.rtf 169 % 216031 KEYP 0 KEYP logo.rtf 170 11D576D0E KEYBOARDON 1 KEYBOARDON logo.rtf 170 11D576D0E KEYBOARDON 0 KEYBOARDON logo.rtf 171 7B8A0C8F2 KEYBOARDVALUE 1 KEYBOARDVALUE logo.rtf 171 -3A52FECA SETFOCUS 1 SETFOCUS logo.rtf 171 +3F966F1C NOYIELD 1 NOYIELD logo.rtf 171 3EDAF5018 KEYBOARDOFF 0 KEYBOARDOFF logo.rtf 172 7B8A0C8F2 KEYBOARDVALUE 0 KEYBOARDVALUE logo.rtf 173 +C6098E38 MOUSEON 0 MOUSEON logo.rtf 174 -439AEAEF MOUSEPOS 1 MOUSEPOS logo.rtf 174MD 8D1pD|Welcome? < H7SmVDH ` 7SmMSWLogoA[A P7SmDerechos de propiedad literaria (C) 1989 Los Regentes de la Universidad de California. Puede copiar y distribuir este Software con fines educativos, de investigacin, y con fines comerciales, con tal de que la declaracin de estos derechos de propiedad literaria se incluya en total en las copias. Derechos de propiedad literaria (C) 19931997 George Mills. Puede copiar y distribuir este Software con fines educativos, de investigacin, y con fines comerciales, con tal de que la declaracin de estos derechos de propiedad literaria se incluya en total en las copias.^@ P<7SmTraduccin: Rosario Ruiz +^[ h7Sm ;d FUNCIONES DE BITMAPMULTIMEDIA/MIDI/SONIDOGESTIN DE REDES= 1OINTRODUCCINT| B T$7Sm  INTRODUCCIN*X T7Sm y> 㮰p7 Por qu LOGO?Cmo empezar?= 1s@Por qu LOGOQ? N$7Sm Por qu Logo? G \W7SmEsta introduccin no lo explica todo sobre LOGO, pero es un comienzo. LOGO es un lenguaje de programacin, puro y simple. Hay dos modelos de lenguaje, compilado e interpretado. Qu es un lenguaje compilado? En un lenguaje compilado se escribe el programa que llegar a un compilador. El compilador lee todo el cdigo y lo convierte en cdigo ejecutable que entiende la computadora. Qu es un lenguaje interpretado? Un lenguaje interpretado no compila, en cambio, el intrprete lee y procesa cada lnea. Este proceso es lento, pero tiene la ventaja de que no requiere una nueva compilacin en cada cambio. Este sistema es ideal en un ambiente del aprendizaje.` L f7Sm Qu tipo de lenguaje es LOGO? Cierto, es un lenguaje interpretado; por lo menos este LOGO; sin embargo: LOGO tambin tiene otro rasgo nico que no ofrecen otros lenguajes. Es el conocido como "Grficos de la Tortuga." Qu son los grficos de la tortuga? Los grficos de la tortuga son un juego de primitivas, simple y poderoso, para manipular una tortuga. Por qu una tortuga? La primera versin de LOGO us un robot electrnico que se pareca a una tortuga. En el caso de una pantalla de vdeo (como la de LOGO) es simplemente un cursor (o indicador) de donde est la tortuga. D V7Sm Qu hace la tortuga? Dibuja, lneas principalmente, en la pantalla. Los lenguajes tradicionales no incorporan grficos de la tortuga. Estos grficos se generan de forma inmediata, lo que hace fcil y divertido aprender programacin. El propsito de LOGO es ensear a jvenes y mayores cmo programar. Se dise despus de un lenguaje muy popular y potente llamado LISP. Es tan poderoso como cualquier otro lenguaje de programacin.? @< H7Sm@= K@1OWK@πCmo empezarS@@A R$7Sm Cmo empezar?K@BH ^7SmLos que nunca han programado podrn comenzar a dar rdenes LOGO a la tortuga. Los Grficos de la tortuga descubrirn al usuario aspectos de geometra que no conocan. Asombra cmo pronto se puede introducir en el concepto de programacin una vez que se aprende a manejar la tortuga. Algunos ejemplos: Dibujar un cuadrado usando la tortuga AVANZA 100 GIRADERECHA 90 AVANZA 100 GIRADERECHA 90 AVANZA 100 GIRADERECHA 90 AVANZA 100 GIRADERECHA 90.@DE X7Sm Es fcil, pero tiene demasiado texto, probemos de nuevo. REPITE 4[ AV 100 GD 90] Es lo mismo? S, es el mismo cuadrado. Hicimos dos cosas. Nos dimos cuenta de que en nuestro primer ejemplo hay demasiado cdigo redundante, para qu repetir la misma sucesin 4 veces?. Tambin usamos abreviaturas de las mismas rdenes. Pero podemos mejorarlo todava. No sera ms til dar slo la orden cuadrado cuando queremos un cuadrado? EDITA "cuadrado < Se entra en el Editor>UB CUADRADO CUADRADO Qu son PARA y FIN? Sirven para definir un procedimiento (un programa pequeo) para el cuadrado. PARA es como "hacer algo". FIN termina PARA. Una vez que cuadrado est "definido" entonces lo llamamos dos veces. Eso es todo lo que se necesita para hacer un cuadrado pero slo un cuadrado del mismo tipo. Slo dibuja cuadrados de 100 por 100. No sera mejor dibujar un cuadrado de cualquier tamao? Pues es fcil.mDIQ p97Sm EDITA "cuadrado PARA CUADRADO : longitud REPITE 4[ AV: longitud GD 90] FIN CUADRADO 100 CUADRADO 200Lo que hacemos es reemplazar 100 por una variable llamada: longitud. Ahora cuando llamemos cuadrado, debemos especificar su longitud, 100 o 200. Nota ":" delante de la palabra longitud indica a Logo que es una variable. De cualquier modo, podemos conseguir otras mejoras; pues, no sera mejor si pudiramos dibujar adems de un cuadrado otras figuras como, tringulo, pentgono, etc.?81bW+>m-w/ mO l7Sm -width-w widthPone la anchura del espacio de trabajo como anchura virtual de dibujo. Mientras mayor sea el espacio ms memoria se requiere. Por omisin se establece en 1000.Ejemplo:LOGO.EXE- w 2000 - h 20003>1=K-h mQ ps7Sm -h-h heightFija el tamao del espacio de dibujo virtual para la altura. Mientras mayor sea ms memoria requiere. Por omisin es 1000.Ejemplo:LOGO.EXE - w 2000 - h 20003݅1+;݅-pWS v7Sm k3-p-pHabilita el modo PERSPECTIVA como modo estndar.Ejemplo:LOGO.EXE- p3݅10>-e$މK d7Sm -e- eHabilita el modo "Experto".En el modo "Experto" ocurre lo siguiente:POS y POS3D no "redondean" los datos y se veran posiciones tal como[ 0- 1.0e-12]. Es debido a errores "normales" de punto flotante. El Redondeo de POS sirve para un buen funcionamiento de POS. Pero en algunas aplicaciones este redondeo puede introducir error si guarda y restaura la posicin. En otras palabras que PONPOS POS no redondear en el modo "Experto".MSWLogo permite Mltiples Sesiones de Editor. Estas Mltiples sesiones pueden conducir a situaciones inesperadas si no entiende cmo MSWLogo maneja el espacio de trabajo. Si se pierden procedimientos o tienen un inesperado cambio entonces no debe usar el modo experto.`>D V97SmEn el modo experto, MSWLogo guardar directamente el espacio de trabajo, lo que puede llevar a resultados inesperados si no entiende cmo MSWLogo trabaja. Si se pierden procedimientos o se producen cambios inesperados entonces no debe usar el modo experto.Ejemplo:LOGO.EXE- e3މq1 ;E  q^-lG>A R 7Sm -lBqX ~7Sm"-l file1 file2MSWLogo puede CARGAR uno o ms FICHEROS desde la lnea de comandos cuando se carga MSWLogo. Se cargarn estos archivos antes de que el intrprete comience la lectura de las rdenes. Si carga un archivo que procesa un programa que incluye la orden ADIOS, MSWLogo ejecutar ese programa y saldr del entorno. Puede escribir por eso programas en Logo y ejecutarlos desde sus propios iconos. Nota, el interruptor " -l" debe seguir a los dems interruptores.d%^? NJ7SmEjemplo:LOGO.EXE - l myprog.lgo71C0k EDITOR1^` 7Sm @q|x;EDITORCuando termina el Editor, Logo carga las definiciones y modifica el espacio de trabajo. Soporta mltiples sesiones de Editor. Pero hay que llevar cuidado de no tener procedimientos con la misma definicin. Cuando el ltimo Editor termina, guarda las^ definiciones. Tenga en cuenta que si anula procedimientos, listas de propiedades o nombres, se borrarn (ver Borrar) del entorno y cuando se ejecute Guardar no se guardar lo borrado.kp 7Sm۸ B#Ӏ C@f  Men EditorEdicin de erroresEditando con el PortapapelesAyuda Sensible al Contexto< 1 E  Men EditorM ؀7Sm 㔵L ܀ ㊨Q r:yo t Men Editor FicheroEditarConfigurarProbarAyudaC1k߁ oEdicin de erroresr'oK dO7Sm Edicin de errores Si se produce un error cuando Logo "carga" su Editor, le ofrece volver a entrar en el Editor. Esta situacin normalmente ocurre cuando se espera una continuacin a "~" o se espera "]." Cuando el Editor recarga, el cursor se sita tras la ltima definicin correcta.M1 $Editando con el Portapapeles.oQ p7Sm tEditando con el Portapapeles El Editor de Logo soporta el Portapapeles. El Portapapeles es una aplicacin donde Windows guarda los datos para las operaciones de cortar y pegar. Esto significa que si cort texto de una aplicacin, tal como Notepad, lo puede pegar en el Editor de Logo (a la inversa, tambin). Igualmente los Help de Windows soportan el Portapapeles. Esto significa que puede copiar ejemplos de este documento directamente al Editor (vea Ayuda).:$@ N7SmLa Caja de Entrada tambin soportan el Portapapeles. Slo soporta una lnea de texto entre la Caja de Entrada y el Portapapeles. Observe que la Caja de Entrada no tiene un Men Editar. Debe usar las teclas "Short-Cut" para las acciones (CTRL-X Cortar, CTRL-C Copiar, CTRL-V Pegar).La Caja de Lista tambin soporta el Portapapeles. Esto significa que puede copiar el cdigo en el Portapapeles y pegarlo en el Editor; as como copiar el texto generado por el programa y pegarlo en otra aplicacin.Ko1߁φoAyuda sensible al contexto[$B R37Sm Ayuda Sensible al ContextoEl Editor, la Caja de Entrada y la Caja de Lista disponen de Ayuda Sensible al Contexto. Si selecciona con el teclado, por ejemplo, AVANZA, y pulsa el botn derecho del ratn o la tecla F1, o simplemente hace un doble clic, Logo buscar AVANZA. Do1Men Editor Fichero0] `7Sm u + Men Editor FicheroImprimirSalir@1φ-JImprimir Editoro.JA R\7Sm ImprimirImprime el contenido del Editor.A1}8Salir del editorPJ8] 7Sm @qB#ӀSalirSale del Editor y pregunta si desea guardar el trabajo en la memoria de trabajo. Cuando termina el Editor, Logo carga las definiciones editadas y modifica el espacio de trabajo. Soporta Mltiples sesiones de Editor, pero cuide de no tener ms de un procedimiento con la misma definicin. Cuando termina el ltimo Editor guarda la ltima definicin. Tambin dse cuenta de que si, cuando estaba en el Editor, anula procedimientos, propiedades, listas o nombres se borrarn (vea BORRAR ) del disco cuando termine y guarde el trabajo. Vea tambin Edicin de errores.< t1T-tjMen EditarY8j 7Sm ]/ b 㮣9 "Mu v dӶ΀ tj8Men EditarDeshacerCortarCopiarPegarBorrarBorrar todoAt1}4#Editor: deshacerx4j#D Xh7Sm DeshacerBorra la ltima operacin del Editor.?b1b&Editor: Cortart#&P p7Sm C@fCortarCorta y guarda el texto seleccionado en el Portapapeles. Vea tambin Editando con el Portapapeles.?be14eEditor: Copiarh&J d7Sm C@fCopiarCopia el texto seleccionado en el Portapapeles. Vea tambin Editando con el Portapapeles.> eU1-UDEditor: PegarDK dI7Sm C@fPegarPega el texto del Portapapeles en la posicin actual del cursor. Si hay texto seleccionado ser reemplazado. Vea tambin Editando con el Portapapeles.?U1Editor: Borrarm)DD XR7Sm BorrarBorra el texto seleccionado.< ,1,Borrar todoj&D XL7Sm Borrar todoBorra todo el texto.C,1%KEditor: Configurarr"KP pD7Sm PKJConfigurarTipo de letra> 1*Tipo de letraJKE X 7Sm Tipo de letraPuede cambiar las fuentes en esta opcin del Editor, seleccionando la fuente deseada. La nueva fuente afecta al Editor entero, no solo al texto seleccionado. La fuente escogida quedar seleccionada igualmente despus de reiniciar MSWLogo.7 1%  Probarc H ^7Sm Probar!Puede probar su cdigo seleccionando una parte del mismo y pulsando en Probar! en el Men del Editor. Cada lnea ser ejecutada. Tenga esto presente si selecciona cdigo con variables que se deben definir en la seleccin o que ya estn definidas en la memoria de trabajo. Usar esta opcin es como si tecleara en la ventana de trabajo.B  1*  Men Ayuda EditorC  g 7Sm  kly C4 Men Ayuda Editor ndiceEditorBsqueda por temaD  1  ndice Ayuda EditorL  P p7Sm ndiceAyuda de MSWLogo. Vea tambin Ayuda Sensible al Contexto.=  1e W Ayuda EditorI W P p7Sm AyudaAyuda del Editor. Vea tambin Ayuda Sensible al Contexto.C  1 Y Bsqueda por temasoW Y P p7Sm Bsqueda por temasBusca el tema seleccionado con el ratn. Vea tambin Ayuda Sensible al Contexto.=  1_e @MODO DIRECTO-Y  G7Sm tMF혡4JـMODO DIRECTOEl modo directo es donde desarrollar su sesin de LOGO, en la ventana Trabajo. Es el medio donde instruye a LOGO sobre lo que quiere hacer. El control ms importante es la CAJA DE ENTRADA. Se localiza en la parte izquierda. Para ms informacin sobre los diferentes controles (cajas y botones):Caja de EntradaCaja de listaBotn ejecutarBotn de estadoBotn trazarE @l 7Sm@Y ㈗рߩ2CBotn paradaBotn reiniciarBotn pasoBotn pausa@@1!@ICCaja de Entrada@ICx #7Sm 혡혡C@fCaja de Entrada La Caja de Entrada est junto a la Caja de Lista y el Botn ejecutar. En ella puede modificar tambin el texto. Si su texto rebasa el espacio, se deslizarn las lneas automticamente (scroll). Una vez que ha escrito su instruccin en la Caja de Entrada, podr ejecutarla. Para ello pulse ENTER o el Botn ejecutar. Usando las teclas de flecha Arriba/ Abajo saltar automticamente a la Caja de Lista. Dispone tambin de Ayuda Sensible al Contexto y Editando con el Portapapeles.> @C1@"CFCaja de Lista/ICFZ _7Sm tMtMC@fCaja de ListaEn la Caja de Listas aparece todo lo que escribe en la Caja de Entrada. Puede ejecutar otra vez una lnea de instrucciones mediante doble clic en la misma; tambin puede utilizar las teclas de flecha para situarse en la lnea y luego pulsar ENTER. Si la lnea permanece oculta, use la barra de deslizamiento para hacer scroll. Una vez que haya pulsado con el ratn en una lnea, se copiar automticamente en la Caja de Entrada. La Caja de Lista dispone tambin de la Ayuda Sensible al Contexto y Editando con el Portapapeles.?COF1#OF$GBotn EjecutarF$GT v7Sm  tMBotn EjecutarEl botn EJECUTAR ejecuta las rdenes de la Caja de Entrada , igual que si se pulsara la tecla ENTER.@OFdG1S@z$dGwHBotn de Estado$GwHZ s7Sm 㖥:g{Botn de EstadoEste botn abre una ventana con el contenido de lo qu LOGO est haciendo. Pulse el botn de nuevo para cerrar la ventana. Vea tambin Estado y No Estado.= dGH11%HJBotn TrazarwHJf 7Sm }+y㐥SBotn TrazarEscribe en la ventana de texto las instrucciones que se estn ejecutando para facilitar la depuracin de errores. Pulse el botn de nuevo para desactivar TRAZAR. Puede volver a TRAZAR mientras Logo est ejecutando. TRAZAR hace su trabajo independientemente de que la primitiva PASO ejecute el programa instruccin por instruccin. Vea tambin Traza y Notraza .; HJ1z&JKBotn AltoxJKM j7Sm iBotn AltoDetiene inmediatamente el proceso mientras espera una nueva orden. Vea tambin la primitiva PARADA.@JK1ׇ'KLBotn ReiniciarWKLN l7Sm 9|DBotn Reiniciar El botn Reiniciar es semejante a la orden BORRAPANTALLA .; KL1(LNBotn PasoHLNf 7Sm }+}+}JBotn PasoEjecuta el programa paso a paso, de instruccin en instruccin. Pulse el botn de nuevo para desactivarlo. Trabaja independientemente de que se ejecute la primitiva PASO. Vea tambin Paso y Nopaso< LLN1ׇ)LN#Botn Pausa}N#N j7Sm /%Botn PausaDetiene LOGO para que pueda examinar variables, hacer cambios u otra tarea. Una vez pulsado el botn PAUSA, Logo mostrar en qu procedimiento se produjo la pausa. Para continuar hay que escribir la orden CONTINUA en una ventana de dilogo y pulsar OK. Puede utilizar tambin la primitiva PAUSA dentro del cdigo para que acte como unLN#N "Punto del Ruptura."5LNX1 *XMENڔ # ܀7Sm y܀  :2 {8  Vp# LfD MENEl MEN gestiona diferentes tareas en LOGO como, cargar un programa LOGO, cargar un BITMAP, instalar una impresora o quizs leer este fichero de ayuda. Vea el Men especfico para ms informacin.FicheroBitmapConfigurarZoomAyuda= X)1+)Men Fichero"K #7Sm f' mJ݀ |x; sp0 ] @ "lӀ FicheroEl Men Fichero incluye rdenes para trabajar con ficheros con procedimientos Logo. Hay que tener en cuenta que cualquier seleccin en este Men que lleve un directorio en su ventana de dilogo har que ese directorio sea el directorio de trabajo. Para ms informacin seleccione en el Men la opcin especfica.NuevoCargarGuardarGuardar comoEditarBorrar P )E Z7SmQ,/ Salir?Kڄ1  ,ڄFichero: NuevowD X7Sm NuevoBorra todos los procedimientos actualmente cargados en memoria. Es como comenzar con una "Nueva" sesin.@ڄՅ1-ՅFichero: CargarK d#7Sm "CargarCarga del disco un fichero con procedimientos para que se pueda ejecutar o modificar un programa. Vea tambin la primitiva Cargar.AՅ1 (.Fichero: GuardarwG ^7Sm Y*GuardarGuarda en el disco todos los procedimientos que estn en la memoria. Vea tambin la primitiva Guardar F1/ɈFichero: Guardar comoɈK d7Sm |x;Guardar comoEs lo mismo que Guardar, pero se utiliza para dar un nuevo nombre al fichero, de forma que no se borre el anterior.@ 1@(e0  Fichero: EditarɈ K dk7Sm EditarPara modificar procedimientos cargados en memoria. Puede editar todos los procedimientos (cargados en memoria) y tambin uno nuevo. Vea tambin la primitiva EDITA.@ I11IFichero: Borrar] J d7Sm @qBorrarBorra los procedimientos cargados en memoria. Vea tambin la primitiva Borrar.?I/1e2/‹Fichero: SalirL‹G ^7Sm SalirTermina la sesin con MSWLogo. Vea tambin la primitiva ADIOS.< /13Menu Bitmap ‹ 7Sm 逈 `l Ѹʀ B1s ѕ M t e2 Bitmap El Men Bitmap incluye rdenes para trabajar con ficheros de mapas de bits (bitmap). Para ms informacin vea la opcin especfica en el Men Bitmap.NuevoCargarGuardarGuardar comorea activaConfigurar impresoraImprimir> 1b4oBitmap: NuevoHoA R7Sm Nuevo Borra el trabajo hecho en pantalla y crea un nuevo ambiente.?15jBitmap: Cargar^ojR r7Sm sX`bIY Cargar Carga una imagen guardada en el disco. El formato del fichero guardado se conoce como *.BMP (Microsoft Windows Bitmap). Puede intercambiar estos archivos con otras aplicaciones, como Paint. Estos archivos pueden ser de gran tamao, de lectujora o escritura. Vea tambin la primitiva CARGADIB.Vea tambin la seccin USANDO COLOR.@1,bU6Bitmap: Guardar7j5T vo7Sm t` Guardar Guarda una imagen del bitmap en el disco del ordenador que ms tarde se podr recuperar. Tambin puede guardar un bitmap reformado. RECUERDE que si gener su imagen con LOGO, no necesita guardarlo como imagen a menos que quiera usar la imagen en otra aplicacin, como Paint. Vea tambin GUARDADIBEl formato del fichero guardado es del tipo Microsoft Windows Bitmap (*.BMP). Puede intercambiar estos ficheros con otras aplicaciones, como Paint. Estos archivos pueden ser de gran tamao y puede tardar un tiempo mientras se guardan o cargan.aC V<7SmѕVea tambin rea activa.D517Bitmap: Salvar comoaJ d7Sm ѸʉSalvar comoSimilar a GUARDAR, pero con la posibilidad de dar un nombre nuevo al fichero.D1WU8Bitmap: rea ActivaPS t7Sm ㈗рrea activaSelecciona el rea de impresin y grabacin de bitmap, de forma que comprenda la imagen completa o una parte de la misma. Si selecciona una parte de la imagen, lgicamente ahorrar memoria y tiempo. Puede pulsar el Botn reiniciar para volver a las magnitudes de la imagen completa. MSWLogo recordar la configuracin.Puede establecer tambin los puntos por pulgada. La presuncin por omisin es 125 Puntos por pulgada. La memoria de trabajo por defecto de MSWLogo es de 1000x1000 puntos por pulgada, equivalente aproximadamente a 8x8 pulgadas (1000/ 125x1000/ 125). Puede aumentar este nmero para tener una resolucin ms alta pero su imagen sera ms pequea. Puede compensarlo aumentando su espacio de trabajo (y tamao del dibujo).kX 7Sm݀Puede tambin fijar el rea activa con la primitiva PONAREAACTIVA y obtenerla con AREAACTIVA.M)1a9)Bitmap: Configurar impresoraCA R7Sm Configurar impresoraConfigura la impresora antes de imprimir.A)1:`Bitmap: Imprimirr1`A Rb7Sm ImprimirImprime su trabajo en la impresora.@1ab;Men Configurard` 7Sm ~6 P8 1 b :~ m ConfigurarEstablece algunas caractersticas del dibujo en LOGO.Tamao del lpizTipo de letra rotuladorTipo de letra rdenesColor del lpizColor del rellenoColor del fondoAE1~E<ETamao del lpiz=Z 7Sm $'ᣀU׀Tamao del lpizEsta orden selecciona el grosor del lpiz con que dibujar la tortuga. El mismo resultado se obtiene con la primitiva PONGROSOR ; para saber que grosor est en uso se utilizar la primitiva GROSOR.HE1b4=Tipo de letra rotuladorUf 7Sm ހ;Tipo de letra rotuladorCon esta opcin selecciona el tipo de letra que se utilizar con la primitiva ROTULA . Puede seleccionar tambin el tipo de letra con la primitiva PONTAMAOTIPO y obtener el tipo actual con TIPO.Fe1E>e%Tipo de letra rdeness%A R7Sm Tipo de letra rdenesCon esta opcin selecciona el tipo de letra que permanecer fijo e%tras reiniciar MSWLogo.@ee1]4?eColor del lpiz%Z 7Sm  ̕j+/(Color del lpizCon esta opcin selecciona el color del lpiz. Puede seleccionar el color del lpiz tambin con la primitiva PONCOLORLAPIZ y obtener el color actual con COLORLAPIZ.Ae1@)Color de rellenof)f 7Sm j'ŭɀColor de rellenoCon esta opcin selecciona el color con que la tortuga rellenar un rea cerrada mediante la primitiva RELLENA. Puede seleccionar tambin el color de relleno con la primitiva PONCOLORRELLENO y obtenerlo con COLORRELLENO.?h1Q{AhzColor de fondo)zZ q7Sm I-qǀ)Color de fondoCon esta opcin selecciona el color de fondo de la pantalla. Tambin puede seleccionar el color con la primitiva PONCOLORPAPEL y obtenerlo con COLORPAPEL.5h1BkZoomPzkl 7Sm @'2xI7sZoomPermite seleccionar el modo ZOOM.AcercarAlejarNormal 81{DCiAcercarykiM j7Sm W3AcercarPermite seleccionar el modo ZOOM a doble tamao. El mismo efecto se consigue con la primitiva PONLUPA.71DjAlejar}ijM j7Sm W3AlejarPermite seleccionar el modo ZOOM a la mitad de tamao. El mismo efecto se consigue con la primitiva PONLUPA.71D/E\Normalnj\M j7Sm W3Normal Restablece el modo ZOOM al tamao 1.0. El mismo efecto se consigue con la primitiva PONLUPA. ; 1FC Men Ayuda\C  F7Sm Ifp!i]ҀD_tGŶk{AmiAyudaAyuda para aprender ms sobre LOGO. Para ms informacin, seleccione la opcin deseada. Vea tambin la primitiva AYUDA .ndiceMCI Demo Tutorial Ejemplos Notas de la versinAcerca de>  1/]G  Ayuda: ndice>C  A R|7Sm ndice Muestra la Ayuda de Microsoft Windows para LOGO.; ; 1H;  Ayuda: MCIo  M j7Sm MCI Muestra ayuda sobre los ficheros MCI. Explica la sintaxis de los argumentos de la primitiva MCI.5; , 1] I,  Demo~=  A Rz7Sm Demo Ejecuta el programa DEMO contenido en la librera.9,  1QJ l TutorialH l A R7Sm Tutorial Le lleva al tema Cmo empezar de este fichero de ayuda.9  1 K Ejemplosz9l A Rr7Sm Ejemplos Presenta los ejemplos en el Bloc de Notas.D c1QLcNotas de la versingG ^7Sm Notas de la versinMuestra en el Bloc de Notas un fichero que contiene notas sobre la versin. : cK1MK @Acerca de? @A R~7Sm Acerca deMuestra informacin sobre la versin de MSWLogo.K @GKS@1NS@CEntrar y salir de Logo_ @Ch 7Sm Q,/ENTRAR Y SALIR DE MSWLOGOPara ejecutar MSWLogo, pulse el icono de MSWLogo. Para salir de Logo, escriba la primitiva ADIOS o seleccione Fichero Salir.Si llama a un procedimiento no definido, Logo primero busca un fichero del directorio actual con el nombre proc.lgo, siendo "proc" el nombre del procedimiento en minsculas. Si el fichero existe, Logo lo carga. Si no lo encuentra, Logo busca en el directorio de la librera un fichero llamado proc y, si existe, lo carga. Si no encuentra un fichero que contenga el procedimiento, entonces Logo enva un mensaje de error. Algunos procedimientos estn incluidos en la librera; as; si usa una librera diferente podr incluir algunos procedimientos o toda la librera estndar. = S@C1?OCTOKENIZACINv CeFl 7Sm ˜㊨,+TOKENIZACINLas palabras son los nombres de los procedimientos, de las variables, y de las propiedades de las listas. Son palabras especiales FIN, VERDADERO, y FALSO. Los signos que separan las palabras son delimitadores. Una palabra no puede contener delimitadores.Dentro de corchetes, las palabras estn delimitadas slo por espacios y corchetes. As, [2+3] es una lista que contiene una palabra.Despus de unas comillas, una palabra est delimitada por un espacio, corchetes, o parntesis.HCHD V7SmUna palabra que no est despus de comillas o entre corchetes se delimita con un espacio, corchetes, parntesis, o un operador +-*/=<>. Observe que las comillas y comas no son delimitadores.Una interrogacin seguida por un nmero (p.e., ?3), cuando se ejecuta (p.e., cuando se espera un procedimiento ), se trata:( ? 3 )como si fuera el nmero una entrada del procedimiento ?. Este tratamiento especial no se aplica a palabras ledas como datos, a palabras en las que al signo de interrogacin no le sigue un carcter numrico, o si el signo de interrogacin es .geFXKp 7Sm,I㘛I㘛I,IUna lnea (lnea de instrucciones o una lnea leda con LEELISTA o LEEPALABRA) puede continuar en la lnea siguiente si su ltimo carcter es (~). LEEPALABRA guarda el carcter y la nueva lnea; LEELISTA no.Un punto y como inicia un comentario en una lnea de instrucciones. Logo ignora todos los caracteres que siguen al punto y coma hasta el final de la lnea. Un carcter (~) como ltimo carcter de la lnea indica una continuacin de la lnea, pero no del comentario. &H~N ހ=7Sm㘛I,I(J㘛I,IEjemplo:escribe "abc;comentario ~defabcdefEl punto y coma no tiene un significado especial en las lneas de datos ledos con LEEPALABRA o LEELISTA, pero la lnea puede restablecerse usando EJECUTAANALIZA y entonces se reconocer el comentario. Si se quiere incluir un delimitador (punto y coma o (~)) en una palabra, debe estar precedido por una (\). Si el ltimo carcter de una lnea es una barra, entonces la palabra que sigue a la barra pertenece a la lnea siguiente. Para incluir una barra en una palabra, use \\. Esto se aplica a las lneas de datos ledas con data LEEPALABRA o LEELISTA como a una lnea de instrucciones.@XKʀ ڀu7Smz龀9MSWLogo no presenta "el carcter prompt " ni . MSWLogo ha aadido "\n", carcter de control que se traduce como .Ejemplo:escribe "Hola\ncmo\est\nustedHolacmocmoestustedFunciona de esta manera tanto en un procedi~NʀCmiento como en el modo directo.Un carcter con \ y el mismo sin el signo son IGUALES? ; es decir el resultado es VERDADERO, pero puede distinguirse con el predicado TIENEBARRA? .~Nn 7Sm㘛I,Ik(JUna notacin alternativa para delimitar caracteres en palabras es incluir el grupo de caracteres entre barras verticales (|). Todos los caracteres entre barras verticales son tratados como letras. En datos ledos con LEEPALABRA las barras verticales se guardan en la palabra resultante. En datos ledos con LEELISTA (o en el resultado de un ANALIZA o EJECUTAANALIZA de una palabra) las barras verticales no aparecen explcitamente; todos los caracteres delimitadores (espacios, corchetes, parntesis, y operadores infijos) aparecen como si se hubieran entrado con \. Dentro de las barras verticales se puede usar \.Nʀ]V z7Smk(JLos caracteres entrados entre barras verticales son siempre especiales, aun cuando la palabra o lista que los contiene sea analizada con ANALIZA o EJECUTAANALIZA. Igualmente sucede con un carcter escrito despus de una barra invertida, excepto cuando una palabra que contiene caracteres entre barras invertidas es ejecutada y analizada, los caracteres entre barras inversas pierden su cualidad, como si se hubieran escrito normalmente. Esta distincin es importante slo si se construye una expresin Logo que se ejecutar despus, y se quiere usar parntesis. Por ejemplo,G^ 7SmESCRIBE EJECUTA (FRASE "\( 2 "+ 3 "\))5, PeroEJECUTA (FRASE "HAZ ""|(| 2)ESCRIBE :|(|2Crea una variable cuyo nombre es |(|. (Los ejemplos fallaran si se intercambiaran las barras verticales y las invertidas.)F]1B*PESTRUCTURAS DE DATOSr 7Sm QoQ ۏQ"ւ ESTRUCTURAS DE DATOS CONSTRUCTORESSELECTORESMUTADORESPREDICADOS (Datos)CONSULTAS> $1Q$CONSTRUCTORES _7Sm 60㪲"x" ^|aㄤ5 `A & wʀẀCONSTRUCTORESPALABRALISTAFRASEPONPRIMEROPONULTIMOMATRIZCREAMATRIZLISTAAAMATRIZMATRIZALISTACOMBINAINVERSOGENSYM8$1*cRKPALABRA 7Sm PALABRApalabra PALABRA palabra1 palabra2palabra (PALABRA palabra1 palabra2 palabra3 ...)Devuelve una palabra formada por la unin de las entradas.palabra:(PALABRA) Concatenacin de entradas.palabra1:(PALABRA) Primera palabra para unir.palabra2:(PALABRA) Segunda palabra para unir.Ejemplo:muestra palabra "o "kokmuestra (palabra "a "o "k "to)H K? N7Smaokto61RS LISTAK 7Sm LISTAlista LISTA cosa1 cosa2lista (LISTA cosa1 cosa2 cosa3 ...)Devuelve una lista cuyos miembros son las entradas, que pueden ser cualquier objeto de Logo (palabra, lista, o matriz).lista:(LISTA) Lista formada con entradas.cosa1:(COSA) El primer miembro de la lista.cosa2:(COSA) El segundo miembro de la lista.Ejemplo:muestra (lista "Esto "es "una "Lista)a  7Sm K[Esto es una Lista]muestra lista [1 2 3] [a b c][[1 2 3] [a b c]]Ejemplo2:haz "rojo 100haz "verde 100haz "azul 100muestra (lista :rojo :verde :azul)[100 100 100]6C1cTCFRASEy ` 7Sm FRASElista FRASE objeto1 objeto2lista FR objeto1 objeto2lista (FRASE objeto1 objeto2 objeto3 ...)lista (FR objeto1 objeto2 objeto3 ...)Devuelve una lista cuyos miembros son sus entradas. Si las entradas son listas o ms de dos objetos, se debe utilizar la segunda forma (entre parntesis).lista:(LISTA) Frase formada por entradas.x!CW |C7Smobjeto1:(OBJETO) Objeto que ser el primer miembro de la frase resultante.Objeto2:(OBJETO) Objeto que ser el segundo miembro de la frase resultante.Ejemplo:muestra (fr "Una "frase "es "simplemente "una "lista "de "palabras)[Una frase es simplemente una lista de palabras]; `13U PONPRIMERO2~ ʀC7Sm PONPRIMEROnuevalista PONPRIMERO objeto listanuevalista PP objeto listaToma como argumento un objeto y una lista y devuelve otra lista (nuevalista) igual, pero con un nuevo miembro, el primer argumento, que ser el primer miembro de la nueva lista.nuevalista:(LISTA) Nueva lista formada con los dos argumentos.objeto:(OBJETO) Objeto que ser aadido como primer miembro de la nueva lista.z _ 7Smlista:(LISTA) Lista a partir de la que se formar la nueva.Ejemplo:muestra ponprimero 1 [2 3 4][1 2 3 4]: 2E17̆VEBPONULTIMOZ  ؀7Sm PONULTIMOnuevalista PONULTIMO objeto listanuevalista PU objeto listaToma como argumento un objeto y una lista y devuelve otra lista (nuevalista) igual, pero con un nuevo miembro, el primer argumento, que ser el ltimo miembro de la nueva lista.nuevalista:(LISTA) Nueva lista formada con los dos argumentos.objeto:(OBJETO) Objeto que ser aadido al final de la nueva lista.lista:(LISTA) Lista existente con la que se formar la nueva.BEBa 7SmEjemplo:muestra ponultimo 5 [1 2 3 4][1 2 3 4 5]7y1WyMATRIZwB} 7Sm \ BeOMATRIZmatriz MATRIZ tamaomatriz (MATRIZ tamao origen)Devuelve una matriz con tantos elementos enteros positivos como indique tamao. Cada elemento es inicialmente una lista vaca. Los elementos de la matriz pueden seleccionarse con ELEMENTO y cambiarse con PONELEMENTO. El primer elemento de la matriz es el elemento nmero 1, a menos que la entrada origen (un nmero entero) indique que el primer elemento de la matriz tenga otro ndice (a veces se usa el 0 como origen.) Las matrices se escriben con ESCRIBE, y pueden teclearse, dentro de llaves; indicando un origen con {a b c}@0.yp =7SmMatriz :(ARRAY) Nueva matriz.Tamao :(ENTERO) Tamao de la nueva matriz.origen:(ENTERO) Donde comienza el primer ndice.Ejemplo:haz "mi_matriz (matriz 3 0)ponelemento 2 :mi_matriz 1ponelemento 1 :mi_matriz 2ponelemento 0 :mi_matriz 3muestra :mi_matriz{3}B 2 1}; }R1̆xXRCREAMATRIZwt 7Sm CREAMATRIZmatriz CREAMATRIZ tamaolista(Procedimiento de la librera)matriz (CREAMATRIZ tamaolista origen) (Procedimiento de la librera)Devuelve una matriz multi-dimensional. La primera entrada debe ser una lista con uno o ms enteros. La segunda entrada, si la hay, debe ser un nico entero que se aplica a cada dimensin de la matriz.matriz:(CREAMATRIZ) Matriz multi-dimensional.tamaolista:(LISTA) Lista con varias dimensiones (cada una representada por un entero).uR ΀7Smorigen:(ENTERO) Donde comienza el primer ndice.(Vea MDPONELEMENTO)Ejemplo:haz "mi_matriz (creamatriz [2 3] 0)mdponelemento [0 0] :mi_matriz 1mdponelemento [0 1] :mi_matriz 2mdponelemento [0 2] :mi_matriz 3mdponelemento [1 0] :mi_matriz 4mdponelemento [1 1] :mi_matriz 5mdponelemento [1 2] :mi_matriz 6muestra :mi_matriz{{1 2 3} {4 5 6}}= 1)YLISTAAMATRIZXS Ҁ7Sm LISTAAMATRIZmatriz LISTAAMATRIZ lista(Procedimiento de la librera)matriz (LISTAAMATRIZ lista origen) (Procedimiento de la librera)Convierte una lista en matriz, ya que devuelve una matriz del mismo tamao que la entrada lista, cuyos elementos son los miembros de la entrada lista.matriz:(MATRIZ) Lista convertido en matriz.lista:(LISTA) Lista que ser convertida en matriz.origen:(ENTERO) Donde comienza el ndice de la nueva matriz.;Y v7SmEjemplo:muestra listaamatriz [1 2 3]{1 2 3}= S$1x Z$ MATRIZALISTA D h q7Sm MATRIZALISTAlista MATRIZALISTA matriz(Procedimiento de la librera)Convierte una matriz en lista, ya que devuelve una lista cuyos miembros son los elementos de la matriz de entrada. El primer miembro de la lista es el primer elemento de la matriz, independientemente del origen de la matriz.lista:(LISTA) Recientemente convertida en lista.matriz:(MATRIZ) Matriz existente que ser convertida en una lista.Ejemplo:2$v m 7Smmuestra matrizalista {1 2 3}[1 2 3]No funciona, ya que no se encuentra una primitiva que requiere el procedimiento. En su lugar, puede incluirse en la librera.PARA Matrizalista :mLOCAL "eleSI NO MATRIZ? :m [ALTO]HAZ "num CUENTA :mHAZ "nl []HAZ "ele PRIMERO :mMATRIZALISTA1 :m :ele 1DEVUELVE :nlFINPARA Matrizalista1 :m :ele :vezSI :vez > :num [ALTO]HAZ "nl PONULTIMO ELEMENTO :ele :m :nlMatrizalista1 :m :ele + 1 :vez + 1FD  ? N7SmFIN8v  1[  @COMBINA9 - "7Sm 60COMBINAobjeto COMBINA objeto1 objeto2(Procedimiento de la librera)Si objeto2 es una palabra, devuelve PALABRA objeto1 objeto2.Si objeto2 es una lista, devuelve PONPRIMERO objeto1 objeto2.objeto:(LISTA) Objeto recientemente formado por la combinacin de las entradas.objeto1:(OBJETO) Primer objeto a combinar.objeto2:(OBJETO) Segundo objeto a combinar.J  @W ~7SmEjemplo:muestra combina "a "babmuestra combina "a [b][a b]- @ 8-D@1  I\D@BINVERSOI @Bz €7Sm INVERSOnuevalista INVERSO lista(Procedimiento de la librera)Toma como entrada una lista y devuelve otra con los mismos miembros, pero en orden inverso. nuevalista:(LISTA) Lista recientemente formada.lista:(LISTA) Lista existente que tendr un orden inverso.Ejemplo:muestra inverso [1 2 3][3 2 1]7D@>B1P]>BCGENSYMxBCq 7Sm GENSYMpalabra GENSYM(Procedimiento de la librera)Devuelve una nica palabra. Las palabras tienen la forma G1, G2, etc.palabra:(PALABRA) Smbolo recientemente formado.Ejemplo:haz gensym 1muestra :g11haz gensym "Holamuestra :g2Hola; >BC1 I^CESELECTORESOC@D@ P7Sm SELECTORESCE jeSm(/ƀx"6/ɀ\N='`dW.W.r(PRIMEROPRIMEROSULTIMOMENOSPRIMEROMENOSPRIMEROSMENOSULTIMOELEMENTOMDELEMENTOSACAALAZARQUITAQUITAREPETIDOSENTRECOMILLAS8@DE1)P:_EHPRIMERO6E.Hn 7Sm PRIMEROprimerobjeto PRIMERO objetoprimerobjeto PRI objetoSi la entrada es una palabra, devuelve el primer carcter de la palabra.Si la entrada es una lista, devuelve el primer miembro de la lista.Si la entrada es una matriz, devuelve el origen de la matriz (esto es, el NDICE del primer elemento de la matriz).primerobjeto:(OBJETO) Primer objeto de entrada.objeto:(OBJETO) Objeto existente del que se extraer el primer elemento.aEHZ 7SmEjemplo:escribe primero [1 2 3]1escribe primero "HolaHescribe primero {4 2 3}19.H"I1`"InLPRIMEROS*HLK ̀W7Sm (PRIMEROSprimeroslista PRIMEROS listaDevuelve una lista que contiene los primeros elementos ( PRIMERO )de cada una de las listas de entrada. Se produce un error si algn miembro de la lista de entrada est vaco.primeroslista:(LISTA) Nueva lista con cada uno de los primeros elementos.lista:(LISTA) Lista a partir de la cual se har la extraccin.Ejemplo:muestra primeros [[1 2 3] [a b c]][1 a]""InLR r7SmEjemplo:para transponer :arraysi vacio? primero :array [devuelve []]devuelve ponprimero primeros :array transponer menosprimeros :arrayfinMUESTRA transponer [[1 2 3] [a b c][[1 a] [2 b] [3 c]]7LKL1:]aL,OULTIMO"nLN 7Sm ULTIMOultimoobjeto ULTIMO objetoultimoobjeto UL objetoSi la entrada es una palabra, devuelve el ltimo carcter de la palabra.Si la entrada es una lista, devuelve el ltimo miembro de la lista.ultimoobjeto:(OBJETO) El ltimo objeto de una entrada.objeto:(OBJETO) Objeto existente, a partir del cual se har la extraccin.Ejemplo:escribe ultimo [1 2 3]eL,OG ^<7Sm3escribe ultimo "Holao= NiO1#biOMENOSPRIMERO%,O ؀A7Sm MENOSPRIMEROniO,Ouevoobjeto MENOSPRIMERO objetonuevoobjeto MP objetoSi la entrada es una palabra, devuelve una palabra que contiene todos los caracteres de la palabra, menos el primero.Si la entrada es una lista, devuelve una lista que contiene todos los miembros de la lista de entrada, menos el primero.nuevoobjeto:(OBJETO)objeto:(OBJETO) Ejemplo:muestra menosprimero [1 2 3][2 3]f#iOC VF7Smmuestra menosprimero "Holaola> >1]c>MENOSPRIMEROSF i7Sm 6≂MENOSPRIMEROSnuevalista MENOSPRIMEROS listanuevalista MPS listaToma como entrada una lista formada por varias sublistas y la devuelve con todos los elementos menos los primeros elementos de cada sublista. Vea MENOSPRIMERO. Produce un error si algn miembro de la lista est vaco o es una matriz. nuevalista:(LISTA).lista:(LISTA).Ejemplo:muestra menosprimeros [[1 2 3] [a b c]][[2 3] [b c]]< >1#d4MENOSULTIMO. ԀW7Sm MENOSULTIMOnuevoobjeto MENOSULTIMO objetonuevoobjeto MU objetoSi la entrada es una palabra, devuelve una palabra que contiene todos los caracteres de la entrada, menos el ltimo.Si la entrada es una lista, devuelve una lista que contiene todos los miembros de la entrada, menos el ltimo.nuevoobjeto:(OBJETO).objeto:(OBJETO).Ejemplo:muestra menosultimo [1 2 3][1 2]muestra menosultimo "HolaF4? N7SmHol9m1$emXELEMENTO!4v W7Sm ELEMENTOelemento ELEMENTO ndice objetoSi el segundo argumento (objeto) es una palabra, devuelve el carcter nmero ndice de la palabra; si es una lista, devuelve el miembro nmero ndice de la lista y si es una matriz, devuelve el elemento nmero ndice de la matriz. Un ndice comienza en 1 para palabras y listas y para las matrices se especifica el inicio cuando se crean.elemento:(OBJETO).nmX\ 7Smndice:(ENTERO).objeto:(OBJETO).Ejemplo:muestra elemento 2 [a b c]bmuestra elemento 3 "ABCC; 1[GfMDELEMENTO X{ ĀK7Sm MDELEMENTOelemento MDELEMENTO ndicelista mdmatriz(Procedimiento de la librera)Toma una matriz multidimensional como entrada y devuelve el elemento indicado por su primer argumento.elemento:(OBJETO) El elemento extrado.ndicelista:(LISTA) Los ndices (ENTEROS) que indican el elemento extrado.mdmatriz:(MDMATRIZ) Matriz multidimensional.Ejemplo:muestra mdelemento [2 2] {{0 1} {2 3}}3; 1BgSACAALAZAR{ 7Sm SACAALAZARelemento SACAALAZAR objeto(Procedimiento de la librera)Devuelve un elemento escogido al azar de un objeto de entrada.elemento:(OBJETO) El elemento extrado.objeto:(OBJETO) Objeto del que se extraer el elemento.Ejemplo:Muestra sacaalazar [1 2 3]2muestra sacaalazar [1 2 3]2muestra sacaalazar [1 2 3]3muestra sacaalazar "Holao6+1dGMh+iQUITA3j ̀i7Sm QUITAnuevosobjetos QUITA objeto objetos(Procedimiento de la librera)Toma+j como argumentos dos objetos y devuelve un nuevo objeto igual al que se corresponde con el segundo argumento, pero sin los miembros iguales al primer argumento.nuevosobjetos:(OBJETO) Todos los objetos que no son iguales a objeto.objeto:(OBJETO) El objeto que ser eliminado.objetos:(OBJETO).Objeto del que se extraern elementos.A+m 7SmEjemplo:muestra quita "b [a b c b][a c]muestra quita "o "HolaHlaNo funciona, ya que no se encuentra una primitiva necesaria en el procedemiento. En su lugar, puede incluirse en la librera:PARA quita :objeto :lSI NO MIEMBRO? :objeto :l [ALTO](SI LISTA? :l [HAZ "nl []] [HAZ "nl "])quitar1 :objeto :lDEVUELVE :nlFINPARA quitar1 :objeto :lSI VACIO? :l [ALTO]SI LISTA? :l [SI NO (PRIMERO :l) = :objeto [HAZ "nl PONULTIMO PRIMERO :l :nl ]]yjiE Z7SmSI PALABRA? :l [SI NO (PRIMERO :l) = :objeto [HAZ "nl PALABRA :nl PRIMERO :l ]]quitar1 :objeto MENOSPRIMERO :lFIN?1niQUITAREPETIDOSi ܀+7Sm QUITAREPETIDOSnuevosobjetos QUITAREPETIDOS objetos(Procedimiento de la librera)Devuelve una copia de objetos, pero sin los miembros repetidos. Si dos o ms miembros de la entrada son iguales, slo permanece uno.nuevosobjetos:(OBJETO) Todos los objetos, sin los duplicados.objetos:(OBJETO).Ejemplo:muestra quitarepetidos [a b c b][a c b]muestra quitarepetidos "HelloT v7SmHeloNo funciona, ya que no se encuentra una primitiva necesaria en el procedemiento. En su lugar, puede incluirse en la librera:PARA quitarepetidos :l(SI LISTA? :l [HAZ "nl []] [HAZ "nl "])quitarepetidos1 :lDEVUELVE :nlFINPARA quitarepetidos1 :lSI VACIO? :l [ ALTO]SI NO MIEMBRO? PRIMERO :l MENOSPRIMERO :l [(SI LISTA? :l [HAZ "nl PONULTIMO PRIMERO :l :nl][HAZ "nl PALABRA :nl PRIMERO :l ])]quitarepetidos1 MENOSPRIMERO :lFIN> 1MކjENTRECOMILLAS=w {7Sm ENTRECOMILLAScomillasobjeto ENTRECOMILLAS objeto(Procedimiento de la librera)Devuelve la entrada, si es una lista.Devuelve la entrada con comillas, si es una palabra.comillasobjeto:(OBJETO) Objeto con comillas.objeto:(OBJETO).Ejemplo:muestra "HolaHolamuestra entrecomillas "Hola"Hola: 1r`k;MUTADORES8; :7Sm  BR+ǀG^ %yU'u 㔀.MUTADORESPONELEMENTOMDPONELEMENTO.PONPRIMERO.PONMP.PONELEMENTOAADEPOPCOLADECOLA< w1ކ+lwPONELEMENTO(; ҀM7Sm PONELEMENTOPONELEMENTO ndice matriz valorCambia el valor del elemento nmero ndice de una matriz por un nuevo valor.matriz:(MATRIZ) Matriz en la que se pondr un elemento.ndice:(ENTERO) ndice del elemento que se pondr en la matriz.valor:(OBJETO) Valor del elemento.Ejemplo:haz "mi_matriz (matriz 3 0)ponelemento 2 :mi_matriz 1ponelemento 1 :mi_matriz [2]ponelemento 0 :mi_matriz 3t%wO nJ7Smmuestra :mi_matriz{3 [2] 1}> Q1;` mQJMDPONELEMENTO!~~ ʀG7Sm MDPONELEMENTOMDPONELEMENTO ndicelista mdmQ~atriz valor(Procedimiento de la librera)Cambia el valor de un elemento de una matriz multidimensional (mdmatriz), por un nuevo valor. El elemento se selecciona con el argumento ndicelistamdmatriz:(MATRIZ) Matriz en la que se pondr un elemento.ndicelista:(LISTA) Lista de ndices (ENTEROS) que especifica el lugar donde se pondr el elemento.9Q` 7Smvalor:(OBJETO) Valor del elemento.(No se encuentra en la librera. Se puede incluir:)PARA Mdponelemento :indice :array :valPONELEMENTO ULTIMO :indice (MDELEMENTO MENOSULTIMO :indice :array) :valFINTAPA "MdponelementoEjemplo:haz "mimatriz (creamatriz [2 3] 0)mdponelemento [0 0] :mimatriz 1mdponelemento [0 1] :mimatriz 2mdponelemento [0 2] :mimatriz 3mdponelemento [1 0] :mimatriz 4mdponelemento [1 1] :mimatriz 5mdponelemento [1 2] :mimatriz 62~Ja d7Smmuestra :mimatriz{{1 2 3} {4 5 6}}< 1:+Dn.PONPRIMEROJ_ y7Sm .PONPRIMERO.PONPRIMERO lista valorEsta primitiva cambia el valor del primer elemento de una lista por un nuevo valor. PRECAUCIN: No se recomienda su uso a los no expertos. El uso de .PONPRIMERO puede llevar a listas de estructura cerradas, bucles infinitos; cambios inesperados de los datos de otras estructuras que comparten los datos modificados; y prdida permanente de la memoria si se libera una estructura cerrada.}f 7Smlista:(LISTA).valor:(OBJETO).Ejemplo:haz "milista [1 2 3].ponprimero :milista 0muestra :milista[0 2 3]717 o .PONMP _ 7Sm .PONMP.PONMP lista valorEsta primitiva cambia el valor de los elementos de una lista menos el del primero- por un nuevo valor. PRECAUCIN: No se recomienda su uso a los no expertos. El uso de .PONMP puede llevar a listas de estructura cerrada, bucles infinitos; cambios inesperados de los datos de otras estructuras que comparten los datos modificados; y prdida permanente de la memoria si se libera una estructura cerrada.| f 7Smlista:(LISTA).valor:(OBJETO).Ejemplo:haz "milista [1 2 3].ponmp :milista [a b]muestra :milista[1 a b]=  1Dl p .PONELEMENTOW O j 7Sm .PONELEMENTO.PONELEMENTO ndice matriz valorCambia el elemento nmero ndice de una matriz por un nuevo valor. PRECAUCIN: No se recomienda su uso a los no expertos. El uso de .PONELEMENTO puede llevar a listas de estructura cerrada, bucles infinitos; cambios inesperados de los datos de otras estructuras que comparten los datos modificados; y prdida permanente de la memoria si se libera una estructura cerrada.matriz:(MATRIZ) Matriz en la que se pondr un elemento.e e 7Smndice:(ENTERO) ndice del elemento que se pondr en la matriz.valor:(OBJETO) Valor del elemento.Ejemplo:haz "mimatriz (matriz 3 0).ponelemento 2 :mimatriz 1.ponelemento 1 :mimatriz 2.ponelemento 0 :mimatriz 3muestra :mimatriz{3 2 1}6O 1>qBAADE2(A~ ʀi7Sm uAADEAADE nombrestack objeto(Procedimiento de la librera)Este procedimiento aade un objeto a la pila (nombrestack). El primer argumento(A es una lista, inicialmente vaca. Los nuevos miembros se aaden al principio de la lista. Despus, con POP se pueden sacar los objetos de la pila nombrestack.nombrestack:(PALABRA) Palabra que indica el nombre de la pila.objeto:(OBJETO) Objeto colocado en la pila.Bc 7SmEjemplo:haz "mipila []aade "mipila 1aade "mipila 2muestra :mipila[2 1]muestra pop "mipila2muestra pop "mipila14(AFB1l &rFBDPOP-BsD 57Sm 'POPobjeto POP nombrestack(Procedimiento de la librera)Devuelve el ltimo objeto que entr en la pila, usando AADE, y que sale fuera de la pila. objeto:(OBJETO) Objeto que saldr de la pila.nombrestack:(PALABRA) Palabra que indica el nombre de la pila.Ejemplo:haz "mipila []aade "mipila 1aade "mipila 2muestra :mipila[2 1]muestra pop "mipila2muestra pop "mipilaDFBD? N 7Sm15sDD1(sDGCOLA'DG ڀC7Sm 㔀.COLACOLA nombrecola objeto(Procedimiento de la librera)Aade un objeto a una cola. Una cola es una lista inicialmente vaca, en la que los nuevos miembros se aaden al final de la lista. Despus, con DECOLA el primer objeto sale de la cola.nombrecola:(PALABRA) Palabra con el nombre de una cola.objeto:(OBJETO) Objeto que saldr de la cola.Ejemplo:haz "micola []cola "micola 1aDGZ 7Smcola "micola 2muestra :micola[1 2]muestra decola "micola1muestra decola "micola27GH1&ʅtHJDECOLAG!J 7Sm  DECOLAobjeto DECOLA nombrecola(Procedimiento de la librera)Devuelve el objeto que entr primero en la cola, usando COLA, y que saldr de la cola .objeto:(OBJETO) Objeto que saldr de la cola.nombre:(PALABRA) Palabra que indica el nombre de la cola.Ejemplo:haz "micola []cola "micola 1cola "micola 2muestra :micola[1 2]muestra decola "micola1`HJC V:7Smmuestra decola "micola2C!JJ1(luJ":;\~? )verdad:(BOOLEANO)carcter:(PALABRA).Ejemplo:muestra tienebarra? "afalso: 1 CCONSULTASlC n97Sm [a١>)4yuȀA(k(J1f,<CONSULTASCUENTAASCIICARACTERMIEMBROMINUSCULASMAYUSCULASSTANDOUTANALIZAEJECUTAANALIZAHORAHORAMILI7z1 z"CUENTA#C{ ĀQ7Sm CUENTAnmero CUENTA objetoSi la entrada (objeto) es una palabra, devuelve el nmero de caracteres.Si la entrada (objeto) es una lista o una matriz, devuelve el nmero de miembros o elementos. (Para una matriz puede ser el ndice del ltimo elemento, depende del ndice del primer elemento.) nmero:(NMERO) Cuenta los elementos de un objeto.objeto:(OBJETO). Palabra, lista o matriz.Ejemplo:6z"O nl7Smmuestra cuenta [1 2 3]3muestra cuenta "ab26X1 XDASCIIW"D 7Sm ASCIInmero ASCII carcterDevuelve un nmero (en EEUU, entre 0 y 127) que representa la entrada de un carcter en cdigo ASCII.nmero:(NMERO) cdigo ASCII de la entrada.carcter:(PALABRA) Carcter del que se quiere conocer su cdigo ASCII.Ejemplo:muestra ascXD"ii "a97muestra ascii "A65muestra ascii "b989X}1  }CARACTERD 7Sm CARACTERcarcter CARACTER nmerocarcter CAR nmeroDevuelve el carcter que corresponde a un cdigo ASCII (nmero), entre 0 y 127.carcter:(PALABRA).nmero:(NMERO).Ejemplo:muestra car 97amuestra car 65Amuestra car 98b8}Q1  Q MIEMBRO)z )7Sm "lMIEMBROobjeto MIEMBRO objeto1 objeto2Devuelve parte de una palabra o lista (objeto2) desde la primera aparicin de objeto1 hasta el fin. Vea MIEMBRO?. Devuelve la palabra o lista vaca, si objeto1 no es una parte de objeto2. Se produce un error si objeto2 es una matriz.objeto:(OBJETO).objeto1:(OBJETO).objeto2:(OBJETO).Ejemplo:muestra miembro "b [a b c d]6Q Y l7Sm[b c d]muestra miembro "c [a b c d][c d]; zD1( J D1MINUSCULASz 1s 7Sm MINUSCULASnuevapalabra MINUSCULAS palabraDevuelve una palabra, copia de la palabra de entrada, pero en la que se han cambiado las maysculas por las correspondientes minsculas (En EEU, las letras que van precedidas de una barra a la izquierda no sufren la conversin.) nuevapalabra:(PALABRA).palabra:(PALABRA).Ejemplo:muestra minusculas "Holahola; Dl1$  lU MAYUSCULASv1U s 7Sm MAYUSCULASpalabra MAYUSCULAS palabraDevuelve una palabra, copia de la palabra de entrada, pero en la que se han cambiado las minsculas por las correspondientes maysculas. (En EEU, las letras que van precedidas de una barra a la izquierda no sufren la conversin.) nuevapalabra:(PALABRA).palabra:(PALABRA).Ejemplo:muestra mayusculas "HolaHOLA9l 1J  % STANDOUTHU % O n7Sm STANDOUTpalabra STANDOUT objeto(No soportada en MSWLogo aun)8 ] 1+ R ] P ANALIZAJ% P  7Sm ,Ik㘛I,IANALIZAlista ANALIZA palabraToma una palabra como entrada y la devuelve como lista, como si hubiese sido leda mediante LEELISTA. Esto es, ANALIZA LEEPALABRA tiene el mismo valor que LEELISTA para la misma entrada.lista:(LISTA).palabra:(PALABRA).Ejemplo:muestra analiza "Hola[Hola]?]  1 P  EJECUTAANALIZA}P   ̀7Sm EJECUTAANALIZAlista EJECUTAANALIZA objetoDevuelve la lista que resultara si la entrada (palabra o lista) hubiera sido una lnea de instrucciones.lista:(PALABRA).objeto:(OBJETO).Ejemplo:muestra ejecutaanaliza "a) en la ventana de dilogo>[Hola, cmo ests?]; 1P1&  P;LEEPALABRA-}] 7Sm 9LEEPALABRApalabra LEEPALABRA palabra LPLee una lnea desde el lector de cadenas y devuelve esa lnea como una palabra. Devuelve una palabra aunque la lnea tenga espacios, corchetes, etc. si se lee de un fichero y se llega al final, LEEPALABRA devuelve una lista vaca (no una palabra vaca). LEEPALABRA procesa barras a la izquierda, barras verticales, y caracteres tipo tilde. En caso de una tilde usada para la continuacin de una lnea, la palabra de salida incluye la tilde y los caracteres de nueva lnea, as el usuario del programa puede saber exactamente lo que escribi. La salida respeta tambin las barras verticales. Los programas pueden usar TIENEBARRA? para chequear el cdigo. lP;R t7Smpalabra:(PALABRA).Ejemplo:muestra leepalabra) en la ventana de dilogo>Hola8}s1%  s`LEECARC9;h 7Sm ,I㘛ILEECARCcarcter LEECARCLee un slo carcter de una cadena y lo devuelve como una palabra (carcter). Si la cadena se lee desde un fichero, y se lee el final del fichero, LEECARC devuelve una lista vaca. Si la cadena se lee desde un terminal, y se llama a LEECARC no devuelve la palabra carcter hasta que se llame a LEELISTA o LEEPALABRA. Las barras a la izquierda y verticales, y los caracteres tipo tilde no tienen un tratamiento especial.bs`R t7Smcarcter:(PALABRA) Ejemplo:muestra leecarc) en la ventana de dilogo>H91  7LEECARCSH`w 7Sm mWLEECARCSpalabra LEECARCS nmeropalabra LCS nmero(No soportado por MSWLogo cuando la lectura es desde el teclado), Ver PONTECLADO)Lee un nmero de caracteres desde el lector de cadenas y devuelve esos caracteres como una palabra. Si se lee de un fichero y se llega al final, LEECARCS devuelve una lista vaca (no una palabra vaca). Las barras a la izquierda y verticales, y los caracteres tipo tilde no tienen un tratamiento especial.V7c 7Smpalabra:(PALABRA).nmero:(ENTERO).Ejemplo:abre "dummy.filponescritura "dummy.filescribe "Holaponescritura []cierra "dummy.filponescritura "dummy.filponlectura "dummy.filmuestra lcs 4Holaponlectura []cierra "dummy.fil6m1* K maSHELL7am 7Sm SHELLverdad SHELL ordenDevuelve el resultado de la orden que se ejecuta tras la orden shell. Si la orden est en una lista en la lnea de instrucciones, y si se quiere enviar un carcter backslash, se debe usar \\. Devuelve VERDADERO o FALSO, segn el xito de la operacin.verdad:(BOOLEANO).orden:(OBJETO).Ejemplo:muestra shell [notepad c:\\test.txt]verdadero?m1 [ Comunicaciones&na >7Sm c?/㛿ʃ^6lA5hX"SComunicacionesTodas las rdenes tipo xxxxxPORT se refieren al puerto serie (RS-232) y paralelo. Todas las rdenes LEEx o ESCRIBEx se refieren al "hardware" del puaerto de comunicaciones..ABREPUERTOCIERRAPUERTOLIMPIAPUERTOMODOPUERTOLEECADENAPUERTOLEECARACTERPUERTOESCRIBECADENAPUERTOESCRIBECARACTERPUERTOLEEPUERTO2[ ܀7Smÿȯـ5G6jjjESCRIBEPUERTO2LEEPUERTOESCRIBEPUERTOCARGADLLLLAMADLLQUITADLL; 1K  ABREPUERTO# :G7Sm A5^6lhXʃ/"SÿABREPUERTOABREPUERTO puertoEsta orden se usa para acceder a los puertos series y paralelo. El puerto deseado se abre para lectura con (LEECARACTERPUERTO o LEECADENAPUERTO) y para escritura con (ESCRIBECARACTERPUERTO o ESCRIBECADENAPUERTO). Las caractersticas del puerto se fijan con MODOPUERTO. En todo momento slo puede abrirse un puerto que se cierra con CIERRAPUERTO. No se debe confundir esta orden con LEEPUERTO2 y ESCRIBEPUERTO2 referentes al "hardware" del puerto de comunicaciones.L f 7Smpuerto:(PALABRA) El nombre del puerto que se quiere abrir (p.e. COM1-COM4 y LPT1-LPT3)Ejemplo:abrepuerto "com1cierrapuerto= 1 [ | CIERRAPUERTOxW ~7Sm c?CIERRAPUERTOCIERRAPUERTOCierra el puerto abierto con ABREPUERTO.Ejemplo:abrepuerto "com1cierrapuerto= 1i I LIMPIAPUERTO,_ 7Sm LIMPIAPUERTOLIMPIAPUERTO colaEsta orden se usa para limpiar la cola del puerto de lectura o escritura.cola:(ENTERO) La cola a limpiar 0 (escritura) y 1 (lectura).Ejemplo:limpiapuerto 1; I13| IAMODOPUERTOAa /7Sm MODOPUERTOMODOPUERTO modoSe usa para fijar el modo (velocidad, paridad, bits de datos, y bits de parada) del puerto.Observe que estas caractersticas (tanto velocidad como flujo de control) pueden fijarse tambin a travs del icono PUERTOS del Panel de Control.modo:(PALABRA): ("COMn:VELOCIDAD, PARIDAD, DATOS, PARADA). Igual forma en modo DOS.Ejemplo:modopuerto "com1:9600,n,8,1@I1yI LEECADENAPUERTO~A 7Sm LEECADENAPUERTOactual LEECADENAPUERTO contador bufferLee el puerto abierto y escribe los datos en el buffer. Intentar leer todos los caracteres que indique contador y que estn disponibles. Devuelve el nmero de bytes ledos.actual:(ENTERO).contador:(ENTERO) buffer:(ARRAY)Ejemplo:(El procedimiento map1 de la librera no funciona)abrepuerto "com1escribe frase [Enviando...] escribecadenapuerto 3 listaamatriz map1 [ascii ?] matrizalista listaamatriz "at) S7SmEnviando... 2muestra escribecaracterpuerto 131espera 60haz "buff {0 0 0 0 0 0 0 0 0 0}escribe frase [Recibiendo...] leecadenapuerto 10 :buffRecibiendo... 9escribe frase [Datos Rx...] map1 [car ?] quita [] matrizaalista :buffDatos Rx... at | |O K |cierrapuertoB1 + LEECARACTERPUERTOIQ{ Ā7Sm LEECARACTERPUERTOdatos LEECARACTERPUERTOEsta orden leer un byte del puerto abierto y devolver un entero. Un resultado "-1" inQdica que el carcter no est disponible.datos:(ENTERO).Ejemplo:abrepuerto "com1muestra escribecaracterpuerto ascii "a1muestra escribecaracterpuerto ascii "t1muestra escribecaracterpuerto 131espera 60escribe "Leyendo...Leyendo...repite 10 [haz "x leecaracterpuerto si no :x = -1 [muestrat car :x]]}+R tV7Smescribe ".at||OK|.cierrapuertoDQ1  ESCRIBECADENAPUERTO5w k7Sm ESCRIBECADENAPUERTOactual ESCRIBECADENAPUERTO contador bufferEsa primitiva escribir en el puerto, previamente abierto, los datos que se encuentran en el buffer de cadenas. Intentar escribir el mayor nmero posible de caracteres (contador). Devuelve el nmero actual de bytes escritos.actual:(ENTERO) Es el nmero actual de bytes escritos en el puerto.contador:(ENTERO) Es el nmero de caracteres que se quiere escribir en el puerto. Se puede usar un nmero mayor que el tamao de la cadena si quiere descargar la cadena completa."s _7Smbuffer:(CADENA) Es un buffer en el que se lee los datos de salida.Ejemplo:(El procedimiento map1 de la librera no funciona)abrepuerto "com1escribe frase [Enviando...] escribecadenapuerto 3 listaamatriz map1 [ascii ?] matrizalista listaamatriz "atEnviando... 2muestra escribecaracterpuerto 131espera 60haz "buff {0 0 0 0 0 0 0 0 0 0}escribe frase [Recibiendo...] leecadenapuerto 10 :buffRecibiendo... 9}o 7Smescribe frase [Datos Rx...] map1 [car ?] quita [] matrizalista :buffDatos Rx... at | |O K |cierrapuertoF1+  q ESCRIBECARACTERPUERTO0B { Āk7Sm ESCRIBECARACTERPUERTOactual ESCRIBECARACTERPUERTO datosEsta orden escribir un byte de datos en el puerto previamente abierto y devolver el actual nmero de bytes escritos (0 o 1).actual:(ENTERO) Es el nmero de bytes escritos (0 o 1).datos:(ENTERO) Es el byte de datos que se escribe en el puerto.Ejemplo:abrepuerto "com1muestra escribecaracterpuerto ascii "a1muestra "y escribecaracterpuerto ascii "t/q i 7Sm1muestra "y escribecaracterpuerto 131espera 60escribe "Leyendo...LEYENDO...repite 10 [haz "x leecaracterpuerto so no :x = -1 [muestrat car :x]]escribe ".at||OK|.cierrapuerto; B  1Q 1 LEEPUERTO2Zq  7Sm c?A5ȯـÿLEEPUERTO2datos LEEPUERTO2 identificador_de_puertoEsta orden leer 2 bytes (16 bits) del especificado identificador_de_puerto y devolver los datos como un entero. El identificador_de_puerto especifica un puerto del "Hardware". No debe confundirse esta orden con ABREPUERTO y LEECARACTERPUERTO que sirven para las comunicaciones a travs de los puertos Serie y Paralelo. Vea tambin LEEPUERTO y ESCRIBEPUERTO2.d X 7Smdatos:(ENTERO).Identificador_de_puerto:(ENTERO).Ejemplo:muestra leepuerto2 19825730?1 ?BESCRIBEPUERTO2ANA _7Sm c?hX5G"SESCRIBEPUERTO2ESCRIBEPUERTO2 identificador_de_puerto datosEsta orden escribir 2 bytes de datosNA en el especificado identificador_de_puerto. El identificador_de_puerto se refiere a un Puerto "Hardware". No se debe confundir esta orden con ABREPUERTO y ESCRIBECARACTERPUERTO que sirven para las comunicaciones a travs de los puertos Serie y Paralelo. Vea tambin ESCRIBEPUERTO y LEEPUERTO2.?BR r?7SmIdentificador_de_puerto:(ENTERO) Especifica en qu puerto hardware se escribir.datos:(ENTERO) Los 2 bytes de datos.Ejemplo:Escribepuerto2 198 0: NAyB1K1 Ƃ yBELEEPUERTOX?BD 7Sm c?A5"S5GLEEPUERTOdatos LEEPUERTO identificador_de_puertoEsta primitiva leer 1 byte (carcter) desde el especificado identificador_de_puerto y devolver los datos como un entero. El identificador_de_puerto especifica un Puerto "Hardware". No se debe confundir esta orden con ABREPUERTO y LEECARACTERPUERTO que sirven para las comunicaciones a travs de los puertos Serie y Paralelo. Vea tambin LEEPUERTO2 y ESCRIBEPUERTO.ayBEX 7Smdatos:(ENTERO).Identificador_de_puerto:(ENTERO).Ejemplo:muestra leepuerto 198130> DE1, ф EHESCRIBEPUERTODE H e7Sm c?hXÿȯـESCRIBEPUERTOESCRIBEPUERTO identificador_de_puerto datosEsta primitiva escribir los datos como 1 byte en el identificador_de_puerto especificado. El identificador_de_puerto especifica un Puerto "Hardware". No se debe confundir esta orden con ABREPUERTO y ESCRIBECARACTERPUERTO que sirven para las comunicaciones a travs de los puertos Serie y Paralelo. Vea tambin ESCRIBEPUERTO2 y LEEPUERTO.YEHQ r7SmIdentificador_de_puerto:(ENTERO).datos:(ENTERO).Ejemplo:escribepuerto 198 09 HH13Ƃ S HJCARGADLLHJx 7Sm jjCARGADLLCARGADLL nombre_libreraEsta orden carga la DLL (Dynamic Linked Library) de nombre nombre_libreria en MSWLogo. Una vez cargada, se puede llamar a las funciones con LLAMADLL y una vez haya concluido el trabajo con la DLL o necesite utilizar otra DLL, debe cerrar la DLL con QUITADLL.Nombre_librera:(PALABRA).Ejemplo:cargadll "user.exequitadll9H"K1ф "KLLAMADLLtJN ΀7Sm 6jLLAMADLLestado LLAMADLL funcinEsta primitiva llama a una determinada funcin y devuelve el tipo. Pasar los argumentos arg1 como type1 y arg2 como type2 y as sucesivamente. La funcin debe estar en la DLL previamente cargada con CARGADLL. Debe contener 4 apartados (tipo funcin tipo1 arg1) aunque no se use arg1. Esta primitiva es conocida por los usuarios experimentados que debe conocer las convenciones de uso porque si no est de acuerdo la lista de argumentos con el modo de llamada, Windows responder de forma imprevisible (incluyendo la cada de Windows). Con esta primitiva se puede manejar un n variado de funciones, aunque no todas. Observe que si la lista de argumentos es "void" debe usar [... "v 0].J"K i7SmObserve que en Win32 los argumentos tienen un orden inverso.status:(Tipo) Valor devuelto por la funcin de un determinado tipo especificado en la entrada.funcin:(LISTA) Con el formato [tipo funcin NJtipo1 arg1 tipo2 arg2 tipo3 arg3 ...] donde:tipo:(PALABRA) Especifica el tipo de funcin o de argumento. Donde:vvoidwPALABRAlDPALABRAfDOUBLEsLPSTR.funcin:(PALABRA) Es el nombre de la funcin.NJ b7Smarg:(OBJETO): Casi todos los objetos LOGO tienen un tipo apropiado. Ejemplo:cargadll "user.exellamadll [w messagebox w 0 s MyMessage s [Hola How are you] w 0]quitadll951S F 5 QUITADLL X ~7Sm 6jQUITADLLQUITADLLEsta orden cierra la DLL previamente cargada con CARGADLL.Ejemplo:CARGADLL "user.exeQUITADLL@5M1  MTECLADO y RATN  {7Sm 1`!mWPȠ8 ƀ&CC};l0=ACCESO al TECLADO y al RATNTECLAPONTECLADOQUITATECLADOLEECARPONRATONQUITARRATONPOSRATONBORRATEXTOPONCURSORCURSORPONMARGENES6M1F t ޅTECLAqޅQ r7Sm mWTECLATECLA(No soportada en MSWLogo, vea PONTECLADO)Devuelve VERDADERO si se ha pulsado una tecla. ; 1i  GPONTECLADO+ޅ{ ĀW7Sm ȠR:o?PONTECLADOPONTECLADO tecla_pulsada(PONTECLADO tecla_bajada tecla_liberada)Esta orden captura los eventos del teclado. Para obtener el carcter pulsado se llama a LEECAR en modo directo o desde un procedimiento. Observe que la ventana Pantalla de MSWLogo debe tener el foco (NO la ventana de trabajo), lo que se logra con PONFOCO [Pantalla de MSWLogo ]. La segunda forma detecta independientemente los sucesos de tecla bajada y liberada. Observe que todos los "callbacks" por teclado se ejecutan en modo EXCLUSIVO.$Gd I7SmTecla_bajada:(LISTA) Lista de rdenes LOGO que se ejecuta cuando se presiona una tecla.Tecla_liberada:(LISTA) Lista de rdenes LOGO que se ejecuta cuando se deja de presionar una tecla.Ejemplo:ponteclado [es car leecar]ponfoco [Pantalla de MSWLogo]abquitateclado= 1Wt  QUITATECLADOG] {7Sm QUITATECLADOQUITATECLADOEsta orden desactiva la captura de los eventos del teclado.Ejemplo:ponteclado [es car leecar]ponfoco [Pantalla de MSWLogo]abquitateclado7Ջ1  ՋLEECARcu 7Sm LEECARtecla LEECARtecla LCEsta primitiva devuelve el valor de la tecla presionada o liberada.tecla:(ENTERO) El valor ASCII correspondiente a la ltima tecla pulsada..ponteclado [es car leecar]ponfoco [Pantalla de MSWLogo]abquitatecladoRecuerde que "Pantalla de MSWLogo " debe tener el foco cuando se pulse una tecla.9Ջ1 PONRATON )7Sm Co?PONRATONPONRATON boton_izquierdo_abajo boton_izquierdo_arriba boton_derecho_abajo boton_derecho_arriba moverPONRATON boton_izq_abajo boton_izq_arriba boton_der_abajo boton_der_arriba moverEsta orden captura los eventos del ratn. Para obtener la posicin del ratn usar POSRATON. Observe que la ventana "Pantalla de MSWLogo" debe tener el foco (NO la ventana de trabajo) para poder capturar los eventos del ratn . Observe que todas las "callbacks" del ratn se ejecutan en modo EXCLUSIVO .Y 7Smboton_izq_abajo:(LISTA) Lista de rdenes LOGO que se ejecutan cuando se presiona el botn izquierdo del ratn.boton_izq_arriba:(LISTA) Lista de rdenes LOGO que se ejecutan cuando se libera el botn izquierdo del ratn. boton_der_abajo:(LISTA) Lista de rdenes LOGO que se ejecutan cuando se presiona el botn derecho del ratn. boton_der_arriba:(LISTA) Lista de rdenes LOGO que se ejecutan cuando se libera el botn derecho del ratn. 3I `7Smmover:(LISTA) Lista de rdenes LOGO (o de nombres de procedimientos) que se ejecutan cuando se mueve el puntero del ratn. Ejemplo:subelapizponraton [ponpos posraton bajalapiz] [subelapiz] [] [] [ponpos posraton]quitarraton< .1@ g .2QUITARRATON2M ho7Sm QUITARRATONQUITARRATONDesactiva la captura de los eventos del ratn.Ejemplo:subelapizponraton [ponpos posraton bajalapiz] [subelapiz] [] [] [ponpos posraton]quitarraton9.k1 k#POSRATONQ2#g 7Sm 8 ƀPOSRATONposicin POSRATONDevuelve la posicin del puntero del ratn, tras el ltimo evento. Previamente se utiliz PONRATON.posicin:(LISTA) Con la posicin ([x y]) del puntero del ratn, tras su ltimo evento.Ejemplo:subelapizponraton [ponpos posraton bajalapiz] [subelapiz] [] [] [ponpos posraton]quitarraton; k^1<g e ^_BORRATEXTO#_T v[7Sm BORRATEXTOBORRATEXTOBTBorra el texto. En MSWLogo borra las salidas/rdenes de la caja de listas de la ventana Trabajo.Ejemplo:escribe "HolaHolaborratexto: ^1 SETCURSORi(_A RP7Sm SETCURSOR(No soportado en MSWLogo)791e 9CURSORp-C VZ7Sm CURSORCURSOR(No soportado en MSWLogo)< 91 fPONMARGENES>fC V|7Sm PONMARGENESPONMARGENES vector(No soportado en MSWLogo); 1S ARITMTICAf ހ!7Sm ɒ#v?pjSN &ARITMTICAOPERACIONES NumricasPREDICADOS (Aritmtica)NMEROS ALEATORIOSESCRIBIR CON FORMATOOPERACIONES CON BITSF1| ه 5OPERACIONES NUMRICAS8 >7Sm 9Cp sYaI 1s㿹W}.+Lj+Eㅞ}y{- OPERACIONES NUMRICASSUMADIFERENCIACAMBIASIGNOPRODUCTODIVISIONRESTOENTEROREDONDEAABSSIGNORAIZCUADRADAPOTENCIAEXPLOGLNPITANRADTANSENj5 *7Sm/{- 㓎v{-Ӧ땎啎i.RsRADSENCOSRADCOSARCTANRADARCTANARCSENRADARCSINARCCOSRADARCCOS5j1 !jSUMA5 7Sm j5SUMAnmero SUMA nmero1 nmero2nmero (SUMA nmero1 nmero2 nmero3 ...)nmero1 + nmero2Devuelve la suma del valor numrico de las entradas.La segunda forma (con parntesis) se utiliza cuando suma lleva ms de dos entradas.nmero:(NMERO) Resultado de la suma.nmero1:(NMERO) Primer sumando.nmero2:(NMERO) Segundo sumando.Ejemplomuestra 2 + 3h!jG ^B7Sm5muestra (suma 4 6 8 9)27; 71ه 7DIFERENCIAU 7Sm DIFERENCIAnmero DIFERENCIA nmero1 nmero2nmero1 - nmero2Devuelve la diferencia del valor numrico de las entradas. En la segunda forma debe utilizarse con cuidado para no obtener resultados inesperados.nmero:(NMERO) Resultado de la diferencia.nmero1:(NMERO) Minuendo.nmero2:(NMERO) Sustraendo.Ejemplo:muestra 3 - 21muestra 7-52muestra 7 -597H `r7Sm7No me has dicho qu hacer con -5muestra 7- 52< U1!CAMBIASIGNO@R[ 7Sm CAMBIASIGNOnegativo CAMBIASIGNO nmero- nmeroEn la primera forma (CAMBIASIGNO) devuelve el opuesto del valor numrico de la entrada. En la segunda forma devuelve tambin el opuesto de la entrada cuando est inmediatamente seguido por la entrada y precedido por un espacio, aunque tambin se emplea como operador de la substraccin. Hay que llevar cuidado con la utilizacin de - para no obtener resultados inesperados.Cambiasigno 3 + 4 = -(3 + 4)= -3 4 = -7<K fx7Sm- 3 + 4= (-3)+4= 1Ejemplo:muestra 2 - -3; 2 + 359R1Mn& PRODUCTOi&  $7Sm PRODUCTOnmero PRODUCTO nmero1 nmero2nmero (PRODUCTO nmero1 nmero2 nmero3 ...)nmero1 * nmero2Devuelve el producto de los valores numricos de las entradas.nmero:(NMERO) Resultado del producto.nmero1:(NMERO) Primer factor.nmero2:(NMERO) Segundo factor.Ejemplo:muestra 2 * 36muestra producto 4 5209_ 1_  DIVISIONE&  x 7Sm DIVISIONnmero DIVISION nmero1 nmero2nmero (DIVISION nmero2)nmero1 / nmero2Devuelve el cociente de la divisin de los valores numricos de las entradas. El resultado nicamente es un entero si el dividendo es mltiplo del divisor. (En otras palabras, DIVISION 5 2 es 2.5, no 2, pero DIVISION 4 2 es 2, no 2.0 ). En la segunda forma, entre parntesis, se supone que el dividendo es 1. nmero:(NMERO) Resultado de la divisin._  m G7Smnmero1:(NMERO) Dividendo.nmero2:(NMERO) Divisor.Ejemplo:muestra 6 / 32muestra 3 / 21.5muestra division 12 26muestra (division 4)0.256  1 n  @RESTOV  @ 7Sm RESTOnmero RESTO nmero1 nmero2Devuelve el resto de la divisin entre nmero1 y nmero2; ambos nmeros deben ser enteros y el resultado es un entero con el mismo signo que nmero2.nmero:(ENTERO) Resto.nmero1:(ENTERO) Dividendo.nmero2:(ENTERO) Divisor.Ejemplo:muestra resto 6 42muestra resto 6 20  @ 7 C@1@8C@9DENTEROi @Cm 7Sm 1sENTEROentero ENTERO nmeroDevuelve la entrada, sin la parte decimal, es decir, un entero con el mismo signo que la entrada, cuyo valor absoluto es menor o igual al valor absoluto de la entrada.entero:(ENTERO).nmero:(NMERO).Nota: La computadora representa los nmeros en dos formatos diferentes, enteros y nmeros con parte decimal. En la mayora de las computadoras el nmero mayor que se puede representar como entero es menor que el nmero mayor que se puede representar en coma flotante. ENTERO devuelve siempre un nmero entero, pero si su valor es mayor del admitido para los enteros, la salida no podr estar en ese formato. En ese caso no podr utilizarse con el valor devuelto RESTO ya que requiere un entero como entrada.<C@9DQ rx7SmEjemplo:muestra entero 8.28muestra entero 8.789CrD1rDEREDONDEAZ9DEu 7Sm REDONDEAentero REDONDEA nmeroDevuelve el entero ms cercano al valor numrico de la entrada.entero:(ENTERO) Resultado del redondeo.nmero:(NMERO).Ejemplo:muestra redondea 8.28muestra redondea 8.794rDF18FLGABSLELGy 7Sm ABSnmero ABS nmero1(Procedimiento de la librera)Devuelve el valor absoluto de la entrada.nmero:(NMERO) Valor absoluto.nmero1:(NMERO).Ejemplo:muestra abs 55muestra abs -556FG1*G:ISIGNO:LG:I~ ʀu7Sm SIGNOentero SIGNO nmero(Procedimiento de la librera)Devuelve el signo de la entrada (-1 si es negativo, 0 si es cero, 1 si es positivo). entero:(ENTERO) Resultado que indica el signo de la entrada.nmero:(NMERO).Ejemplo:muestra signo 51muestra signo 00muestra signo -98.6-1= GwI1OwIKRAIZCUADRADA%:IK ҀK7Sm RAIZCUADRADAnmero RAIZCUADRADA nmero1nmero RC nmero1Devuelve la raz cuadrada del valor numrico de la entrada que, como es sabido, no puede ser un nmero negativo.nmero:(NMERO).nmero1:(NMERO) Ejemplo:muestra raizcuadrada 42muestra raizcuadrada 939wIWK1*oWK MPOTENCIA K M A7Sm POTENCIAnmero POTENCIA nmero1 nmero2Devuelve nmero1 elevado a la potencia nmero2. Si nmero1 es negativo, nmero2 debe ser un entero.nmero:(NMERO).nmero1:(NMERO). Base de la potencianmero2:(NMERO) Exponente.Ejemplo:muestra potencia 2 384WK=M1Ou=MNEXP MN ̀ 7Sm EXPnmero EXP nmero1Devuelve el nmero e (2.718281828+) elevado a la potencia nmero1.nmero:(NMERO) Resultado de elevar e a la potencia nmero1nmero1:(NMERO) Exponente al que se eleva e.Ejemplo:muestra exp 27.389056098930654=MN1&oNLOGN /7Sm LOGnmero LOG1 nmero1Devuelve el logaritmo comn de nmero1. Esto es, 10 elevado a un nmero = nmeroNN1, donde nmero es el valor devuelto.nmero:(NMERO) Resultado del logaritmo de nmero1.nmero1:(NMERO).Ejemplo:log 10log 101log 10023N1u {LN { 7Sm LNnmero LN nmero1Devuelve el logaritmo natural de nmero1. Esto es, el nmero e (2.718281828+) elevado a nmero = nmero1, donde nmero es el valor devuelto.nmero:(NMERO).nmero1:(NMERO).Ejemplo:muestra ln 10muestra ln exp 1131PIG{@ P7Sm PIm,bA RX7Smnmero PI(Procedimiento de la librera)E@ P 7Sm bS t 7SmDevuelve el valor del nmero pi (3.141592653589793227020265931059839203954)nmero:(NMERO).Ejemplo:muestra radsen pi/2141 WTANW %7Sm {-TANnum TAN nguloDevuelve la tangente de ngulo en grados. Vea tambin RADTAN.num:(NMERO) El valor de la tangente.ngulo:(NMERO) ngulo del que se va a obtener la tangente.Ejemplo:muestra tan 00muestra tan 90Errormuestra tan 45171RADTANW 7Sm RADTANnmero RADTAN nguloDevuelve la tangente de ngulo, en radianes. Vea tambin TAN.nmero:(NMERO) La tangente de la entrada.ngulo:(NMERO).Ejemplo:muestra radtan 00muestra radtan pi/2ERRORmuestra radtan pi/414R1RĉSENrĉ 7Sm /{-SENnmero SEN nguloDevuelve el seno de ngulo, en grados. Vea tambin RADSEN.nmero:(NMERO) El seno de la entrada.ngulo:(NMERO).Ejemplo:muestra sen 00muestra sen 901muestra sen 18007R1RADSENĉ 7Sm RADSENnmero RADSEN nguloDevuelve el seno de ngulo en radianes. Vea tambin SIN.nmero:( NMERO) el seno de la entrada.ngulo:( NMERO) ngulo en radianes.Ejemplo:muestra radsen 00muestra radsen pi/21muestra radsen pi041OCOSO 7Sm v{-COSnmero COS nguloDevuelve el coseno de ngulo en grados. Vea tambin RADCOS.nmero:( NMERO) El coseno de la entrada.ngulo:( NMERO) ngulo en grados .Ejemplo:muestra cos 01muestra cos 900muestra cos 180-171,RADCOSO, #7Sm 㓎RADCOSnmero RADCOS nguloDevuelve el coseno de ngulo en radianes. Vea tambin COS.nmero:( NMERO) El coseno de la entrada.ngulo:( NMERO) El ngulo en radianes.Ejemplo:muestra radcos 01muestra radcos pi/20muestra radcos pi-17c1&ccARCTANJ,c "7Sm 땎cc,ARCTANngulo ARCTAN nmerongulo (ARCTAN x y)Con una entrada, devuelve el arco tangente de la entrada, en grados.Con dos entradas, devuelve el arco tangente en grados de y/x.Vea tambin RADARCTAN.ngulo:(NMERO).nmero:(NMERO).x:(NMERO).y:(NMERO).Ejemplo:muestra arctan 145: c1IeRADARCTANec "7Sm ӦRADARCTANngulo RADARCTAN nmerongulo (RADARCTAN x y)Con una entrada, devuelve el arco tangente en radianes de la entrada.Con dos entradas, devuelve el arco tangente en radianes de y/x.Vea tambin ARCTAN.ngulo:(NMERO).nmero:(NMERO).x:(NMERO).y:(NMERO).Ejemplo:muestra (radarctan 1) = pi/4verdadero71;:ARCSENW: Ѐ7Sm 啎ARCSENngulo ARCSEN nmeroDevuelve el arco seno en grados de la entrada. Vea tambin RADARCSEN.ngulo:(NMERO).nmero:(NMERO).Ejemplo:muestra arcsen 0.530muestra arcsen sen 4545: t1etRADARCSENM:y 7Sm RADARCSENngulo RADARCSEN nmeroDevuelve el arco seno en radianes de la entrada. Vea tambin ARCSEN.ngulo:(NMERO).nmero:(NMERO).Ejemplo:muestra (radarcsen 1) = pi/2verdadero7t1Y;ARCCOS"r a7Sm RsARCCOSngulo ARCCOS nmeroDevuelve el arco seno en grados de la entrada. Vea tambin RADARCCOS.Ejemplo:muestra arccos 0.560muestra arccos cos 4545: T1TRADARCCOS[y 7Sm i.RADARCCOSngulo RADARCCOS nmeroDevuelve el arco seno en radianes de la entrada. Vea tambin ARCCOS.ngulo:(NMERO).nmero:(NMERO).Ejemplo:muestra (radarccos (raizcuadrada 2)/2) = pi/4verdaderoHT1քPREDICADOS (Artmetica)5` j7Sm 7(?dPREDICADOS (Aritmticos)MENOR?MAYOR?71eMENOR?e '7Sm MENOR?verdad MENOR? nmero1 nmero2nmero1 < nmero2Devuelve VERDADERO si la primera entrada es menor que la segunda.verdad:(BOOLEANO) Prueba de verdad.nmero1:(NMERO).nmero2:(NMERO).Ejemplo:muestra 1 < 2verdaderomuestra 2 < 1falso71ք<MAYOR?e< #7Sm MAYOR?verdad MAYOR? nmero1 nmero2nmero1 > nmero2Devuelve VERDADERO si el primer nmero es mayor que el segundo.verdad:(BOOLEANO) Prueba de verdad.nmero1:(NMERO).nmero2:(NMERO).Ejemplo:muestra 2 > 1verdaderomuestra 1 > 2falsoC1%NMEROS ALEATORIOS+<Z V7Sm 㗟-ހNMEROS ALEATORIOSAZARREAZAR5919AZAR 7Sm AZARnmero AZAR nmero1Devuelve un nmero aleatorio,9 entero positivo menor que la entrada que debe ser un nmero entero.nmero:(ENTERO) Nmero aleatorio.nmero1:(ENTERO).Ejemplo:repite 5 [muestra azar 10]68309791%{GREAZAR43c 7Sm 㗟-㗟-REAZARREAZAR(REAZAR semilla)Esta primitiva reproduce los resultados de AZAR . Generalmente la secuencia de nmeros aleatorios es distinta cada vez que se usa. Si necesita repetidamente la misma secuencia de nmeros pseudo-aleatorios, debe llamar a REAZAR antes de llamar a AZAR. Si necesita ms de una secuencia repetida, puede llamar a REAZAR con una entrada de nmero entero; cada posible entrada selecciona una a nica secuencia de nmeros.Gj U7Smsemilla:(ENTERO) Semilla generadora de nmeros aleatorios.Ejemplo:reazar 1234repite 2 [muestra azar 10]62reazar 1234repite 2 [muestra azar 10]62E31ESCRIBIR CON FORMATOx+GM jV7Sm \ESCRIBIR CON FORMATOFORMATONUMERO> B1{B FORMATONUMEROG| ƀ7Sm FORMATONUMEROpalabra FORMATONUMERO nmero ancho precisinDevuelve una palabra que representa un nmero, posiblemente precedido por espacios (y por ello no es un nmero con el que se pueda efectuar operaciones aritmticas), con tantos caracteres como indique ancho, y con los dgitos despus del punto decimal que indique precisin. (Si "precisin" es 0, la salida no tendr punto decimal.)palabra:(Palabra) Nmero con formato.#B  ̀I7Smnmero:(NMERO).ancho:(ENTERO) Anchura mnima, incluyendo el punto decimal.precisin:(ENTERO) Nmero de dgitos tras el punto decimal.Ejemplo:muestra formatonmero 123.1 10 10123.1000000000Para comprobar el funcionamiento, (FORMATONUMERO nmero -1) :para hex :numerodevuelve formatonumero :numero -1 "|%08X %08X|finEjemplo:muestra formatonumero 99.99 -1 "|%08X %08X|0000C28F 000028F5? < H7SmE 0 1;0 & OPERACIONES CON BITSh &  7Sm k(^Z"͓5tOPERACIONES CON BITSBITYBITOBITXORBITINVERSODESPLAZADESPLAZAIZQUIERDA50 [ 1H[ n BITYl& n  7Sm BITYnmero BITY nmero1 nmero2nmero (BITY nmero1 nmero2 nmero3 ...)Devuelve el resultado de la operacin Y tomando como datos los valores enteros de las entradas.nmero:(ENTERO) Resultado de la operacin Y.nmero1:(ENTERO).nmero2:(ENTERO).Ejemplo:muestra bity 5 2; 101 y 010 = 00muestra bity 5 1; 101 y 1 = 115[  1FV  BITOjn  7Sm BITOnmero BITO nmero1 nmero2nmero (BITO nmero1 nmero2 nmero3 ...)Devuelve el resultado de la operacin O con los valores enteros de las entradas.nmero:(ENTERO) Resultado de la operacin O.nmero1:(ENTERO).nmero2:(ENTERO).Ejemplo:muestra bito 5 2; 101 O 10 = 111 = 77muestra bito 5 1; 101 O 1= 101 = 5 57  @1 @mBBITXOR @})B 7Sm BITXORnmero BITXOR nmero1 nmero2nmero (BITXOR nmero1 nmero2 nmero3 ...)Devuelve el resultado de la operacin O EXCLUSIVO con los valores enteros de las entradas.nmero:(ENTERO) resultado de la operacin XOR.nmero1:(ENTERO).nmero2:(ENTERO).Ejemplo:muestra bitxor 5 2; 101 XOR 10 = 111= 77muestra bitxor 5 1; 101 XOR 1 = 100 = 4D @mB? N 7Sm4; )BB1V B+DBITINVERSOmB+Du 7Sm BITINVERSOnmero BITINVERSO nmero1Devuelve el resultado de la operacin NO tomando como dato el valor entero de la entrada..nmero:(ENTERO) Resultado de la operacin NO.nmero1:(ENTERO).Ejemplo:muestra bitinverso 1-2muestra bitinverso 5-69BdD1qdDGDESPLAZA)+DF =7Sm DESPLAZAnmero DESPLAZA nmero1 nmero2Devuelve nmero1 con un desplazamiento aritmtico a la izquierda de tantos bits como indique nmero2. Si nmero2 es negativo, el desplazamiento es a la derecha. Las entradas deben ser nmeros enteros.nmero:(ENTERO) Resultado del desplazamiento.nmero1:(ENTERO).nmero2:(ENTERO).Ejemplo:muestra desplaza 5 2; 101 DESPLAZA 2 = 10100 = 20CdDGM j7Sm20muestra desplaza 20 1; 10100 DESPLAZA 1 = 1010 = 1010BF_G1Z_GJDESPLAZAIZQUIERDAJGI }7Sm DESPLAZAIZQUIERDAnmero DESPLAZAIZQUIERDA nmero1 nmero2Devuelve nmero1 con un desplazamiento lgico a la izquierda de tantos bits como indique nmero2. Si nmero2 es negativo, el desplazamiento es a la derecha. Las entradas deben ser nmeros enteros.nmero:(ENTERO) Resultado del desplazamiento.nmero1:(ENTERO).nmero2:(ENTERO).Ejemplo:muestra desplazaizquierda 5 2; 101 DESPLAZAIZQUIERDA 2= 10100 = 20r+_GJG ^V7Sm20muestra desplazaizquierda 20 -110DI_J1q_JJOPERACIONES LGICAS+JJg V7Sm WOPERACIONES LGICASYONO2_J#K1Z #KMY#JFM 7Sm Yverdad Y tf1 tf2verdad (Y tf1 tf2 tf3 ...)Devuelve VERDADERO si las entradas tienen el valor VERDADERO, en otro caso, FALSO. Todas las entradas tienen un valor VERDADERO o FALSOverdad:(BOOLEANO).tf1:(BOOLEANO) Expresin VERDADERO o FALSO.tf2:(BOOLEANO) Expresin VERDADERO o FALSO.Ejemplo:muestra y "verdadero "falsofalsomuestra y "verdadero "verdaderoL #KM? N7Smverdadero2FMM1M5OMO 7Sm Overdad O tf1 tf2verdad (O tf1 tf2 tf3 ...)Devuelve VERDADERO si una de las entradas es VERDADERO, en otro caso, FALSO. Todas las entradas deben tener un valor VERDADERO o FALSO.verdad:(BOOLEANO).tf1:(BOOLEANO) Expresin VERDADERO o FALSO.tf2:(BOOLEANO) Expresin VERDADERO o FALSO.Ejemplo:muestra o "verdadero "falsoverdaderomuestra o "falso "falsoH M5? NO5M7Smfalso3Oh1l hNO95m 7Sm NOverdad NO tfDevuelve VERDADERO si la entrada tiene el valor FALSO, y viceversa.verdad:(BOOLEANO).tf1:(BOOLEANO) Expresin VERDADERO o FALSO.Ejemplo:muestra no "verdaderofalso9hځ1ځ.GRFICOS4D V7Sm GRFICOSEl lenguaje Logo MSWLogo (Berkeley) proporciona los grficos de la tortuga, tradicionales y extendidos. Soporta mltiples tortugas pero no as las tortugas dinmicas como tampoco detecta las colisiones.El centro de la ventana de grficos es la posicin [0 0] de la tortuga. Las posiciones X positivas estn a la derecha; Las posiciones Y positivas estn hacia arriba Y. El rumbo (ngulos) se mide en grados en el sentido de las agujas del reloj desde el eje Y positivo (12:00), lo que es distinto que la convencin matemtica de medir los ngulos desde el eje X positivo (3:00). La tortuga se representa como un tringulo issceles; la posicin actual de la tortuga est indicada por el punto medio de la base (el lado mayor.) Uځ. d7Smf_Fr\1ՀbIY}Lsw#MSWLogo no es totalmente compatible con otros Logos (Berkeley Logo).MLTIPLES TORTUGASMOVIMIENTO DE LA TORTUGAPREGUNTAS SOBRE EL MOVIMIENTO DE LA TORTUGALA TORTUGA Y EL CONTROL DE LA VENTANAUSO DEL COLORPREGUNTAS SOBRE LA TORTUGA Y LA VENTANACONTROL DEL LPIZPREGUNTAS SOBRE EL LPIZCq1lqFMLTIPLES TORTUGAS[.Fz Ā7Sm ZG4&C7#׷MLTIPLES TORTUGASACTIVATORTUGAPONFORMATORTUGAQUITADIBUJOTORTUGA7q}1 }nACTIVA'Fo q7Sm 7#9|DACTIVAACTIVA tortugaAC tortugaSelecciona una tortuga. Cada tortuga mantiene su rumbo propio (orientacin en 3D), posicin, y lpiz, pero no el color del lpiz. Cada tortuga puede representarse con PONFORMATORTUGA. Observe que el nmero de tortugas comienza con 0 (tortuga por defecto). Logo admite hasta 1024 tortugas, desde la 0 hasta la 1023 (ya que la primera tortuga es la 0 y no la 1). Todas las tortugas entre 0 y la correspondiente al nmero de tortuga seleccionado, permanecern. As no escoja tortuga 100 y 200 si slo necesita dos tortugas. La primitiva BORRAPANTALLA seleccionar automticamente la tortuga 0 y desactivar todas las otras tortugas.l }` 7Smk3tortuga:(ENTERO) Tortuga seleccionada.Ejemplo:repite 8 [activa cuentarepite-1 av 10*cuentarepite]Hay 3 tortugas especiales que se usan en el modo PERSPECTIVA.Tortuga -1: Su posicin representa la de sus ojos cuando mira una escena en 3D (por defecto [400 400 600]). Su orientacin representa la direccin hacia arriba de la pantalla (por defecto, 0).Tortuga -2: Su posicin representa donde parece que estn los ojos cuando miran una escena en 3D (por defecto [0 0 0]). No importa su orientacin.9k e7Smpw^.k3Tortuga -3: Su posicin representa el lugar donde se encuentra la fuente de luz (por defecto [0 0 1000]). No importa su orientacin. Esta tortuga slo importa cuando se usa EMPIEZAPOLIGONO y TERMINAPOLIGONO.Nunca se muestran estas tortugas especiales. Cada vez que se usa el modo PERSPECTIVA se restablecen todas las tortugas especiales a su posicin y orientacin 9Fpor defecto.Ejemplo 2 (3D):perspectiva5nE X7Smbp;Dibuja un cubo a cubo en el punto por defectorepite 4 [repite 4 [av 100 gd 90] av 100 bajanariz 90]bpactiva -1ponxyz 500 500 500activa 0;Dibuja un cubo desde un nuevo puntorepite 4 [repite 4 [av 100 gd 90] av 100 bajanariz 90]891KlTORTUGAne ]7Sm ZGTORTUGAtortuga TORTUGADevuelve el nmero correspondiente a la tortuga actual. Para cambiar a otra tortuga ver ACTIVA.Ejemplo:activa 8muestra tortuga8@1NPONFORMATORTUGAH_ 7Sm ZGzPONFORMATORTUGAPONFORMATORTUGAPFTLa tortuga adquiere la forma del Bitmap que se encuentra en el Portapapeles. El Bitmap de la tortuga actual (Vea ACTIVA) se encuentra en el buffer (Vea CORTAAREA). Desde el buffer pasa al Portapapeles. Esto es, si selecciona la tortuga 0 y se usa PONFORMATORTUGA la forma de la tortuga pasa al Portapapeles. Observe que el Portapapeles slo puede contener un bitmap. Realice un dibujo en Paint y copie una parte en el Portapapeles. Luego pase a MSWLogo y seleccione la tortuga 0 (por defecto) y pruebe con PONFORMATORTUGA. gd 7Sm׷9|D QUITADIBUJOTORTUGA y BORRAPANTALLA restauran la forma normal de la tortuga, pero no borran el bitmap que, mientras permanezca en el Portapapeles, puede volver a utilizar. Ejemplo:bpslrotula 1re 20blcortaarea 20 20ponformatortugaav 100CJ1ͅJQUITADIBUJOTORTUGAGc 7Sm 7#QUITADIBUJOTORTUGAQUITADIBUJOTORTUGAEs la primitiva opuesta a PONFORMATORTUGA. Restaura la forma normal de la tortuga.Ejemplo:bpslrotula 1re 20blcortaarea 20 20ponformatortugaav 100quitadibujotortugaIJ1Z*MOVIMIENTO DE LA TORTUGA7 . *7Sm %awkT㗓"( YˀU:#7C#'[<O#7+++@ڀBMOVIMIENTO DE LA TORTUGAAVANZARETROCEDEGIRAIZQUIERDAGIRADERECHABALANCEAIZQUIERDABALANCEABAJANARIZCABECEAPONPOSPOSICIONATEPONXYPONXYZPONXPONYPONZCENTROPONRUMBOPONBALANCEOT ܀7SmU<CП I㒀7PONCABECEOPONORIENTACIONARCODEELIPSEELIPSEARCOCIRCULO7"1ͅ"jAVANZAHj` 7Sm AVANZAAVANZA distanciaAV distanciaMueve la tortuga hacia adelante, en la direccin de su rumbo, a la distancia especificada (medida en pasos de la tortuga).distancia:(NMERO).Ejemplo:repite 4 [avanza 100 gd 90]: "1*RETROCEDE\j` 7Sm RETROCEDERETROCEDE distanciaRE distanciaMueve la tortuga hacia atrs, esto es, en la direccin opuesta a su rumbo, a la distancia especificada. (El rumbo de la tortuga no cambia.)distancia:(NMERO).Ejemplo:repite 4 [re 100 gd 90]> >1> GIRAIZQUIERDA] f 7Sm GIRAIZQUIERDAGIRAIZQUIERDA nguloGI nguloLa tortuga gira en sentido contrario a > las agujas del reloj en el ngulo especificado, medido en grados (1/360 de la circunferencia).ngulo:(NMERO).Ejemplo:repite 3 [av 100 gi 120]< > 1 = GIRADERECHAZ = f 7Sm GIRADERECHAGIRADERECHA nguloGD nguloLa tortuga gira en el mismo sentido que las agujas del reloj en el ngulo especificado, medido en grados (1/360 de la circunferencia).ngulo:(NMERO).Ejemplo:repite 3 [av 100 gd 120]B  1) ) BALANCEAIZQUIERDA5= ) u k7Sm k3BALANCEAIZQUIERDABALANCEAIZQUIERDA nguloCAI nguloLa tortuga gira a la izquierda en el ngulo especificado, medido en grados (1/360 de la circunferencia).Esta primitiva trabaja en modo PERSPECTIVA.ngulo:(NMERO).Ejemplo:perspectivabalanceaizquierda 45repite 3 [av 100 gi 120]9 b 1Db  BALANCEA)  u 77Sm k3BALANCEABALANCEA nguloBAL nguloLa tortuga gira a la izquierda en el ngulo especificado, medido en grados (1/360 de la circunferencia).Esta primitiva trabaja en modo PERSPECTIVA.ngulo:(NMERO).Ejemplo:perspectivabalancea 45repite 3 [av 100 gd 120]: b , 1)i,  BAJANARIZ%  n K7Sm k3BAJANARIZBAJANARIZ nguloBAJAN nguloLa tortuga inclina la nariz hacia abajo en el ngulo especificado, medido en grados (1/360 de la circunferencia). Esta primitiva trabaja en modo PERSPECTIVA.ngulo:(NMERO).Ejemplo:perspectivabajanariz 45repite 3 [av 100 gd 120]8,  1Dy n CABECEAw n g !7Sm k3CABECEACABECEA nguloLa tortuga inclina la nariz hacia abajo en el ngulo especificado, medido en grados (1/360 de la circunferencia). Esta primitiva trabaja en modo PERSPECTIVA.ngulo:(NMERO).Ejemplo:perspectivacabecea 45repite 3 [av 100 gd 120]7 1i+ ; PONPOS'n } ȀU7Sm xPONPOSPONPOS posicinMueve la tortuga a las coordenadas absolutas X, Y. El argumento es una lista de dos nmeros, las coordenadas X e Y. Vea tambin POS.posicin:(LISTA).Ejemplo 1:(dibuja un cuadrado)bpponpos [0 100]ponpos [100 100]ponpos [100 0]ponpos [0 0]Ejemplo 2: (Con un error frecuente)haz "x 0haz "y 100ponpos [:x :y]ponpos no me gusta [:x :y] como entradaponpos (lista :x :y) o ; g 7SmPor qu?, [:x :y] es una lista con dos palabras :x e :y. En cambio(lista :x :y) CONSTRUYE una lista con los dos valores contenidos en :x e :y. Se puede ver con ms claridad usando MUESTRA.muestra [:x :y][:x :y]muestra (lista :x :y)[0 100]< w 1yw @ POSICIONATE;  q ]7Sm k3@POSICIONATEPOSICIONATE posicinMueve la tortuga a las coordenadas absolutas X, Y, Z. El argumento es una lista de tres nmeros, las coordenadas X, Y y Z. Esta primitiva trabaja en modo PERSPECTIVA. Vea tambin POS3D.posicin:(LISTA).Ejemplo:(dibuja un cubo)perspectivaposicionate [0 100 0]posicionate [100 100 0]posicionate [100 0 0]posicionate [0 0 0]posicionate [0 0 100]posicionate [100 0 100]w @ E X7Smposicionate [100 100 100]posicionat @ ; e [0 100 100]posicionate [0 0 100]posicionate [0 100 100]posicionate [0 100 0]posicionate [100 100 0]posicionate [100 100 100]posicionate [100 0 100]posicionate [100 0 0]6 @ 1+;@ B PONXY;@ B r w7Sm xPONXYPONXY xcor ycorMueve la tortuga a las coordenadas absolutas X, Y. Requiere dos argumentos numricos, las coordenadas X , Y. Vea tambin POS.xcor:(NMERO) coordenada X.ycor:(NMERO) coordenada Y.Ejemplo (dibuja una curva seno):repite 360 [ponxy cuentarepite 100*sen cuentarepite]7@ B 1(B E PONXYZ"B D -7Sm k3@PONXYZPONXYZ xcor ycor zcorMueve la tortuga a las coordenadas absolutas X, Y, Z. Los argumentos son tres nmeros, las coordenadas X, Y y Z. Esta primitiva trabaja en modo PERSPECTIVA. Vea tambin POSICIONATE.xcor:(NMERO) coordenada X.ycor:(NMERO) coordenada Y.zcor:(NMERO) coordenada Z.Ejemplo: (dibuja la misma curva seno en 3D)perspectivadesde [i 0 360 10] ~WB E A R7Sm [ desde [j 0 360] [PONXYZ :j :i*sen :j -:i] sl PONXYZ 0 0 -:i bl ]5D E 1;8E LG PONXE LG t !7Sm ++PONXPONX xcorMueve la tortuga a lo largo del eje X desde la posicin actual a una nueva coordenada absoluta X. El argumento es la nueva coordenada X. Vea PONY y PONZ.xcor:(NMERO) La nueva coordenada X.Ejemplo:ponx 100pony 100ponx 0pony 05E G 1(HG I PONYLG I w !7Sm ++PONYPONY ycorMueve la tortuga a lo largo del eje Y, desde la posicin actual a la nueva coordenada absoluta Y. El argumento es la nueva coordenada Y. Ver PONX y PONZ.ycor:(NMERO) La nueva coordenada Y.Ejemplo:ponx 100pony 100ponx 0pony 05G =I 1 8=I K PONZUI K Ҁ7Sm k3++PONZPONZ zcorMueve la tortuga a lo largo del eje Z, desde la posicin actual a una nueva coordenada absoluta Z. El argumento es la nueva coordenada Z. Esta primitiva trabaja en modo PERSPECTIVA.. Vea PONX y PONY.zcor:(NMERO) La coordenada Z.Ejemplo:perspectivasl ponx 100 blponz 100pony 100ponz 0pony 07=I KK 1HKK #L CENTROK #L X ~7Sm :#7CENTROCENTROSita la tortuga en el centro de la pantalla. Equivale a PONPOS [0 0].Ejemplo:ponxy 100 100centro9KK \L 1\L O PONRUMBO.#L N w o7Sm Zk3PONRUMBOPONRUMBO nguloPONR nguloCambia el rumbo de la tortuga por un nuevo rumbo absoluto. El argumento es un ngulo, el rumbo se mide en grados segn el movimiento de las agujas del reloj desde el eje X. Ver RUMBO. Si se est en modo PERSPECTIVA, el rumbo en grados es positivo desde el eje positivo X hasta el eje positivo Y rotando alrededor del eje Z.ngulo:(NMERO) ngulo en grados que fija el rumbo.w-\L O J dZ7SmEjemplo:ponrumbo 45muestra rumbo45< N =O 1E=O G PONBALANCEOxO G ڀ7Sm >k3=$*PONBALANCEOPONBALANCEO nguloLa tortuga realiza un nu=O G O evo giro positivo, desde el eje positivo X hasta el eje negativo, rotando alrededor del eje Y. Vea Orientacin en 3D. Esta primitiva se utiliza en modo PERSPECTIVA. Vea tambin BALANCEO?.ngulo:(NMERO) ngulo en grados del giro.Ejemplo:perspectivaponbalanceo 45muestra balanceo?45; =O 1)h p PONCABECEOhG p ڀ7Sm >k3ȱPONCABECEOPONCABECEO nguloProduce una nueva inclinacin positiva desde el eje negativo Z hasta el eje, rotando alrededor del eje X. Vea Orientacin en 3D. Esta primitiva trabaja en modo PERSPECTIVA. Vea tambin CABECEO?.ngulo:(NMERO) : Inclinacin, medida en grados.Ejemplo:perspectivaponcabeceo 45muestra cabeceo?45? 1L g PONORIENTACIONp ̅  ̀=7Sm >k3@E݀PONORIENTACIONPONORIENTACION lista (Procedimiento de la librera)Cambia la orientacin de la tortuga por una nueva orientacin absoluta. El argumento es una lista. Vea Orientacin in 3D. Esta orden est diseada para trabajar en modo PERSPECTIVA. Vea tambin ORIENTACION.lista:(LISTA) Lista con 3 ngulos, [giro, inclinacin, rumbo] en grados, que fijan la orientacin.Ejemplo:F g U z7Smponorientacion [180 45 90]muestra orientacion[180 45 90]= ̅ 1h 0 ARCODEELIPSE!g ʼn '7Sm ARCODEELIPSEARCODEELIPSE ngulo menor mayor principiongulo (Procedimiento de la librera)ELIPSA2 ngulo menor mayor principiongulo (Procedimiento de la librera)ARCODEELIPSE no mueve la tortuga. Dibuja una parte o la totalidad de una elipse, segn el rumbo, posicin de la tortuga y los argumentos. El tamao depende de los valores menor y mayor. La posicin de la tortuga quedar en el centro de la elipse. Menor es la distancia ms corta desde la elipse hasta el centro. Mayor es la distancia ms larga desde la elipse hasta el centro. ELIPSA2 dibuja la elipse desde el borde donde queda finalmente posicionada.k 0 p 7Smngulo:(NMERO).menor:(NMERO).mayor:(NMERO).principiongulo:(NMERO).Ejemplo:arcodeelipse 360 100 200 0bparcodeelipse 90 50 50 0bparcodeelipse 90 50 50 90Ejemplo:perspectivarepite 72 [arcodeelipse 90 100 150 45 bal 5]7ʼn g 1L g . ELIPSE;0  w w7Sm ELIPSEELIPSE menor mayor(Procedimiento de la librera)ELIPSE2 menor mayor(Procedimiento de la librera)ELIPSE no mueve la tortuga. Dibuja una elipse, segn el rumbo, posicin de la tortuga y argumentos. El tamao viene determinado por los valores menor y mayor. Al finalizar, la tortuga queda posicionada en el centro de la elipse. Menor es la distancia ms corta desde la elipse hasta el centro. Mayor es la distancia ms larga desde la elipse hasta el centro. ELIPSE2 dibuja la elipse desde el borde donde queda finalmente posicionada.g . f _7Sm menor:(NMERO).mayor:(NMERO).Ejemplo:elipse 100 200bpelipse 50 50bpelipse 50 50Ejemplo (en 3D):perspectivabprepite 72 [elipse 200 100 bal 5 av 5]4 b 1b ARC#. e }7Sm ARCARC ngulo radio(Procedimiento de la librerab . )ARC2 ngulo radio(Procedimiento de la librera)ARC no mueve la tortuga. Dibuja un arco (parte de la circunferencia), segn el rumbo, posicin de la tortuga y argumentos. El tamao depende del radio. Al finalizar, la tortuga queda posicionada en el centro del arco. ARC 360 dibuja una circunferencia. ARC2 dibuja el arco desde el borde donde queda finalmente posicionada.b b 77Smngulo:(NMERO).radio:(NMERO).Ejemplo:arc 360 100arc 90 50Ejemplo (en 3D):perspectivarepite 36 [bal 10 arc2 180 100 arc2 -180 100]8 1  k CIRCULO2 g 7Sm CIRCULOCIRCULO radio(Procedimiento de la librera)CIRCULO2 radio(Procedimiento de la librera)CIRCULO no mueve la tortuga. Dibuja un crculo, segn el rumbo, posicin de la tortuga y argumentos. El tamao depende del radio. Al finalizar, la tortuga queda posicionada en el centro del crculo. CIRCULO2 dibuja el crculo desde el borde donde queda finalmente posicionada.Ejemplo:circulo 100circulo 50Ejemplo (una esfera en 3D):s/ k D X^7Smperspectivarepite 72 [circulo 100 bal 5]\+ 1@u PREGUNTAS SOBRE EL MOVIMIENTO DE LA TORTUGAk  ց7Sm x@1L2㰂3Z=$*ȱ@E݀4S)ƀ1Ϥ0PREGUNTAS SOBRE EL MOVIMIENTO DE LA TORTUGAPOSPOS3DCOORXCOORYCOORZRUMBOBALANCEO?CABECEO?ORIENTACIONHACIAHACIAXYZDISTANCIADISTANCIAXYZPIXELRONZAL4 1Z1  POS&  j y7Sm POSpos POSDevuelve la posicin actual de la tortuga, como una lista de dos nmeros, las coordenadas X e Y.pos:(LISTA).Ejemplo:ponpos [100 100]muestra pos[100 100]6 ; 1uI; POS3D z €17Sm k3POS3Dpos POS3DDevuelve la posicin actual de la tortuga, como una lista de tres nmeros, las coordenadas X, Y y Z. Esta orden est diseada para trabajar en modo PERSPECTIVA.pos:(LISTA).Ejemplo:perspectivaponxyz 100 100 50muestra pos3d[100 100 50]6;  11 COORX7 I bn7Sm COORXxcor COORX(Procedimiento de la librera)h5 3 6jmDevuelve un nmero, la coordenada X de la tortuga.Q R t7Smxcor:(NMERO) coordenada actual X.Ejemplo:ponx 100muestra coorx1006 1FI COORY ] g7Sm COORYCOORY(Procedimiento de la librera)Devuelve un nmero, la coordenada Y de la tortuga.ycor:(NMERO) coordenada actual Y.Ejemplo:pony 100muestra coory1006 1  u COORZk u j 7Sm k3COORZCOORZ(Procedimiento de la librera)Devuelve un nmero, la coordenada Z de la tortuga.. Est orden est diseada para trabajar en modo PERSPECTIVA.coorz:(NMERO) Actual coordenada Z.Ejemplo:perspectivaponz 100muestra coorz1006 1w   RUMBOcu  s 7Sm @ڀ  u RUMBOngulo RUMBODevuelve un ngulo que indica el rumbo de la tortuga en grados. VEA tambin PONRUMBO.ngulo:(NMERO) ngulo en grados, que indica el actual rumbo de la tortuga.Ejemplo:ponrumbo 90muestra rumbo90: T 1Q T 0 BALANCEO?Q 0 䀣7Sm >Bk3BALANCEO?ngulo BALANCEO?Devuelve un ngulo, que indica el balanceo de la tortuga. Vea Orientacin in 3D. Vea tambin PONBALANCEO. Esta orden est diseada para trabajar en modo PERSPECTIVA.ngulo:(NMERO) ngulo, en grados, que indica el balanceo actual.Ejemplo:ponbalanceo 90muestra balanceo?909T i 1i i  CABECEO?0  17Sm >U<k3CABECEO?ngulo CABECEO?Devuelve un ngulo que indica el cabeceo de la tortuga en grados. Ver Orientacin en 3D. Vea tambin PONCABECEO. Esta primitiva slo trabaja en modo PERSPECTIVA.ngulo:(NMERO).Ejemplo:poncabeceo 90muestra cabeceo?90< i H 1:Q H F ORIENTACIONg  F 7Sm >CПk3ORIENTACIONlista ORIENTACION (Procedimiento de la librera)Devuelve una lista con el balanceo, cabeceo y rumbo de la tortuga en grados. Vea Orientacin en 3D. Vea tambin PONORIENTACION. Esta orden trabaja slo en modo PERSPECTIVA.lista:(LISTA).Ejemplo:ponorientacion [180 45 90]muestra orientacion[180 45 90]6H | 1Riq| HACIAF { ĀC7Sm HACIAngulo HACIA posDevuelve un ngulo que indica el rumbo en grados que debe tomar la tortuga para moverse desde su posicin actual hasta otra que se indica en el argumento pos.ngulo:(NMERO) .pos:(LISTA) Lista con dos nmeros que representan las coordenada X,Y hacia donde se desplazar la tortuga.Ejemplo:muestra rumbo [100 100]45ponrumbo hacia [300 400] av distancia [300 400]9| 16 HACIAXYZ) w e7Sm k3HACIAXYZlista HACIAXYZ posDevuelve un ngulo que indica el rumbo en grados que debe tomar la tortuga para moverse desde su posicin actual hasta otra que se indica en el argumento pos. Esta primitiva slo trabaja en modo PERSPECTIVA.lista:(LISTA) Una lista con 3 ngulos (orientacin), balanceo, cabeceo y rumbo en grados.pos:(LISTA) Lista con tres nmeros que representan las coordenadas deseadas: X,Y,Z.~ V |7SmEjemplo:muestra haciaxyz [100 100 0][0 0 45]ponorientacion haciaxyz [100 100 100] av distanciaxyz [100 100 100]:  1uq_  C DISTANCIA; C } Ȁ}7Sm DISTANCIAdist DISTANCIA pos(Procedimiento de la librera)Devuelve un nmero que indica la distancia que la tortuga tiene que recorrer en lnea recta hasta llegar a la posicin que se indica en el argumento pos.dist:(NMERO) .pos:(LISTA) Lista con dos nmeros que representan las coordenadas deseadas X, Y.Ejemplo:muestra hacia [0 100]100muestra hacia [300 400]500ponrumbo hacia [300 400] av distancia [300 400]=   1} B DISTANCIAXYZ.C A z €i7Sm k3DISTA A C NCIAXYZdist DISTANCIAXYZ pos(Procedimiento de la librera)Devuelve un nmero que indica la distancia que la tortuga tiene que recorrer en lnea recta hasta llegar a la posicin que se indica en el argumento pos, con las coordenadas X, Y y Z. Esta orden slo se utiliza en modo PERSPECTIVA. dist:(NMERO).pos:(LISTA) Lista con tres nmeros, las coordenada X,Y,Z.Ejemplo:muestra haciaxyz [0 100 0]} B H `7Sm100muestra haciaxyz [100 100 100]173.205080756888ponorientacion haciaxyz [100 100 100] av distanciaxyz [100 100 100]6A B 1_ łB E PIXEL?B D k7Sm bIY8U<PIXELcolorvector PIXELDevuelve una lista con los nmeros que representan la intensidad de los colores Rojo, Verde y Azul del pixel que se encuentra bajo la tortuga. Para ms detalles sobre colorvector, vea USO DEL COLOR. Vea tambin PONPIXEL.colorvector:(LISTA) Lista con tres enteros que indican la intensidad de los colores ROJO, Verde y Azul en un rango 0-255.Ejemplo:muestra pixel[255 255 255] B E w '7Smk3av 1muestra pixel[255 255 255]re 1muestra pixel[0 0 0]Pixel puede usarse en modo PERSPECTIVA pero se ver siempre en 2D.7D 5F 1}߃5F G RONZALE G t 57Sm RONZALradio RONZALDevuelve una lista con dos nmeros, X e Y , que se utilizan con PONRONZAL, (aunque PONRONZAL toma dos nmeros como entrada, no una lista de nmeros.)radio:(LISTA).Ejemplo:ponronzal 2.0 1.0repite 4 [av 100 gd 90]muestra ronzal[2 1]V%5F H 1>łąH L LA TORTUGA Y EL CONTROL DE LA VENTANA$G =J  !7Sm I#Fݽ9|DH0Z9j8U<ހ;QĄI%S0]"~ZLA TORTUGA Y EL CONTROL DE LA VENTANAMUESTRATORTUGAOCULTATORTUGALIMPIABORRAPANTALLAENVOLVERMODOVENTANACERCARELLENAROTULAPONPIXELPONTAMAOTIPOTIPOTAMAOTIPOTEXTSCREENFULLSCREENSPLITSCREENH L 7SmCǀ<ՀW3k0k0R:&ˀƀ5qJ4k3>9PONRONZALREFRESHNOREFRESHPONLUPADESPLAZAXDESPLAZAYPONFOCOLEEFOCOICONONOICONOACTIVAVENTANAPERSPECTIVA ORIENTACIN EN 3D CUERPOS SLIDOS EN 3D ?=J @L 1߃-@L L MUESTRATORTUGAiL L L h7Sm MUESTRATORTUGAMUESTRATORTUGAMTHace visible la tortuga.Ejemplo:ocultatortugamuestratortuga> @L 3M 1{ą3M pN OCULTATORTUGA=L pN M h7Sm OCULTATORTUGAOCULTATORTUGAOTLa tortuga es invisible. Es una buena idea emplear esta primitiva cuando la tortuga realiza un dibujo complicado, porque cuando est oculta aumenta la velocidad.Ejemplo:ocultatortugamuestratortuga73M N 1L-N O LIMPIApN O L f7Sm LIMPIALIMPIABorra todas las lneas que la tortuga dibuj en la ventana de grficos. El estado de la tortuga (posicin, rumbo, modo del lpiz, etc.) no cambia.Ejemplo:ponxy 100 100limpia> N 1n : BORRAPANTALLAO O .O : i 7Sm ݽBORRAPANTALLABORRAPATALLABPBorra los grficos de la ventana y enva la tortuga a su posicin y rumbo inicial. Equivale a CENTRO y LIMPIA.Ejemplo:ponxy 100 100borrapantalla9 s 1s  ENVOLVER;:  g w7Sm Z9ENVOLVERENVOLVERLa tortuga se encuentra en modo ENVOLVER : cuando la tortuga sobrepasa los lmites de la pantalla por uno de sus bordes, aparece por el borde opuesto. Es el modo inicial de la tortuga. Existen otros dos modos: MODOVENTANA y CERCA.Ejemplo:modoventanaav 950bpenvolverav 950< s Q 1Q ۅ MODOVENTANA m ^ }7Sm H09MODOVENTANAMODOVENTANALa tortuga se encuentra en el modo MODOVENTANA: si se pide que la tortuga se mueva fuera de los lmites de la pantalla, se alejar de ella. La ventana visible de grficos se considera como una parte de un plano grfico infinito; la tortuga puede estar en cualquier parte del plano. (Si pierde la tortuga, CENTRO la devolver al centro de la pantalla.) Existen otros dos modos ENVOLVER y CERCA.Ejemplo:n*Q ۅ D XT7Smmodoventanaav 950bpenvolverav 9506m  1-k  CERCAۅ  t 7Sm H0ZCERCACERCALa tortuga se encuentra en modo CERCA: si se pide que la tortuga se mueva fuera de los lmites de la pantalla, se mover hasta el lmite de la pantalla, donde se detendr, al tiempo que aparece un mensaje de error "fuera de lmites". Existen otros dos modos ENVOLVER y MODOVENTANA.Ejemplo:modoventanaav 950bpcercaav 950tortuga fuera de lmites<  D 1#D K PERSPECTIVA H I `w7Sm PERSPECTIVAPERSPECTIVALa tortuga se encuentra en modo perspectiva, con una tercera dimensin (eje Z). Perspectiva es un trmino que describe cmo se representa una realidad en 3 dimensiones en una superficie de 2 dimensiones. Debe conocer como trabaja MSWLogo en 2D antes de pasar al modo 3D.Todo lo referente a 2D puede aplicarse a 3D (modo perspectiva). Por ejemplo, si tiene un procedimiento que dibuja una estrella en 2D, con el mismo cdigo puede colocar una estrella sobre las seis caras de un cubo, colocando a la tortuga en la orientacin y en las coordenadas correctas en 3D, antes del cdigo 2D que dibujara una estrella. Podr manejar la tortuga como si fuese un avin.D  > J17SmLos aviones tienen 3 controles para moverse en un espacio en 3D. Elevadores de la cola, un timn en la aleta y alerones en las alas. MSWLogo tiene siempre una especie de timn para mover la tortuga hacia la derecha e izquierda. Ahora cuenta con mandos adicionales, como alerones para balancear a la izquierda y derecha y elevadores hacia arriba y abajo para manejar un espacio en 3D. Ahora cuenta con un infinito nmero de aviones (geomtricos, claro) para volar en cada uno con cualquier orientacin. Una vez que la tortuga se encuentra en el avin deseado, se puede usar las conocidas primitivas de 2D (AVANZA, RETROCEDE, GIRAIZQUIERDA, GIRADERECHA)._H > J7SmCuando comience en (X=0,Y=0,Z=0), el eje +Y todava permanece en la pantalla y el eje +X est a la derecha de la pantalla. Pero ahora puede introducirse en la pantalla (lejos de usted) o salirse de la pantalla ( cerca de usted). Cmo? De la misma forma en que vuela un avin. Cuando un avin gira a la derecha no cambia su trayectoria, y tampoco lo hace el MSWLogo. Pero si usted girase 90 grados a la derecha y e  ntonces tomase un giro a la derecha, imagnese lo que pasara. Usted bajara en picado muy, muy rpido. Piense en una tortuga de verdad en el suelo. Ahora hgala girar hacia su derecha . Ahora, si toma un giro hacia la derecha hacia su pata delantera derecha ( como siempre lo hacen) querr bajar al suelo. Djela que gire y dese cuenta cmo su nariz estar apuntando hacia el suelo. Avanzar ahora hacia abajo en el eje Z (lejos de usted).  M h7Sm>Vea ORIENTACIN EN 3D.Aqu tiene un resumen de la relacin entre los comandos en modo 2D y modo 3D. Muchos comandos se repiten en ambas columnas porque les ha afectado estar en el modo 3D.V 1 J#d     2D3Dg J#d:    Ponxyponxy (z actual)T 1 G#^    Ponxyzt* ` J#dT   & ponx (y actual)ponx (y z actuales)u+ J#dV   & pony (x actual)pony (x z actuales)R ` ' G#^    Ponz\ J#d$    CoorxCoorx\' J#d$    CooryCooryS 2 G#^    Coorzd J#d4    Pospos (z dropped)S 2 G#^    Pos3dj S J#d@    Ponposponpos (z actual)Y G#^$    Posicionate\S  J#d$    HaciaHaciaV ^ G#^    Haciaxyze J#d6    Distancia DistanciaZ^  G#^&    Distanciaxyz\ y J#d$    RumboRumboW G#^     Balanceo?Vy & G#^    Cabeceo?Y  G#^$    Orientacionb& J#d0    PonrumboPonrumboY : G#^$    PonbalanceoX G#^"    Poncabeceo\: G#^*    Ponorientacion7 o J#dn   ( Giraderecha (gd)giraderecha (gd) (avin actual)\ G#^*    balancea (bal)Uo G#^    cabecea; J#dv   , Giraizquierda (gi)giraizquierda (gi) (avin actual)e G#^<    balanceaizquierda (cai)_ i G#^0    bajanariz (bajan)h J#d<    ModoventanaPerspectivaRi # D#X   EnvolverO r D#X   Cercal"# J#dD   " activa 0-1023activa 0-1023Xr B G#^"  B    activa -1 X G#^"    activa -2 k!B  J#dB     Arcodeelipsearcodeelipse ; @ @ N7SmLimitaciones:Hay varios comandos que trabajarn en 3D pero que aun as se comportarn como 2D. Su accin tendr lugar en la correcta coordenada X, Y, Z. Pero la orientacin ser limitada a un plano 2D. Por ejemplo, no puede dibujar texto con ROTULA en los 6 lados de un cubo. Pero si en los 8 vrtices del cubo, cada etiqueta puede ser correctamente situada en cada vrtice utilizando maniobras 3D. No hay nada que le impida construir una galera alfabeto de 3D block letter mediante vectores 3D.?  < H7Sm= @  3#6 ROTULA@   3#6 CORTAAREA; 7 3#6 PEGA@  w 3#6 COPIAAREAI7  3#6, RECTANGULORRELLENO> w  3#6 RELLENA<  : 3#6 PIXEL@  z 3#6 PONPIXEL 6:  @ N7SmEl modo perspectiva no realiza eliminaciones de lneas ocultas. La eliminacin de lneas ocultas requiere que los objetos se compongan de polgonos.El modo perspectiva no le permite mover dinmicamente la perspectiva visual (de una moscaetc.) Esto es debido a que MSWLogo no almacena su objeto (sus vectores) en 3D por razones de funcionamiento. Los almacena en un mapa 2D de bits, como siempre lo ha hecho. Sin embargo, usted puede hacer manipulaciones dinmicas rpidas de otras 2 maneras.]z K > J7SmUna manera sencilla es mantener su escena muy simple (en lo que concierne a la actuacin de su ordenador). Simplemente despeje la pantalla y cambie la perspectiva visual (tortuga-1) o el emplazamiento de los objetos y dibuje de nuevo. Fjese en que los objetos curvados (como aquellos basados en ARCODEELIPSE) generan muchos vectores. La otra opcin es grabar cada escena en un mapa de bits y reproducirlos de nuevo a la velocidad que usted desee. No importa que est usted grabando escenas 2D o 3D, da lo mismo. Esto vendr delimitado por la cantidad de memoria de la que disponga su ordenador.8 1k   RELLENADK ` 7Sm k3RELLENARELLENARellena de color una regin de la ventana de grficos, en la que se encuentra la tortuga y que est limitada por lneas previamente dibujadas. No trabaja de la misma manera en mquinas diferentes.Ejemplos:repite 4 [av 100 gd 90]gd 45slav 20rellenaRellena puede usarse en modo PERSPECTIVA para rellenar de un determinado color las caras visibles de un objeto. Por ejemplo, de un cubo no dibuja las 6 caras, slo 3 como mximo permanecen visibles.U  V z7SmEjemplo (3D):para cuadrado :colorrepite 4 [av 100 gd 90]slgd 45av 50poncolorrelleno :colorrellenare 50gi 45blfinpara cuboperspectivabalancea 45bajan 45cuadrado [255 0 0]balancea 90cuadrado [0 255 0]cabecea 90cuadrado [0 0 255]fin7 S 1 S F ROTULA oA P n7Sm ROTULAROTULA textoRO textoEscribe en la pantalla de grficos la entrada, que debe ser una palabra o una lista; si es una lista, cualquier sub-lista estar delimitada por corchetes, pero la totalidad del objeto no estar entre corchetes. Puede escribir cualquier objeto de Logo (nmeros, listas y cadenas). Observe que el origen de la caS oA  dena es el principio de la esquina derecha de la cadena. Las cualidades del texto dependen del dispositivo (pantalla o impresora), del tamao, rumbo de la tortuga (direccin) y de la fuente. En otras palabras, a veces se puede dibujar el texto cerca del rumbo de la tortuga y a veces no. A veces no se imprimir exactamente como aparece en pantalla.,{S C 07Sm ̕:#7ހP8㗓"( @ڀQĄtexto:(OBJETO).El color del texto se fija con PONCOLORLAPIZ.La posicin del texto se fija mediante PONPOS .La fuente del texto se fija con PONTAMAOTIPO o desde el Men con TIPO DE LETRA.El ngulo del texto se fija con GIRAIZQUIERDA, GIRADERECHA, PONRUMBO.El tamao del texto se obtiene con TAMAOTIPO.Ejemplo:rotula "HolaoA E a y7Smk3Rotula puede usarse en modo PERSPECTIVA pero el texto no estar en el mismo plano que la tortuga aunque estar en la posicin correcta. Atender al rumbo de la tortuga para orientar el texto.Ejemplo (rotula en un eje 3D)para ejespontamaotipo[[Courier New] -19 0 0 700 0 0 0 0 3 2 1 49]gd 90pony 200rotula "+Ypony -200rotula "-Ypony 0ponx 200rotula "+Xponx -200rotula "-Xponx 0ponz 200rotula "+Zponz -200rotula "-ZFC @F B T7Smponz 0gi 90finperspectivabpactiva 1posicionate [600 600 800]RE F A R"7Smactiva 0ejes9@F F 1 9F UK PONPIXELuF @I } Ȁ7Sm bIYϤPONPIXELPONPIXEL colorvectorPone el pixel que est debajo de la tortuga con el color colorvector. Colorvector es una lista con las intensidades de los colores [Rojo Verde Azul]. Para una explicacin de colorvector vea USO DEL COLOR. PONPIXEL funciona como PONCOLORLAPIZ colorvector AV 1 SL RE 1 BL, pero mucho ms rpido. Combinando PONPIXEL con la primitiva PIXEL , puede "examinar" y redibujar una imagen con una nueva orientacin (por ejemplo, la rotacin de un bitmap).F UK b g7Smk3colorvector:(LISTA) Lista de tres enteros representando la intensidad de Rojo, Verde, azul en el rango 0-255.Ejemplo:slponxy -128 -128desde [rojo 0 255] [desde [verde 0 255] [ponpixel (lista :rojo :verde 0) av 1] re 256 gd 90 av 1 gi 90]Ponpixel puede usarse en modo PERSPECTIVA pero slo se ver el "ltimo" pixel.Ejemplo (Rotacin de una imagen en 2D en un espacio de 3D):VER Ejemplos\3D\3DBITMAP.LGO ejemplo.> @I K 1B V K PONTAMAOTIPO4UK M i 7Sm P8PONTAMAOTIPOPONTAMAOTIPO fontPTT fontLa entrada es una lista con la estructura de la fuente. Una fuente determina qu caracteres aparecern en pantalla cuando se utilice la primitiva ROTULA. Las fuentes disponibles dependen de su computadora. MSWLogo tiene dos formas de especificar la fuente deseada. La primitiva PONTAMAOTIPO puede usarse en los programas. En modo interactivo puede utilizar la opcin del Men TIPO DE LETRA . K W 7SmFuente:(LISTA) que contiene la siguiente informacin: [[NombreFuente] Altura Anchura Orientacin Peso Itlica Subrayado Tachada PonCarcter PrecisinSalida ClipPrecisin Cualidad InclinacinyFamilia].NombreFuente:(LISTA) Nombre de la fuente.Altura:(ENTERO) Altura deseada en unidades lgicas. Si este valor es mayor que cero, especifica la altura de la celda de la fuenM W UK te. Si es menor que cero, especifica la altura del carcter de la fuente.7M l 7SmAnchura:(ENTERO) Anchura de la fuente en unidades lgicas.Orientacin:(ENTERO) Orientacin deseada de la fuente, en grados.Peso:(ENTERO) Peso de la fuente. Este miembro tiene un rango entre 0 y 900 con incrementos de 100. Un valor 0 significa que se usa el peso por defecto.Itlica:(ENTERO) Una fuente cursiva si no es cero. Subrayado:(ENTERO) Especifica subrayado si no es cero. Tachada:(ENTERO) Especifica tachado si no es cero. W o 7SmPonCarcter:(ENTERO) Especifica el carcter. PrecisinSalida:(ENTERO) Especifica la precisin de salida. ClipPrecisin:(ENTERO) Especifica la precisin de corte. Cualidad:(ENTERO) Especifica la cualidad. InclinacinyFamilia:(ENTERO) Especifica la inclinacin y familia de la fuente. Ejemplo:pontamaotipo [[Times New Roman] -24 0 0 400 0 0 0 0 3 2 1 18] rotula "Hola5 19s! ' TIPO r ݆ *7Sm ހTIPOfuente TIPODevuelve una lista que describe la fuente actual.Fuente:(LISTA) que contiene la siguiente informacin: [[NombreFuente] Altura Anchura Orientacin Peso Itlica Subrayado Tachada PonCarcter PrecisinSalida ClipPrecisin Cualidad InclinacinyFamilia].Vea en PONTAMAOTIPO la definicin de los miembros de LISTA.J ' W7SmEjemplo:pontamaotipo [[Times New Roman] -24 0 0 400 0 0 0 0 3 2 1 18] muestra tipo[[Times New Roman] -24 0 0 400 0 0 0 0 3 2 1 18] ; ݆ b 1`V"b TAMAOTIPO%' y Y7Sm TAMAOTIPOtamao TAMAOTIPO textoEsta primitiva devuelve el tamao de un texto. La entrada, una palabra o lista ser la misma que se empleara en ROTULA. Puede utilizar esta informacin para "preparar" una localizacin del texto.tamao:(LISTA) Lista de 2 enteros [anchura altura] del texto de la fuente actual.texto:(OBJETO) Cualquier objeto a escribir.Ejemplo:muestra tamaotipo "Hola[44 24]; b Š 1sa#Š G TEXTSCREENB G C V7Sm TEXTSCREENTEXTSCREENTS(No soportado en MSWLogo de momento); Š 1$ FULLSCREENCG D X7Sm FULLSCREENFULLSCREENFS(No soportado en MSWLogo de momento)< E 1a%E Ό SPLITSCREENE Ό D X7Sm SPLITSCREENSPLITSCREENSS(No soportado en MSWLogo de momento): E  1b& 2 PONRONZALdΌ x R r%7Sm PONRONZALPONRONZAL xescala yescala(No se necesita esta primitiva en MSWLogo, pero est disponible para quienes prefieren ("deliberadamente ajustar el aspecto de la proporcin").Ajusta el aspecto de la proporcin y la escala de las imgenes grficas. Despus de usar esta primitiva, todos los movimientos de la tortuga se ajustarn multiplicando la extensin horizontal y vertical del movimiento por los dos nmeros indicados en la entrada. Por ejemplo, despus de la primitiva "PONRONZAL 2 1" con un rumbo de 45 grados, cualquier movimiento ser el doble en sentido horizontal y el vertical a la medida indicada. Si sus cuadrados no parecen cuadrados, pruebe  x Ό esta primitiva. (Alternativamente, puede ajustar el aspecto de la proporcin en el dibujo de una elipse.)b 2 X ~7SmEn mquinas UNIX y Macintosh, ambos factores son inicialmente 1. En mquinas DOS, los factores son inicialmente fijos, de acuerdo con lo indicado por el hardware, pero a veces el hardware miente.xescala:(NMERO) componente X.yescala:(NMERO) componente Y.Ejemplo:ponrumbo 45ponronzal 2.0 1.0repite 4 [av 100 gd 90]muestra ronzal[2 1]8x j 1'j REFRESH}:2 C Vt7Sm REFRESHREFRESH(No soportado en MSWLogo de momento): j ! 1bځ(! NOREFRESH> C V|7Sm NOREFRESHNOREFRESH(No soportado en MSWLogo de momento)8! 10*) PONLUPAk ` 7Sm  Vp#PONLUPAPONLUPA escalaEste primitiva deja que LOGO controle la escala de la ventana "Pantalla". El argumento es el valor de la ampliacin (escala). Un nmero mayor que 1,0 aumenta ms (p.e. 2,0 le hace el doble), un nmero menor que 1,0 dibuja a tamao ms reducido. Si una imagen existente est en la pantalla cuando se hace zoom se estirar o empequeecer, segn el zoom. Vea tambin Menu ZOOM.escala:(NMERO).El zoom normal es 1.0 y as dibuja con un aspecto normal. Cualquier dibujo hecho con un zoom de 0.5 o 2.0 aparece como "dentado pero recobra su aspecto normal con un zoom de 1.0.- H ^7SmNOTA: Ponlupa trabaja mejor si escoge un factor mltiplo de 2 o un nmero dividido entre 2. Por ejemplo 2, 4, 8, 1/2 (0.5), 1/4 (0.25), 1/8 (0.125) etc.Ejemplo:repite 4 [av 100 gd 90]ponlupa 0.5ponlupa 2.0ponlupa 1.0: 1-ځĆ* DESPLAZAX Y 57Sm DESPLAZAXDESPLAZAX deltaxEsta primitiva deja que LOGO controle el desplazamiento horizontal de la ventana "Pantalla". El argumento es el valor del desplazamiento (delta). Un nmero positivo desplaza a la derecha y un nmero negativo a la izquierda. Si (delta) est a 0 el desplazamiento restablecer a cuando estaba en la posicin central.deltax:(ENTERO).Ejemplo:repite 10 [desplazax 10]: 9 1'*X+9 & DESPLAZAY & Y )7Sm DESPLAZAYDESPLAZAY deltayEsta primitiva deja que LOGO controle el desplazamiento vertical de la ventana "Pantalla". El argumento es el valor del desplazamiento (delta). Un nmero positivo desplaza hacia arriba y un nmero negativo hacia abajo. Si (delta) est a 0 el desplazamiento restablecer a cuando estaba en la posicin central.deltay:(ENTERO).Ejemplo:repite 10 [desplazay 10]89 ^ 1Ćt,^ PONFOCO& e 97Sm &ˀƀPONFOCOPONFOCO captionEsta primitiva deja que LOGO controle que ventana tiene el foco. La ventana deseada se especifica por su ttulo. Vea tambin LEEFOCO.caption:(LISTA) Es el ttulo de la ventana que va a recibir el foco.Ejemplo:ponfoco [Pantalla de MSWLogo]8^  1Xi- y LEEFOCOb y m 7Sm R:LEEFOCOcaption LEEFOCOEsta primitiva devuelve el ttulo de la ventana que tiene el foco (ventana activa). Vea tambin PONFOCO.caption:(PALABRA).Ejemplo:ponfoco [Pantalla de MSWLogo]muestra leefoco[Pantalla de MSWLogo]6 1t. - ICONOry - n 7Sm  - y 5qJICONOICONO caption(Procedimiento de la librera)Este procedimiento deja que LOGO minimice la ventana especificada en caption (ttulo), en forma de un icono. Vea tambin NOICONO.caption:(LISTA).Ejemplo:icono "Trabajonoicono "Trabajo8 e 1i/e  NOICONOW-  m 7Sm NOICONONOICONO caption(Procedimiento de la librera)Esta primitiva deja que LOGO restaure la ventana especificada en caption (ttulo). Vea tambin ICONO.caption:(LISTA).Ejemplo:icono "Trabajonoicono "Trabajo> e  10 N ACTIVAVENTANA!  s ]7Sm !"!"ACTIVAVENTANAACTIVAVENTANA caption modoEsta primitiva deja que LOGO controle el modo de la ventana especificada por el ttulo (caption) (p.e. Oculta, Visible etc.). Es una primitiva para expertos. Con esta primitiva puede perder el control de MSWLogo, si no lleva cuidado, por lo que debe guardar su trabajo frecuentemente.caption:(LISTA).modo:(ENTERO).modo 0: Oculta la ventana y activa otra ventana.\ w ] 7Sm!"!"!"!"!"modo 1: Activa y despliega una ventana. Si la ventana est minimizada o maximizada, restaura la ventana a su tamao y posicin original. modo 2: Activa una ventana y la despliega minimizada.modo 3: Activa una ventana y la despliega maximizada.modo 4: Despliega una ventana como minimizada. La ventana activa permanece activa.modo 5: Activa una ventana y la despliega en su tamao y posicin actual. modo 6: Minimiza la ventana especificada y activa la siguiente ventana superior en el orden Z. [ 7Sm!"!"!"modo 7: Despliega una ventana con su tamao y posicin ms recientes. La ventana activa permanece activa.modo 8: Despliega una ventana en su estado actual. La ventana activa permanece activa.modo 9: Activa y despliega una ventana. Si la ventana est minimizada o maximizada, restaura la ventana a su tamao y posicin original.modo 10: Reservado.Ejemplo:para maximizaractivaventana "Trabajo 0activaventana [Pantalla de MSWLogo] 3xw N B T7Smrotula [atrs en 2 segundos]espera 120activaventana [Pantalla de MSWLogo] 1activaventana "Trabajo 1finmaximizar> 1 Յ1 G USO DEL COLORqN  ڀ7Sm  ̕'I-q㖥:^USO DEL COLORAlgunas primitivas (PONCOLORLAPIZ, PONCOLORRELLENO, PONCOLORPAPEL) especifican la intensidad de los colores Rojo, Verde Azul. Cada entrada representa qu cantidad de Rojo, Verde y Azul requiere el color. Cada entrada tiene un rango de 0-255. Al mezclar cantidades diferentes de colores puede crear 16,7 millones de colores diferentes.Si su monitor trabaja con un controlador de Windows de 256 colores tendr colores "reales". Se guardan los colores en una tabla llamada paleta. La paleta tiene 256 colores (escogidos entre los 16,7 millones de posibilidades). Puede saber si trabaja en modo 256 colores (si tiene una paleta) viendo en la ventana ESTADO "paleta usada". Si muestra "N/ A" (No aplicable) no tiene un controlador de Windows 256 (o ms). Vea la primitiva BORRAPALETA para ms detalles acerca del manejo de la paleta. @ J b7Sm$'ᣀSi su monitor trabaja con un controlador de 16 colores (o menos) de Windows simular todo los colores mezclando los 16 (o menos) colores. Si PONGROSOR es demasiado reducido (1) Windows no puede mezclar los colores. Windows no mezcla los colores en ninguna fuente. La documentacin de su tarjeta gr @ N fica explica las capacidades y cmo cargar nuevos controladores. MSWLogo es divertido en cualquier modo pero es igual o ms divertido en el modo 256 colores. \ C [ 7SmEjemplos:poncolorlapiz [000 000 000]negroponcolorlapiz [255 255 255]blancoponcolorlapiz [128 128 128]grisponcolorlapiz [255 000 000]rojoponcolorlapiz [000 255 000]verdeponcolorlapiz [000 000 255]azulObserve que el trabajo con una paleta en modo 256 colores ofrece varias ventajas y desventajas:La impresin de una imagen en 256 colores en una impresora en blanco y negro ser menos agradable que impresin en modo 16 colores, porque no mezcla puntos cuando se usa el modo 256 colores. @ *E D V7SmEl trabajo en modo 256 colores es ms lento y consume ms memoria y no es posible en algunas mquinas ms pequeas o mquinas con capacidades limitadas de vdeo.El trabajo en 256 colores produce colores mucho ms agradables y permite la manipulacin de 256 ficheros .BMP en color.Para los propsitos de compatibilidad con otras implementaciones de Logo y simplicidad para los nuevos programadores en Logo, MSWLogo soportar tambin colores de un slo ndice.Ejemplo:* C TG p u7Smmuestra colorlapiz[0 0 0]poncolorlapiz 5muestra colorlapiz5poncolorlapiz [255 0 0]muestra colorlapiz[255 0 0]El mapa de los ndices de colores es el siguiente: 0 -> [ 0 0 0] 1 -> [ 0 0 255] 2 -> [ 0 255 0] 3 -> [ 0 255 255] 4 -> [255 0 0] 5 -> [255 0 255] 6 -> [255 255 0] 7 -> [255 255 255] 8 -> [155 96 59] 9 -> [197 136 18]10 -> [100 162 64]11 -> [120 187 187]12 -> [255 149 119]|>*E G > L|7Sm13 -> [144 113 208]14 -> [255 163 0]15 -> [183 183 183]BTG H 12H ORIENTACIN EN 3D=UG OJ 7Sm Z㗓"( @ڀk3Z㗓"( @ڀ=$*YBOrientacin en 3DEl trabajo en 2D es simple:RUMBO cambia con GIRAIZQUIERDA, GIRADERECHA, PONRUMBO.Pero en modo 3D (PERSPECTIVA) las cosas son ms complicadas:RUMBO cambia con GIRAIZQUIERDA, GIRADERECHA, PONRUMBO.BALANCEO? cambia con BALANCEAIZQUIERDA, BALANCEA, PONBALANCEO.H mL { ĀG7SmȱUˀU<CABECEO? cambia con CABECEA, BAJANARIZ, PONCABECEO.De cualquier modo, hay ms. BALANCEO? Puede cambiar tambin RUMBO. CABECEO? Puede tambin cambiar BALANCEO? Y as sucesivamente. Todos actan interactivamente unos con otros. La manera ms fcil de entenderlo es con un ejemplo:perspectivagiraderecha 90(muestra redondea balanceo? redondea cabeceo? redondea rumbo)0 0 90borrapantalla>OJ N N j}7Smbajanariz 90balancea 90cabecea 90(muestra redondea balanceo? redondea cabeceo? redondea rumbo)0 0 90Slo us balanceos y cabeceos pero el rumbo cambi.Pero no se inquiete porque MSWLogo lo hace fcil, slo necesita entender algunas reglas bsicas para no sentirse perdido en un espacio 3D. La tortuga controla BALANCEO?, CABECEO?, y RUMBO cambia con uno y otro pero en una manera segura. Lo ms importante es que un cambio en RUMBO (con GIRADERECHA, GIRAIZQUIERDA o PONRUMBO) no cambiar BALANCEO? o CABECEO?. Esto es; podr usar mucho su cdigo 2D para 3D.mL ` w7SmTiene que entender otra cosa. No puede decir simplemente:perspectivaponbalaceo 45poncabeceo 45ponrumbo 45(muestra redondea balanceo? redondea cabeceo? redonN G dea rumbo)45 45 45Y esperar estar con una orientacin absoluta de 45, 45, 45.bpgiraderecha 45balancea 30cabecea 30; Ahora trata de ponerse a 45,45,45 de nuevoponbalanceo 45poncabeceo 45ponrumbo 45(muestra redondea balanceo? redondea cabeceo? redondea rumbo).N N s w7SmCП@E݀248 29 45Pero no se inquiete; hay una solucin, llamada PONORIENTACION.bpgiraderecha 45balancea 30cabecea 30; Ahora trate de ponerse a 45,45,45 de nuevoponorientacion [45 45 45](muestra redondea balanceo? redondea cabeceo? redondea rumbo)45 45 45PONORIENTACION entiende las interacciones entre BALANCEO?, CABECEO? y RUMBO. Puede informarse sobre la ORIENTACION presente o guardada usando la primitiva ORIENTACION.' u | ƀW7SmSbpgiraderecha 45muestra orientacion[0 0 45]haz "saveit orientaciongiraderecha 90cabecea 180ponorientacion :saveitmuestra orientacion[0 0 45]Otra primitiva que debe conocer acerca de ORIENTACION es HACIAXYZ. HACIAXYZ devolver una orientacin compatible con PONORIENTACION.ponorientacion haciaxyz [100 100 0]muestra orientacion[0 0 45]avanza distanciaxyz [100 100 0]muestra pos3d[100 100 0]s3N @ Ng7SmNo necesita pensar en una ORIENTACION absoluta. Se usar ORIENTACION y PONORIENTACION principalmente para guardar, informar y restaurar su ORIENTACION (como haca en 2D con RUMBO y PONRUMBO). Y, como se explic antes, los cambios en su rumbo con GIRADERECHA, GIRAIZQUIERDA y PONRUMBO slo tienen efecto en 2D.Debe pensar tambin de la misma manera que en 2D. No se preocupa por su RUMBO absoluto en 2D, es ms frecuente poner un RUMBO relativo. Piense que est en un avin y que la tortuga est en la cabina del piloto. Entonces decida donde quiere ir.Fu . 1hՅy 3. P CUERPOS SLIDOS EN 3Dy7 B Ro7Sm CUERPOS SLIDOS EN 3DLos slidos en 3D en MSWLogo usan todas las primitivas habituales en 3D y unas primitivas adicionales que ayudan a que MSWLogo entienda qu dibuja. Para quitar las lneas ocultas o quitar las superficies ocultas tiene que definir superficies (no vectores). Se rellenan simplemente las caras de los polgonos. Slo necesita decirle a MSWLogo cuando comienza una superficie y cuando termina. Si us slo vectores para dibujar una caja, MSWLogo no sabra si tiene 6 caras cerradas (un cubo slido) o tiene 4 caras y las bases abiertas. :. D V7SmLos programadores de Logo estn acostumbrados al relleno de polgonos, as que no debe ser un concepto extrao. Pero MSWLogo en modo 3D cuidar del relleno correcto de ese polgono, con respecto al color sobre la base de lo que sus ojos ven, la fuente luminosa, obstrucciones, y el color de la superficie. Las nuevas primitivas:Empiezapoligono: Comienza un polgono nuevo.Terminapoligono: Fin de la definicin del polgono.Muestrapoligono: Da sombra y muestra todos los polgonos definidos.!  w U7Smpw^.YӀ4҄;Activa -3: Usa esta tortuga para posicionar la fuente luminosa.Ponluz: Se usa para establecer cmo se deben iluminar los objetos.El color del lpiz cuando dibuja superficies en 3D es el color de la superficie.El modelo de iluminacin en 3D en MSWLogo es muy poderoso y usa algunas de las tcnicas ms modernas. No har sombras y reflexiones etc.EMPIEZAPOLIGONOTERMINAPOLIGONOMUESTRAPOLIGONOPONLUZN P E Z7SmLUZ@ 1v4 p EMPIEZAPOLIGONOP o Y7Sm w^.YӀڧ& P EMPIEZAPOLIGONOEMPIEZAPOLIGONOEMPIEZAPOLIGONO le dice MSWLogo que se va a definir un polgono. Cada movimiento siguiente dar como resultado la coordenada de un vrtice del polgono. Se completa la definicin con la primitiva TERMINAPOLIGONO. Para ver sombreados todos los polgonos definidos se emplea la primitiva MUESTRAPOLIGONO. Vea tambin RESTRICCIONES DE LOS POLGONOS.Ejemplo:para cuadradov p C V7Smempiezapoligonorepite 4 [av 100 gd 90]terminapoligonofinperspectivarepite 72 [cuadrado bal 5]muestrapoligono@ 1y ;5  TERMINAPOLIGONOp j g7Sm pڧ&TERMINAPOLIGONOTERMINAPOLIGONOTERMINAPOLIGONO le dice a MSWLogo que se ha completado la definicin del polgono, comenzada con la primitiva EMPIEZAPOLIGONO. Observe que la coordenada actual no se aade a un vrtice cuando se usa TERMINAPOLIGONO. Vea tambin RESTRICCIONES DE LOS POLGONOS.Ejemplo:Para cuadradoempiezapoligonorepite 4 [av 100 gd 90]terminapoligonofinperspectivarepite 72 [cuadrado bal 5]N  < H$7Smmuestrapoligono@ [ 1v6[ - MUESTRAPOLIGONO7 ΀o7Sm pw^.ZG4҄;ڧ&MUESTRAPOLIGONOMUESTRAPOLIGONOMUESTRAPOLIGONO pide a MSWLogo que borre la pantalla y muestre todos los polgonos definidos con EMPIEZAPOLIGONO y TERMINAPOLIGONO . Mostrar los polgonos sombreados. Los polgonos sern iluminados de acuerdo con la posicin de la fuente luminosa, usando ACTIVA -3 y para establecer los parmetros de iluminacin se utiliza PONLUZ. Vea tambin Restricciones de los polgonos.[ J b7SmObserve que si necesita agregar otros objetos a su dibujo, como textos o bitmaps etc. debe hacerlo despus del ltimo MUESTRAPOLIGONO.Observe que puede usar MUESTRAPOLIGONO inmediatamente despus de cualquier TERMINAPOLIGONO para ver los polgonos sombreados. Pero tenga en cuenta que MUESTRAPOLIGONO aminorar el programa considerablemente si lo llama con cada TERMINAPOLIGONO.Ejemplo:para cuadradoempiezapoligonorepite 4 [av 100 gd 90]terminapoligono~> - @ P|7Smfinperspectivarepite 72 [cuadrado bal 5]muestrapoligono7 d 10;)7d ] PONLUZa- ' b 7Sm ZGPONLUZPONLUZ tipoEstablece cmo se iluminarn los objetos. El argumento es una lista de dos nmeros en un rango de 0,0 a 1.0, la cantidad de ambiente y luz difusa. Ambiente define cmo se ilumina la escena, mientras mayor sea, ms luminosa ser la luz. Luz difusa no es una propiedad de la fuente luminosa, indica si la superficie es ms o menos lisa (esparce la luz). Un valor alto significa que los objetos son ms lisos y reflectores (como un mrmol) un valor bajo significa que los objetos son speros (como la tiza). Para posicionar la luz se utiliza A ACTIVA -3. Vea tambin LUZ.6d ] q 7Smtipo:(LISTA) Lista de dos nmeros que representan Ambiente y luz difusa (cada uno en un rango de 0.0 a 1.0).Ejemplo 1:ponluz [0.3 0.6]muestra luz[0.3 0.6]Ejemplo 2:para cuadradoempiezapoligonorepite 4 [av 100 gd 90]terminapoligonofinbpperspectivaborrapaletaponcolorlapiz [255 0 0]poncp [0 0 0]repite 72 [cuadrado bal 5]muestrapoligonorepite 50 [ponluz (lista (azar 100)/100 (azar 100)/100) escribe luz espera 60]4' 18 A LUZ1] A s c7Sm 4҄; A ] LUZtipo LUZDevuelve los atributos de iluminacin en una lista de dos nmeros con los valores de Ambiente y Difusin. Vea tambin PONLUZ.tipo:(LISTA) Lista de dos nmeros que representan los valores actuales de Ambiente y Difusin.Ejemplo:ponluz [0.3 0.6]muestra luz[0.3 0.6]O  1)9  Restricciones de los polgonosGA  W |7Sm Restricciones de los polgonos1: El primer polgono tiene 3 vrtices y la forma de un tringulo.2: Un polgono debe ser convexo.3: Un polgono debe estar dibujado en 2D (sin cabecea, bajanariz, balancea, balanceaizquierda) entre empiezapoligono y terminapoligono.Nota en 1. El tringulo puede ser poco profundo.Est permitido:empiezapoligonohaz "savepos pos3dav 100gd 0.00000001av 100posicionate :saveposterminapoligonoNo est permitido (aunque produce un polgono convexo)C  c 7Smempiezapoligonohaz "savepos pos3dav 50av 50gd 90av 100posicionate :saveposterminapoligonoNota en 2: Qu significa convexo?Si al unir dos vrtices de un polgono con una lnea recta, la lnea est fuera del polgono, ste no es convexo.Los tringulos, cuadrados, crculos etc. son convexos.La letra "E" no es un polgono convexo.Est permitido:repite 4 [av 100 gd 90]No est permitido:repite 4 [av 50 gd 90 repite 3 [av 25 gi 90] gd 180 av 50 gd 90]# = i u7SmNota en 3: Qu significa en 2D?El polgono debe ser planoEst permitido:repite 4 [av 100 gd 90]No esta permitidorepite 4 [av 50 bal 90 gd 90 repite 3 [av 25 gi 90] gd 180 balanceaizquierda 90 av 50 gd 90]Nota en 2 y 3:Puede utilizar CIRCULO, ELIPSE y ARC.Ejemplo (usando CIRCULO):perspectivarepite 36 ~ [ empiezapoligono circulo 100 terminapoligono bal 10 ]muestrapoligonoEjemplo (usando arc):  I `#7Smperspectivarepite 36 ~ [ empiezapoligono arc2 180 100 GD 90 AV 200 GD 90 terminapoligono bal 10 ]muestrapoligonoX'= o 1T:o PREGUNTAS SOBRE LA TORTUGA Y LA VENTANA9 M jr7Sm ϵ7# PREGUNTAS SOBRE LA TORTUGA Y LA VENTANAVISIBLE?9o . 1l;. VISIBLE? Ҁ17Sm I#FVISIBLE?verdad VISIBLE?Devuelve VERDADERO si la tortuga est en pantalla (visible), FALSO, si est oculta. Vea MUESTRATORTUGA y OCULTATORTUGA.verdad:(BOOLEANO).Ejemplo:muestratortugamuestra visible?verdaderoocultatortugamuestra visible?falsoB. 1-T< @ CONTROL DEL LPIZ5 ? B R7Sm CONTROL DEL LPIZLa tortuga tiene un lpiz para dibujar. En cualquier momento el lpiz puede estar alzado (con lo que si se mueve la tortuga, no dibuja) o bajado (en que caso de que la tortuga se mueva, deja un rastro). Si el lpiz est bajado, puede dibujar en uno de tres modos: PONLAPIZ (para que dibuje cuando se mueve la tortuga), GOMA (para que borre lo que se haba dibujado en su camino), o INVERSOLAPIZ (para que invierta el estado de cada punto a lo largo del camino de la tortuga). @ 7SmCC׀4D*՚(㕘bV  ̕'I-q$'ᣀz#7^BAJALAPIZSUBELAPIZPONLAPIZGOMAINVERSOLAPIZLAPIZNORMALPONCOLORLAPIZPONCOLORRELLENOPONCOLORPAPELPONGROSORPONPATRONLAPIZPONTIPOLAPIZBORRAPALETA? @ : ? F@ 1 l=F@ A BAJALAPIZ @ A L f7Sm BAJALAPIZBAJALAPIZBLPone la posicin del lpiz hacia abajo, sin cambiar el modo.Ejemplo:repite 10 [av 10 sl av 10 bl]: F@ OA 1 >OA B SUBELAPIZA B L f 7Sm SUBELAPIZSUBELAPIZSLPone la posicin del lpiz hacia arriba, sin cambiar el modo.Ejemplo:repite 10 [av 10 sl av 10 bl]9OA XB 1]ہ?XB |C PONLAPIZ$B |C P n7Sm PONLAPIZPONLAPIZPLAPone la posicin de lpiz hacia abajo ( BALALAPIZ), en el modo PONLAPIZ que es el modo habitual en que dibuja la tortuga.Ejemplo:inversolapizav 100re 100ponlapizav 100re 1005XB C 10}@C D GOMA|C D Y E7Sm D*GOMAGOMAPone la posicin de lpiz hacia abajo ( BALALAPIZ), en el modo GOMA. Para volver al modo normal use PONLAPIZ.Ejemplo:av 100gomare 100= C D 1wہZAD #F INVERSOLAPIZ:D #F ] 7Sm D*INVERSOLAPIZINVERSOLAPIZILAPone la posicin de lpiz hacia abajo ( BALALAPIZ), en el modo INVERSOLAPIZ. Para volver al modo normal use PONLAPIZ.Ejemplo:inversolapizav 100re 100ponlapizav 100re 100< D _F 1J}B_F mG LAPIZNORMAL#F mG O l7Sm LAPIZNORMALLAPIZNORMAL(Procedimiento de la librera)Pone el estado del lpiz como si se usaran las primitivas BAJALAPIZ y PONLAPIZ.Ejemplo:inversolapizav 100lapiznormalre 100> _F G 1ZʆCG 8K PONCOLORLAPIZmG I %7Sm %awbIYPONCOLORLAPIZPONCOLORLAPIZ colorvectorPONCL colorvectorPone el color del lpiz colorvector. Colorvector es una lista con las intensidades de [Rojo Verde Azul], en un rango 0-255. El color del lpiz se emplea tanto en textos (ROTULA) como en los dibujos de la tortuga (p. e. con AVANZA). Para una explicacin de los argumentos, vea USO DEL COLOR.colorvector:(LISTA).rG 8K S t?7SmEjemplo:repite 255 [poncolorlapiz (lista cuentarepite 0 0) av 100 re 100]Ejemplo 2: (un error frecuente en Logo)haz "rojo 100haz "verde 100haz "azul 100poncolorlapiz [:rojo :verde :azul]poncolorlapiz (lista :rojo :verde :azul) @I xK 11DxK iN PONCOLORRELLENO&8K M +7Sm j8bIYPONCOLORRELLENOPONCOLORRELLENO colorvectorPOCCR colorvectorPone como color de relleno colorvector. Colorvector es una lista con las intensidades de [Rojo Verde Azul]. El rellenado con color se consigue con las primitivas RELLENA y RECTANGULORELLENO. Para una explicacin de los argumentos, vea USO DEL COLOR.colorvector:(LISTA).Ejemplo:bprepite 4 [av 100 gd 90]xK iN H ^7Smgd 45slav 20poncolorrelleno [0 255 0]rellenabprepite 4 [av 100 gd 90]gd 45slav 20poncolorrelleno [125 125 125]rellena> M N 1lʆEN PONCOLORPAPELfiN { Ā7Sm bIYPONCOLORPAPELPONCOLORPAPEL colorvectorPONCP colorvectorPone como color de la pantalla colorvector. Colorvector es una lista con las intensidades de [Rojo Verde Azul]. Para una explicacin de los argumentos,N iN vea USO DEL COLOR.colorvector:(LISTA) Ejemplo:poncolorpapel [0 0 0]poncolorlapiz [255 255 255]repite 4 [av 100 gd 90]: N ΀ 1?F΀ ӂ PONGROSOR ӂ ` K7SmPONGROSORPONGROSOR tamaoPONG tamaoPone las caractersticas del lpiz dependientes del hardware. Es posible que esta primitiva no sea compatible con diferentes maquinas. El "tamao" es una lista de dos miembros, anchura y altura. MSWLogo slo usa la anchura. Por ello los dos miembros tienen el mismo valor.tamao:(LISTA) Lista de 2 enteros, anchura y altura del lpiz.Ejemplo:pongrosor [5 5]?΀  1G PONPATRONLAPIZLӂ J d7Sm PONPATRONLAPIZPONPATRONLAPIZ pattern(No soportado aun en MSWLogo)=  1nH  PONTIPOLAPIZ1  _ 7Sm PONTIPOLAPIZPONTIPOLAPIZ lista(Procedimiento de la librera)Pone la posicin del lpiz, el modo, y las caractersticas dependientes del hardware de acuerdo con la informacin de la entrada que debe ser una lista.lista:(LISTA) Una lista con los valores [bajalapiz? lapiz grosor colorlapiz ponlapiz].Ejemplo:bp repite 4 [av 100 gd 90]haz "savepen lapiz?pongrosor [20 20]bp repite 4 [av 100 gd 90]pontipolapiz :savepenbp repite 4 [av 100 gd 90]< R 1IR BORRAPALETAM x 7Sm  ̕I-q'bIYBORRAPALETABORRAPALETAEsta primitiva borra la paleta de colores. La paleta de colores se llena con el uso de las primitivas PONCOLORLAPIZ, PONCOLORPAPEL, y PONCOLORRELLENO . Se puede usar la paleta slo cuando Windows est en el modo 256 colores (vea USO DEL COLOR). Por ejemplo:repite 256 [poncolorlapiz (lista cuentarepite 0 0)]Llena la paleta con 256 matices de rojo. Si ahora quiere 256 matices de verde tiene que borrar la paleta.cR  ` 7SmsX`Si quiere una gama amplia de colores, tendr que seleccionar la paleta. Vea el ejemplo: repite 6~ [~ haz "rojo cuentarepite*40~ repite 6~ [~ haz "verde cuentarepite*40~ repite 6~ [~ haz "azul cuentarepite*40~ poncolorlapiz (lista :rojo :verde :azul)~ ]~ ]~ ]Observe que cuando se carga un .BMP (CARGADIB) se utiliza una paleta de colores. La paleta se borra con BORRAPALETA. Cuando se borra la pantalla, no se borra la paleta.t G ^7SmEjemplo:repite 256 [poncolorlapiz (lista cuentarepite 0 0)]estadoquitaestadoborrapaletaestadoquitaestadoI  1|J 9 Preguntas sobre el lpiz3 9 7Sm ac(4N׀j+/(ŭɀǀ)U׀ Preguntas sobre el lpizBAJALAPIZ?LAPIZCOLORLAPIZCOLORRELLENOCOLORPAPELGROSORPENPATTERNLAPIZ?;  t 1 Kt ? BAJALAPIZ?b9 ? i 7Sm BAJALAPIZ?verdad BAJALAPIZ?Devuelve VERDADERO si el lpiz est bajado y FALSO, si no lo est.verdad:(BOOLEANO).Ejemplo:slsisino bajalapiz? [escribe [El lpiz est bajado]] [escribe [El lpiz est subido]El lpiz est subidoblsisino bajalapiz? [escribe [El lpiz est bajado]] [escribe [El lpiz est subido]El lpiz est bajado6t u 1.Lu LAPIZ_? s 7Sm LAPIZmodo LAPIZDu ? evuelve una de las palabras PAINT, GOMA, o REVERSE, segn el modo actual del lpiz..modo:(PALABRA).Ejemplo:ponlapizmuestra lapizpaintgomamuestra lapizgomainversolapizmuestra lapizreverse; u  1 ZM COLORLAPIZZ 7Sm COLORLAPIZcolorvector COLORLAPIZcolorvector CLDevuelve informacin sobre el color del lpiz en una lista con las intensidades de los colores [Rojo Verde Azul] en un rango 0-255.colorvector:(LISTA).Ejemplo:poncolorlapiz [100 200 50]muestra colorlapiz[100 200 50]poncolorlapiz [0 0 0]muestra colorlapiz[0 0 0]=  ; 1N;  COLORRELLENO`  Ҁ7Sm COLORRELLENOcolorvector COLORRELLENODevuelve informacin sobre el color de relleno en una lista que contiene las intensidades de los colores [Rojo Verde Azul] en un rango 0-255.colorvector:(LISTA).Ejemplo:poncolorrelleno [100 200 50]muestra colorrelleno[100 200 50]poncolorrelleno [0 0 0]muestra colorrelleno[0 0 0]; ; X 1ZOX 2 COLORPAPELX 2 Ҁ7Sm COLORPAPELcolorvector COLORPAPELDevuelve informacin sobre el color de la pantalla en una lista que contiene las intensidades de los colores [Rojo Verde Azul] en un rango 0-255.colorvector:(LISTA).Ejemplo:poncolorpapel [100 200 50]muestra colorpapel[100 200 50]poncolorpapel [0 0 0]muestra colorpapel[0 0 0]7X i 1"Pi GROSOR2 v !7Sm GROSORtamao GROSORDevuelve informacin sobre el grosor del lpiz en una lista que contiene dos enteros [Ancho Alto]. Ancho no se usa en MSWLogo.tamao:(LISTA).Ejemplo:pongrosor [20 20]muestra grosor[20 20]pongrosor [1 1]muestra grosor[1 1]; i * 1jQ* PENPATTERNH I b7Sm PENPATTERNpattern PENPATTERN(No est soportado aun en MSWLogo)7* 1 "R LAPIZ?~ k 7Sm #7LAPIZ?lista LAPIZ?(Procedimiento de la librera)Devuelve una lista con informacin sobre el lpiz: posicin, modo, y caractersticas especficas del hardware, que se puede usar con PONTIPOLAPIZ.lista:(LISTA).Ejemplo:bp repite 4 [av 100 gd 90]haz "savepen lapiz?pongrosor [20 20]bp repite 4 [av 100 gd 90]pontipolapiz :savepenbp repite 4 [av 100 gd 90]E 1jS MANEJO DE LA MEMORIA $7Sm 㡺s*e3pׂ$55h=MANEJO DE LA MEMORIA DEFINICIN DE PROCEDIMIENTOSDEFINICIN DE VARIABLESPROPIEDADES DE LAS LISTASPREDICADOS (espacio de trabajo)PREGUNTASINSPECCINCONTROL DE LA MEMORIA M 1< T DEFINICIN DE PROCEDIMIENTOSa 7Sm +˜sU5K,4:Ā,8 DEFINICIN DE PROCEDIMIENTOSPARAFINDEFINETEXTOFULLTEXTCOPIADEF5  1U @PARAK ji 7Sm PARAPARA nombreproc :entrada1 :entrada2 ...(Forma especial)Esta primitiva le dice a Logo que acepte una definicin de p j rocedimiento. El procedimiento se llamar nombreproc y no debe existir otro procedimiento con el mismo nombre. Las entradas o argumentos se llamarn entrada1, entrada2, etc. Un procedimiento puede tener varias entradas o ninguna. Los nombres de procedimientos y de entradas se pueden escribir indistintamente en maysculas o minsculas.J T v7Sm nombreproc:(PALABRA) Nombre del procedimiento que se va a definir (no debe estar precedido por ["]).entrada1:(PALABRA) Primer argumento del procedimiento que se va a definir (precedido por [:]).entrada2:(PALABRA) Segundo argumento del procedimiento que se va a definir (precedido por [:]).Diferente de las otras primitivas, PARA toma como entradas las palabras que se teclean en una lnea de instrucciones, como si todas estuvieran entrecomilladas. (Por ello es "una forma especial".)jU x7SmEsta versin de Logo admite un nmero variable de entradas en los procedimientos. Todos los procedimientos tienen un nmero MNIMO, por DEFECTO, y MXIMO de entradas. El nmero MNIMO de entradas es el nmero de entradas requeridas. Una entrada se indica con: :nombreentradaNotacin.Adems de las entradas requeridas puede haber cero o ms entradas opcionales, que se representan con la siguiente notacin:[:inputname valor.expresion]j=Q p37SmCuando se invoca el procedimiento, si no se proporcionan entradas reales para las entradas optativas, se pone como valor de las correspondientes entradas valor.expresion. Estas entradas se procesan de izquierda a derecha, as valor.expresion se puede basar en la ltima entrada. Ejemplo:para proc :inlista [:startvalor primero :inlista]Si se invoca el procedimiento como:proc [a b c]Entonces la variable INLISTA tendr el valor [A B C] y la variable STARTVALOR tendr el valor A. Si se invoca el procedimiento como:6s R r7Sm(proc [a b c] "x)Entonces INLISTA tendr el valor [A B C] y STARTVALOR el valor X.Despus de todas las entradas requeridas y de las optativas, puede venir una entrada "restante", con la siguiente notacin:[:inputname]Slo puede haber una entrada de este tipo. Cuando se invoca el procedimiento, el valor de esta entrada ser una lista que contiene todas las entradas reales con tal que no se incluya un nombre de una de las entradas requeridas u optativas. Ejemplo:U= \ 7Smpara proc :in1 [:in2 "foo] [:in3]Si este procedimiento se invoca como: proc "xEntonces IN1 tiene el valor X, IN2 tiene el valor FOO, e IN3 tiene el valor [] (lista vaca). Si se invoca como:(proc "a "b "c "d)Entonces IN1 tiene el valor A, IN2 tiene el valor B, e IN3 tiene el valor [C D].El nmero MXIMO de entradas para un procedimiento es infinito si tiene una entrada restante; de lo contrario, sera el nmero de entradas requiridas ms el nmero de entradas optativas.s V z_7Sm˜El nmero de entradas por DEFECTO para un procedimiento, que es el nmero de entradas que aceptar si no se invoca entre parntesis, es generalmente igual a MNIMO. Si se quiere un nmero diferente por DEFECTO debe indicarse ponindolo despus del ltimo objeto de la lnea PARA. Ejemplo:para proc :in1 [:in2 "foo] [:in3] 3Este procedimiento tiene un MNIMO de una entrada, tres entradas por DEFECTO, y un MXIMO infinito.Logo responde a la primitiva PARA entrando en el modo de definicin de procedimientos. El carcter prompt cambia de "?" a ">" y cualquier instruccin que teclee forma parte de la definicin hasta que teclee en una sola lnea la palabra FIN. @j 7Sm@ Ejemplo:para eco :times :objetorepite :times [escribe :objeto]fineco 2 "HolaHolaHolaeco 3 "AdisAdisAdisAdis4A1 VAgBFINg@gB Ԁ7Sm +FINFIN(Forma especial)Permite que termine un procedimiento. Vea tambin PARA.Ejemplo:para eco :times :objetorepite :times [escribe :objeto]fineco 2 "HolaHolaHolaeco 3 "AdisAdisAdisAdis7AB1qWBHDEFINE:gBF ]7Sm +˜V.L.DEFINEDEFINE nombreproc textoDefine un procedimiento de nombre nombreproc y texto texto. Si existe un procedimiento con el mismo nombre, la nueva definicin sustituye a la antigua. El texto de la entrada debe ser una lista cuyos miembros sern sublistas. La primera sublista contiene las entradas y se parece a la lnea PARA, pero sin la palabra PARA y sin el nombre del procedimiento, y sin los dos puntos delante de los nombres de las entradas. En otras palabras, los miembros de la primera sublista son palabras que indican los nombres de las entradas requeridas y listas con los nombres de las entradas opcionales o restante. Las dems sublistas de la entrada texto forman el cuerpo del procedimiento, con una sublista por cada lnea de instrucciones. (No hay una lnea FIN en la entrada texto.) No se puede redefinir un procedimiento, a no ser que la variable REDEF? tenga el valor VERDADERO.@BHa 7Smnombreproc:(PALABRA) Nombre del procedimiento que se va a definir.texto:(LISTA) Definicin del procedimiento como una lista.Ejemplo:define "abc [[a b] [escribe :a] [escribe :b]]abc "Hola "AdisHolaAdis6FNH1އXNHKTEXTOAHJq 7Sm sUTEXTOtexto TEXTO nombreprocDevuelve el texto de un procedimiento llamado "nombreproc" en la forma que se requiere para un DEFINE: una lista con sublistas, la primera describe las entradas del procedimiento y las dems las lneas del cuerpo. TEXTO no refleja el formato en que se edit el procedimiento, como lneas y espacios extras.texto:(LISTA) Definicin del procedimiento como una lista.nombreproc:(PALABRA) Nombre del procedimiento.NHKx ;7SmEjemplo:define "abc [[a b] [escribe :a] [escribe :b]]abc "Hola "AdisHolaAdismuestra texto "abc[[a b] [escribe :a] [escribe :b]]9JK1q!YKnLFULLTEXTCKnLN l7Sm FULLTEXTtexto FULLTEXT nombreproc(No tiene equivalencia)9KL1އZLCOPIADEFnnLO 7Sm V.L.Y*yCOPIADEFCOPIADEF nuevonom viejonomCrea un procedimiento de nombre "nuevonom", idntico a otro llamado "viejonom". El ms reciente puede ser una primitiva. Si "nuevonom" estaba definido, se pierde la definicin anterior. Si "nuevonom" es una primitiva, no se permite su redefinicin a no ser que la variable REDEF? tenga el valor VERDADERO. Las definiciones creadas con COPIADEF no se guardan con GUARDA; las primitivas no se guardan nunca, y los procedimientos creados con COPIADEF se ocultan. ( cuando ejecuta IM o IMTS aparece el nombre antiguo porque se oculta el nuevo.)lL ̀7Sm#$OnLNota: dialectos de Logo se diferencian en el orden de las entradas. Estos dialectos usan "el orden HAZ", y no "el orden NOMBRE."nuevonom:(PALABRA) Nombre del nuevo procedimiento.viejonom:(PALABRA) Nombre del antiguo procedimiento.Ejemplo:para bienvenidaescribe "HolafinbienvenidaHolacopiadef "decirHola "bienvenidadecirHolaHolaHO1!P[DEFINICIN DE VARIABLESP Ҁ7Sm #$[^sDEFINICIN DE VARIABLESHAZNOMBRELOCALHAZLOCALVALOR41j\'HAZ6' ΀m7Sm HAZHAZ nombrevar valorAsigna el valor indicado en valor a la variable nombrevar, que debe ser una palabra sin que importe si est en maysculas o minsculas. Si la variable ya existe, cambia su valor. Si no, se crea una nueva variable global.nombrevar:(PALABRA) Nombre de la variable.valor:(OBJETO) Objeto que ser asignado a la variable.Ejemplo:haz "foo [Hola, cmo ests]muestra :foo[Hola, cmo ests]7^16P@]^]NOMBRE.'q {7Sm #NOMBRENOMBRE valor nombrevar (Procedimiento de la librera)Asigna el valor indicado en el argumento valor a la variable nombrevar, que debe ser una palabra, sin que importe si est en maysculas o minsculas. Si la variable ya existe, cambia su valor. Si no, se crea una nueva variable global. Esta orden es parecida a HAZ pero con la entrada en orden inverso.valor:(OBJETO) Objeto que ser asignado a la variable.}^]T x7Smnombrevar:(PALABRA) Nombre de la variable.Ejemplo:nombre [Hola, cmo ests] "foomuestra :foo[Hola, cmo ests]61$#^LOCAL]v 7Sm [#LOCALLOCAL nombrevarLOCAL nombrevarlista(LOCAL nombrevar1 nombrevar2 ...)Acepta como entradas una o ms palabras, o una lista de palabras. Se crea una variable por cada una de las entradas, con el nombre de esa palabra. Las variables son locales en el procedimiento en que se encuentran. Las variables en Logo tienen un alcance dinmico; una variable local en un procedimiento no est disponible en los subprocedimientos invocados por ese procedimiento. Las variables creadas con LOCAL no tienen valor inicial; se les debe asignar un valor (p.e.con HAZ) antes de que el procedimiento intente leer su valor.b 7Smnombrevar:(PALABRA) Nombre de una variable local.nombrevarlista:(LISTA) Lista de nombres (palabras) que sern variables locales.nombrevar1:(PALABRA).nombrevar2:(PALABRA).Ejemplo:para foohaz "bar 1escribe :barfinfoo1muestra :bar1para abclocal "xyzhaz "xyz 1escribe :xyzfinabc1muestra :xyzxyz no tiene valor91H@_ɎHAZLOCALɎg Q7Sm HAZLOCALHAZLOCAL nombrevar valor(Procedimiento de la librera)Es la abreviatura de:LOCAL nombrevar HAZ nombrevar valor(No funciona correctamente)61#`VALORPɎ 7Sm VALORvalor VALOR nombrevarvalor : nombrevarDevuelve el valor de una variable cuyo nombre es la eɎntrada. Tiene como abreviatura (:)valor "foo equivale a :foovalor:(OBJETO).nombrevar:(PALABRA).Ejemplo:haz "foo [Hola, cmo ests]muestra valor "foo[Hola, cmo ests]muestra :foo[Hola, cmo ests]J61 Ma6PROPIEDADES DE LAS LISTASMt 7Sm g#.ȀPROPIEDADES DE LAS LISTASPONPROPPROPIEDADBOPROPLPROP86/1-bb/$PONPROP1` Q7Sm PONPROPPONPROP lpropnombre propnombre valorAade una propiedad de nombre propnombre y con el valor valor a la lista lpropnombre.lpropnombre:(PALABRA) Nombre de una lista.propnombre:(PALABRA) Nombre de la propiedad.valor:(OBJETO) Objeto asignado a la propiedad.Ejemplo:ponprop "lprop1 "p1 1ponprop "lprop1 "p2 2ponprop "lprop2 "p1 10ponprop "lprop2 "p2 20muestra propiedad "lprop1 "p1m/$W ~7Sm1muestra propiedad "lprop1 "p22muestra propiedad "lprop2 "p110muestra propiedad "lprop2 "p220: `^1M c^PROPIEDADB$ o7Sm PROPIEDADvalor PROPIEDAD lpropnombre propnombrevalor PROP lpropnombre propnombreDevuelve el valor de una propiedad (propnombre) de una lista de propiedades (lpropnombre), o una lista vaca si no existe tal propiedad.valor:(OBJETO) Valor de la propiedad.lpropnombre:(PALABRA) Nombre de una lista de propiedades a la que se quiere acceder.propnombre:(PALABRA) Nombre de la propiedad que se quiere obtener.X^f 7SmEjemplo:ponprop "lprop1 "p1 1ponprop "lprop1 "p2 2ponprop "lprop2 "p1 10ponprop "lprop2 "p2 20muestra propiedad "lprop1 "p11muestra propiedad "lprop1 "p22muestra propiedad "lprop2 "p110muestra propiedad "lprop2 "p2207/1Vbd/NBOPROPN 7Sm BOPROPBOPROP lpropnombre propnombreElimina la propiedad "propnombre" de la lista de propiedades "lpropnombre".lpropnombre:(PALABRA) Nombre de una lista de propiedades.propnombre:(PALABRA) Nombre de una propiedad.Ejemplo:ponprop "lprop1 "p1 1ponprop "lprop1 "p2 2muestra lprop "lprop1[p2 2 p1 1]boprop "lprop1 "p1muestra lprop "lprop1[p2 2]6/1 ^eLPROP$Ni w7Sm LPROPlista LPROP lpropnombreDevuelve una lista en la que los elementos impares son los nombres y los elementos pares los valores de las propiedades de la lista indicada en el argumento. Devuelve una copia de la actual lista de propiedades.lista:(LISTA) Lista de propiedades y valores.lpropnombre:(PALABRA) Nombre de una lista de propiedades.Ejemplo:ponprop "lprop1 "p1 1ponprop "lprop1 "p2 2muestra lprop "lprop1fQ r*7Sm[p2 2 p1 1]P^1F͈f^TPREDICADOS (Espacio de trabajo)oT ހ7Sm mr'$/{ou2ѪPREDICADOS (espacio de trabajo)DEFINIDO?PRIMITIVA?DEFINIDO?(OTRO USO)VAR?MACRO?: ^1^gDEFINIDO? Tx 7Sm TDEFINIDO?verdad DEFINIDO? nombreDevuelve VERDADERO si su entrada o argumento es el nombre de un procedimiento.verdad:(BOOLEANO).nombre:(PALABRA).Ejemplo:haz "foo 1para barfinmuestra definido? "foofalsomuestra definido? "barverdadero; W1=͈hWYPRIMITIVA?Yx 7Sm PRIMITIVA?verdad PRIMITIVA? nombreDevuelve VERDADERO si la entrada es el nombre de una primitiva. Observe que algunos de los procedimientos descritos en este documento son procedimientos de la librera, no primitivas.verdad:(BOOLEAN).nombre:(PALABRA).Ejemplo:para avanzad :argavanza :argfinmuestra primitiva? "avanzadfalsomuestra primitiva? "avanzaverdaderoEW1Ki DEFINIDO? (otro uso)#Yo i7Sm DEFINIDO? (otro uso)verdad DEFINIDO? nombreDevuelve VERDADERO si la entrada es el nombre de un procedimiento definido por el usuario, incluido en una librera de procedimiento. (Sin embargo, Logo no conoce los procedimientos de una librera hasta que se llaman.)verdad:(BOOLEANO).nombre:(PALABRA).Ejemplo:define "abc [[a b] [escribe :a] [escribe :b]]muestra definido? "avanzaverdaderomuestra definido? "abcL  ? N7Smverdadero5B1RjBVAR?~ w 7Sm VAR?verdad VAR? nombreDevuelve VERDADERO si la entrada es el nombre de una variable.verdad:(BOOLEANO).nombre:(PALABRA).Ejemplo:define "abc [[a b] [escribe :a] [escribe :b]]haz "xyz 1muestra var? "abcfalsomuestra var? "xyzverdadero7B1KKk MACRO? v =7Sm MACRO?verdad MACRO? nombreDevuelve VERDADERO si la entrada es el nombre de una macro definida por el usuario, incluso de una macro de librera. (Sin embargo, Logo no conoce las macros de una librera si no se han invocado previamente.)verdad:(BOOLEANO).nombre:(PALABRA).Ejemplo:muestra macro? "abcfalso.definemacro "abc [[a b] [escribe :a] [escribe :b]]muestra macro? "abcverdadero: E 16RQlE A PREGUNTASa A  7Sm ӽ!m6mpru2z9qaf<PREGUNTASCONTENIDOTAPADOIMTSLVARSIMPROPLISTANOMBRESPLLIST: E { 12m{ s CONTENIDOA s p 7Sm CONTENIDOcontenidolista CONTENIDODevuelve una lista, formada por tres listas que contiene los nombres de los procedimientos definidos, las variables y propiedades. Esta lista incluye todos los elementos no tapados del espacio de trabajo.contenidolista:(LISTA).Ejemplo:para proc1finhaz "nombre1 1ponprop "prop1 "p1 1muestra contenido[[proc1] [nombre1] [prop1]]7{  1,QG n TAPADOns  ܀7Sm TAPADOcontenidolista TAPADODevuelve todos los elementos que se encuentran el espacio de trabajo.contenidolista:(LISTA) Lista formada por tres sublistas que contiene los procedimientos tapados, las variables y propiedades.Ejemplo:;pots no funciona. En su lugar: muestra imtsmuestra tapado[[] [] []]potsmuestra tapado[[pots] [] []]5 1oAIMTS[Aj 7SAm IMTSproclista IMTSDevuelve una lista con los nombres de todos los procedimientos definidos por el usuario y no tapados del espacio de trabajo. Observe que es una lista de nombres, no de contenidos. proclista:(LISTA) Lista con los nombres del procedimiento no tapados.Ejemplo:para foofinpara barfinmuestra imts[bar foo]6A1G *pAsCLVARS*AsCn U7Sm LVARScontenidolista LVARSDevuelve una lista vaca (lo que indica que no son nombres de procedimiento), seguida de una lista con los nombres de las variable no tapadas del espacio de trabajo.contenidolista:(LISTA).Ejemplo:haz "foo 1haz "bar 2muestra lvars[[] [bar foo]]7AC1&qCNFIMPROP.sCEY 7Sm IMPROPcontenidolista IMPROPDevuelve una lista formada por dos listas vacas (para indicar que no son listas de procedimientos o variables) seguidas por una lista con todas las listas de propiedades no tapadas que se encuentran en memoria.contenidolista:(LISTA) Lista de 3 listas que contiene una lista de procedimientos vaca, una lista de nombre vaca, seguidas por una lista con los nombres de las listas de propiedades.Ejemplo:ponprop "prop1 "p1 1v'CNFO nN7Smmuestra improp[[] [] [prop1]]= EF1*rFILISTANOMBRES NFHg s7Sm LISTANOMBREScontenidolista LISTANOMBRES varnombre(procedimiento de la librera)contenidolista LISTANOMBRES varnombrelista(Procedimiento de la librera)Devuelve una lista formada por una lista vaca seguida de otra lista con el nombre o nombres de los argumentos.contenidolista:(LISTA) Lista formada por 2 sublistas; la primera es una lista de procedimientos vaca y la segunda, una lista con los nombres de variables.;FIk 7Smvarnombre:(PALABRA) Nombre que se quiere poner en contenidolista.varnombrelista:(LISTA) Lista de nombres que se quiere poner en contenidolista.Muestra listanombres [foo bar][[] [foo bar]]7HJ1]&@sJCLPLLIST&ICL #7Sm PLLISTcontenidolista PLLIST plnombre(Procedimiento de la librera)contenidolista PLLIST plnombrelista (Procedimiento de la librera)Devuelve una lista, formada por dos listas vacas a las que sigue una lista de nombres o los nombres de las entradas. contenidolista:(LISTA).plnombre:(PALABRA).plnombrelista:(LISTA).Muestra pllist [foo bar][[] [] [foo bar]]; J~L1^t~LMINSPECCIN#nCLM :7Sm qʷ't'ݫs÷'yv'INSPECCINIMIMTODOIMPROPSIMVARIABLESPOPLSPONIMNOMPROPPOTPOTS3~LM1@uMOIMYMO Ԁ7Sm IMIM contenidolistaEscribe las definiciones de todos los procedimientos, variables, y listas de propiedades, segn la entrada contenidolista.contenidolista:(LISTA) Lista de tres listas que contienen procedimientos, variables y propiedades.Ejemplo:para xxxescribe "Holafinim contenidopara xxxescribe "Holafin7M 1v IMTODOO O|O ހ7Sm ӽ!IMTODOIMTODO(Procedimiento de la librera)Escribe todas las definiciones no tapadas del espacio de trabajo. Es la abreviatura de IM CONTENIDO.Ejemplo:para xxxescribe "Holafinimtodopara xxxescribe "Holafin8 1w:IMPROPSz: ހ7Sm prIMPROPSIMPROPS(Procedimiento de la librera)Escribe todas las definiciones no tapadas del espacio de trabajo. Es la abreviatura de IM IMTS.Ejemplo:para xxxescribe "Holafinimpropspara xxxescribe "Holafin< v1xvńIMVARIABLESO:ńx 7Sm u2IMVARIABLESIMVARIABLES(Procedimiento de la librera)Escribe todas las variables no tapadas del espacio de trabajo. Es la abreviatura de IM LVARS.Ejemplo:haz "foo 1imvariablesHaz "foo 16v1ycPOPLShńc Ѐ7Sm z9POPLS POPLS(Procedimiento de la librera)Escribe todas las propiedades de las listas del espacio de trabajo. Es la abreviatura de IM IMPROP.Ejemplo:ponprop "plista1 "p1 1POPLSPonprop "plista1 "p1 141LzPONlc &7Sm qaPON PON varnombre (Procedimiento de la librera)PON varnombrelistaEscribe los nombres de las variables y su valor. Es la abreviatura de IM LISTANOMBRES .varnombre:(PALABRA) Nombre de una variable.varlistanombres:(LISTA) Lista de nombres de variables.Ejemplo:haz "foo 1haz "bar 2pon [foo bar]Haz "foo 1Haz "bar 2: 1{|IMNOMPROP"  ڀ97Sm f<IMNOMPROP IMNOMPROP plnombre(Procedimiento de la librera)IMNOMPROP pllistanombres(Procedimiento de la librera)Escribe la definicin de las propiedades de una lista. Es la abreviatura de IM PLLIST .plnombre:(PALABRA) Nombre de una propiedad de una lista.pllistanombres:(LISTA) Lista de los nombres de listas de propiedades.Ejemplo:ponprop "plista1 "p1 1imnomprop [plista1]q |Q r@7SmPonprop "plista1 "p1 14 1|1POT2|1O nd7Sm POTPOT contenidolista(No se encuentra)5f1c}fPOTSe1M j7Sm POTS POTS(Procedimiento de la librera)(No funciona correctamente, al no encontrarse POT)Ff^1~^CONTROL DE LA MEMORIA++ $7Sm @q?q$utqそurrkɀɞՀ7:iJ.&*y㐥S}+}JCONTROL DE LA MEMORIABORRABORRATODOBOPROCEDIMIENTOSBORRANOMBRESBORRALISTASBONBOPLTAPATAPATODOTAPANOMBREDESTAPADESTAPATODODESTAPANOMBRETRAZANOTRAZAPASONOPASOEDITA?x^ ^7SmC``'Y*7"g{㖥:EDITATODOEDPSEDNSEDPLSEDNEDPLGUARDAGUARDALCARGAQUITAESTADOESTADO6 1c߁ BORRA&v M7Sm V.L.BORRABORRA contenidolistaBO contenidolistaBorra de la memoria los procedimientos, variables y listas de propiedades de la entrada. Los procedimientos no se borrarn a no ser que la variable REDEF? tenga el valor VERDADERO.contenidolista:(LISTA) Lista de tres listas con procedimientos, variables y propiedades.Ejemplo:;pots no funciona. En su lugar: muestra imtspara foofinpara barfinpots9 a r7Smpara foopara barborra [foo]potspara bar: &1BORRATODO7 o7Sm @qӽ!BORRATODOBORRATODO(Procedimiento de la librera)Borra todos los procedimientos, variables, y listas de propiedades de memoria. Es la abreviatura de BORRA CONTENIDO.Ejemplo:;pots no funciona. En su lugar:muestra imtspara foofinpara barfinpotspara foopara barborratodopotsA1߁IBOPROCEDIMIENTOS3 g7Sm @qprBOPROCEDIMIENTOSBOPROCEDIMIENTOS(Procedimiento de la librera)Borra todos los procedimientos no tapados de la memoria. Es la abreviatura de BORRA IMTS.Ejemplo:;pots no funciona. En su lugar:muestra imtspara foofinpara barfinpotspara foopara barboprocedimientospots= 1OBORRANOMBRES 7Sm @qu2BORRANOMBRESBORRANOMBRES(Procedimiento de la librera)Borra todas las variables no tapadas de la memoria. Es la abreviatura de BORRA LVARS.Ejemplo:haz "foo 1haz "bar 2imvariablesHaz "bar 2Haz "foo 1borranombresimvariables< 1IC?BORRALISTASu? Ѐ7Sm @qz9BORRALISTASBORRALISTAS(Procedimiento de la librera)Borra todas las listas no tapadas de la memoria. Es la abreviatura de BORRA IMPROP.Ejemplo:ponprop "plista1 "p1 1poplsPonprop "plista1 "p1 1borralistaspopls4s1OsABON5? ?7Sm @qqaBONBON nombrevariable(Procedimiento de la librera)BON varlistanombres(Procedimiento de la librera)Borra de la memoria la variable(s). Es la abreviatura de BORRA LISTANOMBRES nombrevariable (lista).nombrevariable:(PALABRA) Nombre de la variable a borrar.varlistanombres:(LISTA) Lista de nombres de variables para borrar.Ejemplo:haz "foo 1haz "bar 2imvariablesHaz "bar 29sA` r7SmHaz "foo 1bon [foo]imvariablesHaz "bar 25v1pC6 vOBOPLAA :7Sm @qf<BOPLBOPL plnombre(Procedimiento de la librera)BOPL pllistanombres(Procedimiento de la librera)Borra de la memoria la lista(s) de propiedades. Es la abreviatura de BORRA PLLIST plnombre (lvAista).plnombre:(PALABRA).pllistanombres:(LISTA).Ejemplo:ponprop "plista1 "p1 1ponprop "plista2 "p1 2poplsPonprop "plista1 "p1 1Ponprop "plista2 "p1 26vOV |l7Smbopl [plista2]poplsPonprop "plista1 "p1 151 aTAPA)O 7Sm ӽ!pru2z9m6mqY*TAPATAPA contenidolistaOculta los procedimientos, variables y listas de propiedades contenidos que aparecen en su entrada. Un elemento tapado no se incluye en las listas de salida de CONTENIDO, IMTS, LVARS, y IMPROP, pero se incluye en la lista de salida de TAPADO. Por implicacin, IMTODO no escribir los objetos tapados, ni los guardar GUARDA./a ؀_7Smcontenidolista:(LISTA) Lista de tres listas con procedimientos, variables y propiedades.Ejemplo:;pots no funciona. En su lugar:muestra imtspara fooEscribe [Estoy aqu]finpara barEscribe [All estoy]finpotspara barpara footapa [[foo] [] []]potspara barfooAll estoy916  fTAPATODO0af a7Sm rӽ!TAPATODOTAPATODO(Procedimiento de la librera)Es la abreviatura de TAPA CONTENIDO.Ejemplo:;pots no funciona. En su lugar: muestra imtspara fooEscribe [Estoy aqu]finpara barEscribe [All estoy]finpotspara barpara footapatodopotsfooEstoy aqubarAll estoy; 17   TAPANOMBRE*f  )7Sm rqaTAPANOMBRETAPANAME nombrevariable(Procedimiento de la librera)TAPANAME varlistanombres(Procedimiento de la librera)Es la abreviatura de TAPA LISTANOMBRES nombrevariable (lista).nombrevariable:(PALABRA) Nombre de variable que ser tapada.varlistanombres:(LISTA) Lista de nombres de variables que sern tapadas.Ejemplo:haz "foo 1haz "bar 2imvariablesHaz "bar 2b p 7SmHaz "foo 1tapanombre [foo]imvariablesHaz "bar 2muestra :foo1muestra :bar28  16    DESTAPA$   !7Sm ӽ!DESTAPADESTAPA contenidolistaDestapa los procedimientos, variables y listas de propiedades que aparecen en la entrada contenidolista. Esto es, estos elementos se mostrarn con CONTENIDO, etc.contenidolista:(LISTA) Lista de tres listas con procedimientos, variables y propiedades.Ejemplo:haz "foo 1haz "bar 2imvariablesHaz "bar 2Haz "foo 1tapanombre [foo]c  w 7SmimvariablesHaz "bar 2destapa [[] [foo] []]imvariablesHaz "bar 2Haz "foo 1< 1&  @DESTAPATODO!  @ `C7Sm 7:iJm6mDESTAPATODODESTAPATODO(Procedimiento de la librera)Es la abreviatura de DESTAPA TAPADO.Ejemplo:haz "foo 1haz "bar 2imvariablesHaz "bar 2Haz "foo 1tapanombre [foo]imvariablesHaz "bar 2destapatodoimvariablesHaz "bar 2Haz "foo 1 @ > J@1[ J@gCDESTAPANOMBRE9 @B !7Sm 7:iJqaDESTAPANOMBREDESTAPANOMBRE nombrevariable(Procedimiento de la librera)DESTAPANOMBRE varlistanombres(Procedimiento de la librera)Es la abreviatura de DESTAPA LISTANOMBRES nombrevariable (lista).nombrevariable:(PALABRA) Nombre a destapar.varlistanombres:(LISTA) Lista de nombres a destapar.Ejemplo:haz "foo 1haz "bar 2imvariablesHaz "bar 2Haz "foo 1lJ@gCx 7Smtapanombre [foo]imvariablesHaz "bar 2destapa [foo]imvariablesHaz "bar 2Haz "foo 16BC1C  CGTRAZAgCAF %7Sm r+aY#g#㐥SJـTRAZATRAZA contenidolistaMarca un elemento para ser ejecutado en modo trazar. En este modo y cuando se ejecuta un procedimiento, Logo enva un mensaje con los valores actuales de las entradas, siempre que el procedimiento se ejecute en modo trazado y con las primitivas ALTO o DEVUELVE. Enva un mensaje siempre que se asigna un nuevo valor a una variable usando HAZ, o se incluye una nueva propiedad en una lista usando PONPROP, (marcada para trazar). Vea tambin NOTRAZA y Botn TRAZAR.iCGt 7Smcontenidolista:(LISTA) Lista de tres listas con procedimientos, variables y propiedades.Ejemplo:para myprog :aescribe :afinmyprog "HolaHolatraza "myprogmyprog "Hola(myprog "Hola)Holanotraza "myprogmyprog "HolaHola8AFG1. _ GINOTRAZA\GI 7Sm yJـNOTRAZANOTRAZA contenidolistaDesactiva el modo traza. Vea tambin TRAZA y Botn TRAZAR.contenidolista:(LISTA) Lista de tres listas con procedimientos, variables y propiedades.Ejemplo:para myprog :aescribe :afinmyprog "HolaHolatraza "myprogmyprog "Hola(myprog "Hola)Holanotraza "myprogmyprog "HolaHola5G J17  JNPASO2ILn e7Sm [}+ߩ2PASOPASO contenidolistaMarca un elemento para su ejecucin en modo PASO. Siempre que se invoca un procedimiento en este modo, Logo escribe cada lnea de instruccin del cuerpo del procedimiento antes de ejecutarla y espera una pulsacin del usuario para continuar con una nueva lnea; tambin enva un mensaje siempre que el nombre de una variable hace sombra a otra porque se crea una variable local con el mismo nombre con LOCAL o se utiliza una entrada de un procedimiento con el mismo nombre. Vea tambin PASO y el Botn PASO.b  JNV z7Smcontenidolista:(LISTA) Lista de tres listas con procedimientos, variables y propiedades.Ejemplo:para myprogav 10gd 90av 20gi 90finmyprogpaso "myprogmyprognopaso "myprogmyprog7LFN1._ !FNFNOPASOxNF| ƀ7Sm }+ߩ2NOPASONOPASO contenidolistaSuprime la ejecucin en modo PASO. Vea tambin PASO y Botn PASO.contenidolista:(LISTA) Lista de tres listas con procedimientos, variables y propiedades.Ejemplo:para myprogav 10gd 90av 20gi 90finmyprogpaso "myprogmyprognopaso "myprogmyprog6FN|1^ !|EDITA(F ҀM7Sm I5EDITAEDITA contenidolistaED contenidolista(EDITA)(ED)Edita las definiciones de elemento(s), usando el Editor de Logo. Vea tambin en Editor detalles sobre el trabajo con el editor.contenidolista:(LISTA) Lista de tres listas con procedimientos, variables y propiedades.Ejemplo:para "myprogescribe "HorlafinmyprogHorlaedita "myprogmyprogHola: |ނ1!!ނLEDITATODOnLy 7Sm ӽ!EDITATODOEDITATODO(Procedimiento de la librera)Es la abreviatura de EDITA CONTENIDO.Ejemplo:para myprogescribe :myargfinhaz "myarg "HorlamyprogHorlaeditatodomyprogHola5ނ1!!3EDPS&L3 M7Sm prEDPSEDPS(Procedimiento de la librera)Es la abreviatura de EDITA IMTS.Ejemplo:para "myprog1escribe "Horlafinpara "myprog2escribe "Adiorfinmyprog1Horlamyprog2Adioredpsmyprog1Holamyprog2Adios5h1!!hÇEDNS[3Çy 7Sm u2EDNSEDNS(Procedimiento de la librera)Es la abreviatura de EDITA LVARS.Ejemplo:para myprogescribe :myargfinhaz "myarg "HorlamyprogHorlaednsmyprogHola6h1!!EDPLSÇ 7Sm z9EDPLSEDPLS(Procedimiento de la librera)Es la abreviatura de EDITA IMPROP.Ejemplo:ponprop "plista1 "p1 1poplsPonprop "plista1 "p1 1edplspoplsPonprop "plista1 "p1 241L!!ыEDNы 7Sm qaEDNEDN nombrevariable(Procedimiento de la librera)EDN varlistanombres(Procedimiento de la librera)Es la abreviatura de EDITA LISTANOMBRES nombrevariable (lista).nombrevariable:(PALABRA).varlistanombres:(LISTA).Ejemplo:para myprogescribe :myargfinhaz "myarg "HorlamyprogHorlaedn "myargmyprogHola51g!!8EDPL2zы8 >7Sm f<EDPLEDPL plnombre(Procedimiento de la librera)EDPL pllistanombres(Procedimiento de la librera)Es la abreviatura de EDITA PLLIST plnombre(lista).plnombre:(PALABRA).pllistanombres:(LISTA).Ejemplo:ponprop "plista1 "p1 1poplsPonprop "plista1 "p1 1edpl "plista1poplsPonprop "plista1 "p1 27o1!!oGUARDA,8 77Sm GUARDAGUARDA nombreficheroGuarda las definiciones de todos los procedimientos, variables y listas de propiedades, si no estn tapados.nombrefichero:(PALABRA).Ejemplo:;pots no funciona. En su lugar: muestra imtspara myprog1escribe "Holo8a1finpara myprog2escribe "Hola2finpotspara myprog1para myprog2guarda "myprogs.lgoborratodopotscarga "myprogs.lgopotspara myprog1WoE Z$7Smpara myprog2861!!6GUARDAL*`u k7Sm GUARDALGUARDAL contenidolista nombrefichero (Procedimiento de la librera)Guarda las definiciones de los procedimientos, variables y listas de propiedades que se especifican en "contenidolista" en el fichero "nombrefichero".contenidolista:(LISTA) Lista de tres listas con procedimientos, variables y propiedades.nombrefichero:(PALABRA) Nombre del fichero.Ejemplo:;pots no funciona. En su lugar: muestra imts76o 7Smpara myprog1escribe "Hola1finpara myprog2escribe "Hola2finpotspara myprog1para myprog2guardal [[myprog1] [] []] "myprogs.lgoborratodopotscarga "myprogs.lgopotspara myprog16`1!!CCARGA4m 7Sm +CARGACARGA nombreficheroCarga un fichero. El fichero puede incluir definiciones de procedimiento con PARA, que sern aceptados aunque esos procedimientos existan. Si Logo ve un PARA definir ese procedimiento.Si Logo ve un HAZ crear la variable.Si Logo ve cdigo fuera de la definicin de un procedimiento, lo ejecutar en el orden en que aparezca.nombrefichero:(PALABRA).Ejemplo:;pots no funciona. En su lugar: muestra imtsBC| ƀ7Smpara myprog1escribe "Hola1finpara myprog2escribe "Hola2finpotspara myprog1para myprog2guarda "myprogs.lgoborratodopotscarga "myprogs.lgopotspara myprog1para myprog2< 1-!!pQUITAESTADOCpd 7Sm 4㖥:QUITAESTADOQUITAESTADOTiene el mismo efecto que pulsar NO BOTN ESTADO. Vea tambin ESTADO .Ejemplo:estadoquitaestado71 !.!ESTADOpd 7Sm 4g{ESTADOESTADOTiene el mismo efecto que pulsar BOTN ESTADO. Vea tambin QUITAESTADO .Ejemplo:estadoquitaestadoG1!`!VESTRUCTURAS DE CONTROL2VM jd7Sm HHFESTRUCTURAS DE CONTROLRDENES DE CONTROLC1.!" RDENES DE CONTROL4V8 >7Sm HՙgZ.v̀I:߀^J,߀~琀㊨,+r+aY3tq/%)yRDENES DE CONTROLEJECUTARESULTADOEJECUTAREPITECUENTAREPITESISISINOPRUEBASICIERTOSIFALSOVERDADEROFALSOALTODEVUELVECOGEENVIAERRORPAUSACONTINUANOEXCLUSIVO  # 7Smo?j~ji/R&=㸨df߀`= FEۀXڀ"GEXCLUSIVOSIEVENTOPONCURSORESPERAPARADAESPERAPONCONTADORCONTADORACEROADIOS.MAYBEDEVUELVEIGNORA`DESDEHAZ.MIENTRASMIENTRASHAZ.HASTAHASTAGOTOTAG V8D1`!)"DEJECUTA) h S7Sm EJECUTAEJECUTA listainstruccinEjecuta las instrucciones Logo que contiene la entrada (listainstruccin).Listainstruccin:(LISTA) Lista de instrucciones Logo a ejecutar.Ejemplo:haz "thingstodo [escribe]haz "thingstodo ponultimo "\"Hola :thingstodoejecuta :thingstodoHolaAD1"^"RESULTADOEJECUTA#9] 7Sm RESULTADOEJECUTARESULTADOEJECUTA listainstruccinEjecuta las instrucciones de la entrada. Devuelve una lista vaca si las instrucciones no tienen salida, o una lista con un solo miembro si hay una salida. til para crear rdenes u operaciones de estructuras de control:local "resulthaz "result resultadoejecuta [algo]si vacio? :result [alto]devuelve primero :resultListainstruccin:(LISTA) Lista de Logo con instrucciones a ejecutar.oK f7SmEjemplo:haz "thingstodo [primero [1 2 3]]haz "answer resultadoejecuta :thingstodomuestra :answer[1]79*1)";"*REPITE!K~ ʀG7Sm v̀REPITEREPITE nmero listainstruccinEjecuta una lista de instrucciones (listainstruccin) tantas veces como indique la primera entrada (nmero). Vea tambin CUENTAREPITE.nmero:(ENTERO) Nmero de veces que se ejecuta una lista de instrucciones.Listainstruccin:(LISTA) Lista de instrucciones Logo a ejecutar repetidamente.Ejemplo:repite 3 [escribe (lista "Es "la "vuelta cuentarepite)]:*_ t7SmEs la vuelta 1Es la vuelta 2Es la vuelta 3= K!1i^""!M CUENTAREPITE,M  A7Sm gZ.CUENTAREPITEcontador CUENTAREPITESlo puede usarse dentro de un REPITE. Devuelve el nmero de repeticiones finalizadas, incluyendo la actual. Esto es, devuelve la primera vez 1; 2, la segunda vez, y as sucesivamente.contador:(ENTERO) Valor actual del contador de REPITE.Ejemplo:repite 3 [escribe (lista "Es "la "vuelta cuentarepite)]Es la vuelta 1Es la vuelta 2Es la vuelta 33! 1;"" ASIXM   7Sm :߀SIobjeto SI prueba listainstruccinobjeto (SI prueba listainstruccin1 listainstruccin2)Primitiva condicional con dos formas:Primera forma:Si la condicin (prueba) tiene el valor VERDADERO, entonces SI ejecuta una lista de instrucciones (listainstruccin).Si prueba tiene como valor FALSO, entonces SI no ejecuta nada. Vea tambin SISINO.Se produce un error si la condicin no tiene un valor VERDADERO o FALSO. ( [ 7Sm:߀Segunda forma:Funciona igual que SISINO. Si se cumple la condicin se ejecuta la primera lista; si no se cumple, se ejecuta la segunda. Observe que la sintaxis requiere el uso de los parntesis y que si se omiten, por compatibilidad con anteriores versiones de Logo, si una instruccin SI no est entre parntesis, se trata SI como si fuera SISINO, pero se enva un mensaje de advertencia. objeto:(OBJETO) prueba:(BOOLEAN) Expresin a probar.- 9Ay i7Smlistainstruccin:(LISTA) Lista de instrucciones Logo a ejecutar si prueba es VERDADERO.listainstruccin1:(LISTA) Lista de instru9AM cciones Logo a ejecutar si prueba es VERDADERO.listainstruccin2:(LISTA) Lista de instrucciones Logo a ejecutar si prueba es FALSO.Ejemplo:si 1=1 [escribe [Si, es verdadero]]Si, es verdaderoEjemplo (donde funciona igual que SISINO):para max :a :bdevuelve (si :a > :b [:a] [:b])`AE Z67Smfinmuestra max 1 2279AA1S""AFSISINOASD 7Sm SISINOobjeto SISINO prueba listainstruccin1 listainstruccin2Primitiva condicional. Si la condicin prueba tiene el valor VERDADERO, entonces SISINO ejecuta istaainstruccin1. Si la condicin prueba tiene como valor FALSO, entonces SISINO ejecuta listainstruccin2. SISINO puede devolver un valor.objeto:(OBJETO) prueba:(BOOLEAN) Expresin que es una prueba de verdad.listainstruccin:(LISTA) Lista de instrucciones Logo a ejecutar si prueba es VERDADERO.9AFt 7Smlistainstruccin1:(LISTA) Lista de instrucciones Logo a ejecutar si prueba es VERDADERO.listainstruccin2:(LISTA) Lista de instrucciones Logo a ejecutar si prueba es FALSO.Ejemplo:sisino 1=1 [escribe [Si, es verdadero]] [escribe [No, es falso]]Si, es verdaderosisino 1=0 [escribe [Si, es verdadero]] [escribe [No, es falso]]No, es falsoEjemplo (donde sisino devuelve un valor)para max :a :bdevuelve sisino :a > :b [:a] [:b]`SDFE Z67Smfinmuestra max 1 227F#G1+""#GJPRUEBACFfIv 7Sm ߀~琀PRUEBAPRUEBA pruebaRecuerda su entrada, que debe tener el valor VERDADERO o FALSO, que se usar despus con las primitivas SICIERTO o SIFALSO. El efecto de PRUEBA es local dentro del procedimiento en que se usa.prueba:(BOOLEANO) Expresin que es una prueba de verdad.Ejemplo:para miprueba :argprueba 1=:argescribe [Haga esto]escribe [Haga eso]sicierto [escribe [arg es el nmero uno]]sifalso [escribe [arg no es el nmero uno]]G#GJj 7Smfinmiprueba 1Haga estoHaga esoarg es el nmero uno9fIPJ1X"I"PJoMSICIERTO!JqL ΀C7Sm ^J,^J,SICIERTOSICIERTO listainstruccinSIC listainstruccinEjecuta su entrada, listainstruccin, si la ltima instruccin PRUEBA tiene el valor VERDADERO. PRUEBA debe usarse en el mismo procedimiento o superprocedimiento.listainstruccin:(LISTA) Lista de instrucciones Logo a ejecutar si la ltima PRUEBA tiene el valor VERDADERO.Ejemplo:para miprueba :argprueba 1=:argescribe [Haga esto]PJoMV zQ7Smescribe [Haga eso]sicierto [escribe [arg es el nmero uno]]sifalso [escribe [arg no es el nmero uno]]finmiprueba 1Haga estoHaga esoarg es el nmero uno8qLM1"#M̀SIFALSO,oMO ЀW7Sm ^J,^J,SIFALSOSIFALSO listainstruccinSIF listainstruccinEjecuta su entrada, listainstruccin, si la ltima instruccin PRUEBA tiene el valor FALSO. PRUEBA debe usarse en el mismo procedimiento o superprocedimiento.listainstruccin:(LISTA) Lista de instrucciones Logo a ejecutar si la ltima PRUEBA tiene el valor FALSO..Ejemplo:para miprueba :argprueba 1=:argescribe [Haga esto]escribe [Haga eso]M̀U x17SÒoMmsicierto [escribe [arg es el nmero uno]]sifalso [escribe [arg no es el nmero uno]]finmiprueba 0Haga estoHaga esoarg no es el nmero uno: O1I"#dVERDADERO^̀dg 7Sm VERDADEROVERDADERO(Forma especial)Es una palabra especial que indica el resultado positivo de una condicin.Ejemplo:muestra 1=1verdaderosi "verdadero [escribe [Verdadero es siempre verdadero]]Verdadero es siempre verdadero61##FALSOcdg 7Sm FALSOFALSO(Forma especial)Es una palabra especial que indica el resultado negativo de una condicin.Ejemplo:muestra 1=0falsosisino "falso [escribe [No puede entrar aqu]] [escribe [Falso es siempre falso]]Falso es siempre falso521#Y#2ALTOfy 7Sm ALTOALTOTermina la ejecucin del procedimiento en que aparece. Devuelve el control al contexto en el que se llam el procedimiento. El procedimiento no devuelve ningn valor.Ejemplo:para myprog :argescribe [Antes de Alto]si 1=:arg [alto]escribe [Despus de Alto]finmyprog 1Antes de Altomyprog 2Antes de AltoDespus de Alto92J1#V#JDEVUELVEgj 7Sm DEVUELVEDEVUELVE valorDEV valorTermina la ejecucin del procedimiento en que aparece y devuelve un valor. valor:(OBJETO).Ejemplo:para miprogramadevuelve [Lo que devuelve es esto]finmuestra miprograma[Lo que devuelve es esto]5J1Y##\COGE) S7Sm tqtqCOGECOGE tag listainstruccinvalor COGE tag listainstruccinEjecuta una lista de instrucciones y devuelve una salida de, si la tiene. Si, mientras se ejecutan las instrucciones, se ejecuta un ENVIA con una entrada igual a tag, entonces termina la ejecucin. Tag debe ser una palabra.Si la palabra tag es ERROR, entonces cualquier condicin de error que surja durante la ejecucin de la lista de instrucciones tiene el efecto de ENVIA "ERROR en lugar de escribir un mensaje de error y volver al nivel superior.2\t e7Smvalor:(OBJETO).tag:(PALABRA).listainstruccin:(LISTA) Ejemplo:para miprograma2escribe [Antes de enviar]envia "tag1escribe [Nunca entra aqu porque ENVIA retrocede]finpara miprograma1coge "tag1 [miprograma2]escribe [Estoy de vuelta]finmiprograma1Antes de enviaEstoy de vuelta61V#3#ENVIA2\Ď ;7Sm 3333ENVIAENVIA etiqueta(ENVIA etiqueta valor)Debe usarse con una etiqueta con el mismo alcance que COGE. Termina la ejecucin de la lista de instrucciones de COGE. Si ENVIA se usa con solo una entrada, el correspondiente COGE no devuelve ningn valor. Si ENVIA se usa con dos entradas, la segunda proporciona la salida de COGE.valor:(OBJETO) Valor de ENVIA que COGE devolver.If 7Smqqqetiqueta:(PALABRA) Nombre de la etiqueta.ENVIA "ERROR puede usarse para generar una condicin de error. Si no detecta error, escribe un mensaje (ENVIA "ERROR) con la usual indicacin sobre dnde ocurrĎ\i el error (en este caso el ENVIA). Si se usa una segunda entrada tras la etiqueta ERROR, esta segunda entrada se usa como texto del mensaje de error en lugar del mensaje habitual. Tambin, en este caso, la locacin del error estar, no en la de ENVIA, sino en el procedimiento que llama ENVIA. Permite definir procedimientos para generar mensajes de error. 3Ďg g7SmEjemplo:para miprograma2escribe [Antes de envia](envia "etiqueta1 [Necesitamos volver])escribe [Nunca entra aqu porque ENVIA retrocede]finpara miprograma1muestra coge "etiqueta1 [miprograma2]escribe [Estoy de vuelta]finmiprograma1Antes de envia[Necesitamos volver]Estoy de vuelta6O1E##O^ERROR+z^ 7Sm !xπERRORerrorlista ERRORDevuelve una lista que describe el error. Si no hay error despus del ltimo uso de ERROR, devuelve una lista vaca. La lista con el error contiene cuatro miembros: un entero que indica el cdigo del tipo de error, el texto del mensaje de error, el nombre del procedimiento en donde se produce el error, y la lnea de instrucciones en que ocurre el error. (Vea tambin la lista de CDIGOS DE ERRORES).errorlista:(LISTA).O^O l+7SmEjemplo:para miprogramaav 1000fincercacoge "error [miprograma]muestra error[3 [La tortuga est fuera de lmites] miprograma [av 1000] 6z13#l#PAUSA;^m 7Sm /%PAUSAvalor PAUSAPAUSAIntroduce una pausa interactiva. El usuario recibe instrucciones en las que aparece el nombre del procedimiento en que se invoc PAUSA. Las variables locales de este procedimiento estn disponibles durante la pausa. Cuando termina PAUSA devuelve CONTINUA con una entrada.valor:(OBJETO) Ejemplo:para miprogramarepite 180 [gd 2 si 90=cuentarepite [pausa]]escribe "HechofinmiprogramaPoniendo pausa...miprogramaH ? N7SmHecho9P1#*#PCONTINUA= Ѐy7Sm CONTINUACONTINUA valorCO valor(CONTINUA)(CO)Termina la pausa interactiva, volviendo al contexto desde el que se llam a PAUSA. Si CONTINUA se produce en una entrada, PAUSA devuelve ese valor. Si no, PAUSA no devuelve nada.valor:(OBJETO) Valor que retrocede hasta PAUSA que lo devuelve.Excepcionalmente, CONTINUA se puede usar sin su entrada y sin parntesis con tal que est en una lnea de instrucciones.`P^ 7SmEjemplo:para miprogramarepite 180 [gd 2 si 90=cuentarepite [pausa]]escribe "HechofinmiprogramaPoniendo pausa...miprograma180Hecho< )1l#v$)kNOEXCLUSIVO\h 7Sm o?o?NOEXCLUSIVONOEXCLUSIVONOEXCLUSIVO permite que otros programas usen la computadora mientras LOGO trabaja; en cambio, EXCLUSIVO no lo permite. El modo por defecto es NOEXCLUSIVO. Observe que la ventana Trabajo es otro programa. Esto es, si se ha usado un EXCLUSIVO, la ventana Trabajo pierde el control (el Botn Parada no trabajar) hasta que se use un NOEXCLUSIVO o LOGO est inactivo. LOGO trabaja ms rpido si dispone de la computadora para l slo. Vea tambin EXLUSIVO.)e m7SmEjemplo: 3 casos:Caso 1 (El usuario tiene el control de 10,000 operaciones):noexclusivorepite 100 ~ [~ repite 100 ~ [~ escribe "hecho~ ]~ ]Caso 2 (El usuario pierde el control de 10,000 operaciones, ejecucin rpida):exclusivorepite 100 ~ [~ repite 100 ~ [~ escribe "hecho~ ]~ ]Caso 3 (El usuario pierde el control de 100 operaciones, ejecucin aun ms rpida):vkI b7Smrepite 100~ [~ exclusivo~ repite 100 ~ [~ escribe "hecho~ ]~ noexclusivo~ ] ]: 1n*#J$EXCLUSIVO4k` 7Sm )y)yEXCLUSIVOEXCLUSIVONo permite que otros programas usen la computadora mientras LOGO trabaja. El modo por defecto es NOEXCLUSIVO. Vea tambin NOEXCLUSIVO.Ejemplo:Vea el ejemplo de NOEXCLUSIVO.91v$C$SIEVENTO 2c {7Sm )yo?SIEVENTOSIEVENTOSIEVENTO es similar a llamar a NOEXCLUSIVO seguido de EXCLUSIVO . Chequea si hay eventos en espera de ser procesados. Las rdenes que producen "interrupciones" se ejecutan en modo EXCLUSIVO. Si el cdigo de la interrupcin es corto y rpido no presentar problemas. Pero si es largo el usuario perder el control durante ese tiempo. Ejemplo:ponraton [repite 72 [repite 4 [av 100 gd 90] gd 5]] [] [] [] []}<A Py7Smponraton [repite 72 [repite 4 [av 100 gd 90] gd 5 sievento]] [] [] [] []Parando...7  1$4 $ ESPERA ^ 7Sm ESPERAESPERA tiempoRetrasa la ejecucin durante un tiempo 1/60 de segundotiempo:(ENTERO).Ejemplo:espera 60< 1F$$BPONCONTADOR?FA ؀u7Sm 㸨PONCONTADORPONCONTADOR id delay callbackInstala un cronmetro identificado por id (1-31) que produce una interrupcFAin durante milisegundos hasta que se llame a CONTADORACERO . id:(ENTERO) (1-31).delay:(ENTERO) Intervalo en que se produce la interrupcin.callback:(LISTA) Lista de instrucciones a ejecutar durante la interrupcin.Ejemplo:poncontador 1 200 [poncolorlapiz (lista azar 256 azar 256 azar 256)]B? L7Smrepite 72 [repite 4 [av 100 gd 90] gd 5]contadoracero 1> FAEB14 $$EBCCONTADORACERO BCg A7Sm R&=CONTADORACEROCONTADORACERO idBorra el tiempo puesto por PONCONTADOR e identificado por id (1-31).id:(ENTERO) Identificador (1-31).Ejemplo:poncontador 1 200 [poncolorlapiz (lista azar 256 azar 256 azar 256)]repite 72 [repite 4 [av 100 gd 90] gd 5]contadoracero 16EBD1$$DDADIOSOCDJ d7Sm ADIOSADIOSSale de Logo y vuelve al sistema operativo.Ejemplo:adios= DD1$1$DbE.MAYBEOUTPUT@DbEJ d7Sm .MAYBEDEVUELVEvalor(Forma especial)(No se encuentra).7DE1$T$E0GIGNORA#bE0Gt G7Sm IGNORAIGNORA valor(Procedimiento de la librera)Ignora un efecto que no se considera importante.valor:(OBJETO).Ejemplo:para miprograma :argescribe :argdevuelve cuenta :argfinmiprograma "HelloHelloNo me has dicho qu hacer con 5ignora miprograma "HelloHello2EbG11$$bGJ`T0GIQ p7Sm `newlista ` lista(Procedimiento de la librera)Devuelve una lista igual a su entrada pero con ciertas substituciones. Si un miembro de la lista es la palabra "," (coma) entonces el siguiente miembro debe ser una lista que produce una salida cuando se ejecuta. Esa salida reemplaza a la coma y a la lista. Si un miembro de la lista es la palabra ",@" entonces el siguiente miembro debe ser una lista que devuelve una lista cuando se ejecuta. Los miembros de esa lista reemplazan a @ y a la lista.%bGJ} ȀQ7Smnewlista:(LISTA).lista:(LISTA).Ejemplo:muestra `[foo baz ,[menosprimero [a b c]] garply ,@[menosprimero [a b c]]][foo baz [b c] garply b c]6IK1T$%KDESDE^ JoMQ p7Sm DESDEDESDE desdecontrol listainstruccin(Procedimiento de la librera)Tiene como primera entrada una lista con tres o cuatro miembros: (1) una palabra que es el nombre de una variable local; (2) una palabra o lista que contiene el valor inicial de la variable; (3) una palabra o lista que indica el valor lmite de la variable; (4) y una palabra o lista que determina el incremento opcional. Si falta el cuarto miembro tendr el valor 1 o 1, dependiendo de que el valor lmite sea mayor o menor que el inicial.5KOD V7SmLa segunda entrada es una lista de instrucciones. DESDE ejecuta repetidamente las instrucciones contenidas en listainstruccin, y asigna un nuevo valor a la variable de control. Primero asigna el valor a la variable de control y compara ese valor con el valor lmite. Si la variable es mayor que el valor lmite, la ejecucin continua en la lnea siguiente; en otro caso, se ejecutan las instrucciones contenidas en listainstruccin y se incrementa la variable en el valor del incremento.voMm 7SmOJdesdecontrol:(LISTA).listainstruccin:(LISTA).Ejemplo:desde [i 2 7 1.5] [escribe :i]23.556.5= OЀ1$%ЀyHAZ.MIENTRASs U7Sm HAZ.MIENTRASHAZ.MIENTRAS listainstruccin pruebalista(Procedimiento de la librera)Ejecuta una lista de instrucciones (listainstruccin) mientras se cumpla la condicin pruebalista. Observe que la condicin es el segundo argumento.listainstruccin:(LISTA) Lista de instrucciones Logo a ejecutar mientras la cumpla la condicin.pruebalista:(BOOLEAN) Condicin dentro de una lista.Ejemplo:haz "i 0;ЀyQ rv7Smhaz.mientras [haz "i :i+1 escribe :i] [:i<3]12391%%1MIENTRAS%yׅt c7Sm MIENTRASMIENTRAS pruebalista listainstruccin(Procedimiento de la librera)Ejecuta una lista de instrucciones (listainstruccin) mientras se cumpla la condicin pruebalista. Observe que la condicin es el primer argumento..pruebalista:(BOOLEAN): La condicin dentro de una lista. listainstruccin:(LISTA): Lista con las instrucciones a ejecutar. Ejemplo:haz "i 0mientras [:i<3] [haz "i :i+1 escribe :i]Z 1M j7Sm123: ׅk1U%:%kHAZ.HASTA1 ր/7Sm HAZ.HASTAHAZ.HASTA listainstruccin pruebalista(Procedimiento de la librera)Ejecuta una lista de instrucciones hasta que una condicin tenga el valor FALSO. La condicin es el segundo argumento.listainstruccin:(LISTA) Lista de instrucciones a ejecutar. pruebalista:(BOOLEAN) Condicin dentro de una lista .Ejemplo:haz "i 0haz.hasta [haz "i :i+1 escribe :i] [:i>3]12346k1F%%̊HASTÅ ր7Sm HASTAHASTA pruebalista listainstruccin (Procedimiento de la librera)Ejecuta una lista de instrucciones hasta que una condicin tenga el valor FALSO. La condicin es el primer argumento.listainstruccin:(LISTA) Lista de instrucciones a ejecutar. pruebalista :(BOOLEAN) Condicin dentro de una lista.Ejemplo:haz "i 0hasta [:i>3] [haz "i :i+1 escribe :i]123451:%%~GOTO}.̊~O n\7Sm GOTOGOTO etiqueta(No se encuentra)41%!%1TAG-~1R tZ7Sm TAGTAG etiqueta(No se encuentra)6g1%7%gʌMACROc1ʌM j,7Sm _=wMACROS.MACRO7g1, !%%o.MACROʌ 7Sm +gZ.IgZ..MACROUna macroinstruccin es un tipo especial de procedimiento cuya salida se evala como una instruccin Logo. .MACRO es semejante a PARA excepto que el nuevo procedimiento es una macroinstruccin.nombreproc:(PALABRA) Nombre del procedimiento macroinstruccin a definir.entrada1:(PALABRA) Primer argumento.entrada2:(PALABRA) Segundo argumento.Las macros se usan para crear nuevas estructuras de control comparables a REPITE, SI. Por ejemplo, una versin de REPITE:?~ ʀ7SmaYr+[ʌpara mi.repite :num :instructionssi :num=0 [alto]ejecuta :instructionsmi.repite :num-1 :instructionsfinmi.repite 5 [escribe "hola]Esta versin de Repite no funciona bien si se incluyen instrucciones como DEVUELVE, ALTO o LOCAL. Por ejemplo, considere este procedimiento:para ejemploescribe [Averige mi palabra secreta en tres intentos.]repite 3 [muestrat "|?? | ~si leepalabra = "secreta [escribe "Exacto! alto]]8z €}7SmgZ.r+gZ.escribe [Lo siento, la palabra es "secreta"!]finSi utiliza MI.REPITE en este procedimiento en lugar de REPITE, no funcionar porque ALTO detiene MI.REPITE en lugar de EJEMPLO.La solucin para MI.REPITE es una macro. Una macro que es una versin de REPITE:.macro mi.repite :num :instructionssi :num=0 [devuelve []]devuelve frase :instructions ~(lista "mi.repite :num-1 :instructions)finmi.repite 5 [escribe "hola]h,o< HX7Smescribe "hola mi.repite 4 [escribe "hola]C17%%3PROCESO DE ERRORES0o3Q r`7Sm !xπPROCESO DE ERRORESCDIGOS DE ERRORESCv1%K%vCDIGOS DE ERRORES63\ 7Sm CDIGOS DE ERRORES 0Fatal internal error (can't be caught) 1Out of memory (can't be caught) 2PROC doesn't like DATUM as input (not recoverable) 3PROC didn't output to PROC 4Not enough inputs to PROC 5PROC doesn't like DATUM as input (recoverable) 6Too much inside ( )'s 7I don't know what to do with DATUM 8')' not found 9VAR has no value 10Unexpected ')' 11I don't know how to PROC (recoverable) 12Can't find catch tag for THROWTAG.v %7Sm:߀I+߀~琀^J, 13PROC is already defined 14Stopped 15Already dribbling 16File system error 17Assuming you mean SISINO, not Si (warning only) 18VAR shadowed by local in procedure call (warning only) 19Throw "Error 20PROC is a primitive 21Can't use PARA inside a procedure 22I don't know how to PROC (not recoverable) 23SICIERTO/SIFALSO without PRUEBA 24Unexpected ']'#^ 7Smr+aY 25Unexpected '}' 26Couldn't initialize graphics 27Macro returned VALUE instead of a list 28I don't know what to do with VALUE 29Can only use ALTO or DEVUELVE inside a procedureA>1%|%>RDENES DE AYUDA1Z b7Sm IIxGRDENES DE AYUDAAYUDAAYUDADEWINDOW6>1+K%w&yAYUDAQP[ 7Sm AYUDAAYUDA(AYUDA keypalabra)Tiene dos formas (con y sin argumento por teclado). Sin argumento, Logo entra en el nivel superior del fichero de ayuda de Logo. Con argumento, Logo buscar en el fichero de ayuda el tema o temas indicados por el argumento. El argumento puede ser el nombre completo del tema o una parte del mismo. keypalabra:(PALABRA).Ejemplo:ayuda "introduccin ;(Entra en el tema introduccin de la ayuda)ayuda "intro ;(Entra en el motor de bsqueda de la ayuda)gQ p-7SmPara Ayuda Sensible al Contexto, vea EDITA.Observe que la Ayuda permite copiar en el Portapapeles el texto seleccionado (los ejemplos, en especial) que podr pasar al Editor o a la ventana Trabajo de Logo para que sean ejecutados:Haga clic en EDICIN del Men de la Ayuda.Seleccione Copiar (Con ello se copia en el Portapapeles la pgina enP la que se encuentra.Puede tambin seleccionar con el ratn el texto deseado (el cdigo de un ejemplo).Clic en Copiar del Men EDICIN o CONTROL-C (El texto pasa al Portapapeles).wPy? N7SmEntre en el Editor de Logo.Coloque el cursor donde desee insertar el ejemplo.Seleccione EDITAR.Seleccione pegar.A1L|%&AYUDA DE WINDOWS4y_ 7Sm AYUDADEWINDOWSAYUDADEWINDOWS nombrefichero(AYUDADEWINDOWS nombrefichero keypalabra)Tiene dos formas (con y sin segundo argumento por teclado). Sin un segundo argumento, Logo entra en el nivel superior del fichero de ayuda especificado. Con argumento, Logo buscar en el fichero de ayuda seleccionado el tema o temas indicados por el argumento. Debe entrar la palabra completa. nombrefichero:(PALABRA) Ruta del fichero de ayuda que quiere abrir.K d7Smkeypalabra:(PALABRA) Palabra a introducir en el motor de bsqueda de la ayuda.Ejemplo:(ayudadewindows "c:\\miayuda "introduccin)K1Sw&R&PRIMITIVAS DE DIRECTORIOSz 7Sm ɔw͚ϑ W, PRIMITIVAS DE DIRECTORIOS DIRDIRECTORIODIRECTORIOSCAMBIADIRECTORIOPOPDIRCREADIRECTORIO4L1&h&L DIR  $-7Sm DIRDIR(Procedimiento de la librera)Escribe una lista de ficheros y directorios comprendidos en el directorio actual. Ejemplo:dirFile LOGO.EXEFile LOGO.HLPFile MYPROG.LGDirectory .Directory ..Directory LOGOLIBDirectory EJEMPLOS; LH1R&p&H DIRECTORIO   ր7Sm DIRECTORIOlistaficheros DIRECTORIODevuelve la lista de ficheros del directorio actual.listaficheros:(LISTA) Lista de ficheros.Ejemplo:muestra directorio[logo.doc logo.exe LOGICEX.BMP LICENSE.TXT MSWLOGO.TXT mcistrwh.hlp LOGO.CNT]]< H 1h&X& g DIRECTORIOSW g o 7Sm DIRECTORIOSlistadirectorios directoriosDevuelve la lista de directorios comprendidos en el directorio actual.listadirectorios:(LIST) Lista de directorios.Ejemplo:muestra directorios[EJEMPLOS LOGOLIB .. .]A  13p&&  CAMBIADIRECTORIOqg   Ѐ7Sm CAMBIADIRECTORIOCAMBIADIRECTORIO directorioCD directorioEs exactamente igual que la orden CHDIR (CD) del DOS. El argumento debe ser una palabra (el nombre del directorio al que se quiere llegar). directorio:(PALABRA) Ruta del directorio.Ejemplo:cambiadirectoio "examplesPushed to C:\LOGO\EXAMPLESdirectoriopadreEntrando en C:\LOGO@  1X&& 8DIRECTORIOPADRE^ 8x 7Sm W, DIRECTORIOPADREDIRECTORIOPADRELe lleva al nivel superior de un directorio. Vea tambin CREADIRECTORIOEjemplo:cambiadirectorio "ejemplos Pushed to C:\LOGO\EJEMPLOSdirectoriopadreEntrando en C:\LOGO? w1&&wAACREADIRECTORIOV8AAh 7Sm CREADIRECTORIOCREADIRECTORIO wAA8directorioCrea un directorio y le lleva a l. El parmetro debe ser una palabra (el nombre del directorio que se quiere crear). directorio:(PALABRA) Ruta del directorio que se quiere crear.Ejemplo:creadirectorio "junkEn el directorio recin creado junk directoriopadreEntrado en C:\LOGOEwA1,&X&AmHFUNCIONES DE WINDOWS<AADD V7Sm FUNCIONES DE WINDOWSEsta seccin describe cmo el programador de LOGO puede crear una Interfaz Grfica de Usuario (GUI). Todo GUI tiene una Application Programming Interface (API), que se documenta en esta seccin. Ambos, GUI y API tienen una relacin madre/hijo. Esto es, Windows y sus controles aparecen (grficamente) de forma anidada. La apariencia anidada se mantiene en el cdigo que se desarrolle.Debe especificar una ventana madre para cada ventana que cree. Cuando borra una madre de cualquier gnero, se borran todos sus hijos. Cada funcin de ventana se identifica por un nombre. Para identificar cualquier objeto Windows (ventanas, cursores, etc.) se emplea un manipulador (handle) que se pasa como parmetro en una funcin.!AFx S7Sm^=/r'=}Cuando los controles estn en una ventana, las coordenadas usadas en todas las funciones son las coordenadas del sistema Windows (no las coordenadas de la tortuga). Esto es, el punto (0,0) no est en el centro de la pantalla, sino en la esquina superior izquierda. Cuando los controles estn en la ventana de grficos, el sistema de coordenadas es el de la tortuga. VENTANADILOGOLISTBOX COMBOBOXDmH to7SmP 㓼$7 2[ mS9s㓟㠌FBARRA DE DESPLAZAMIENTOBOTN ESTTICO GROUPBOXCHECKBOXRADIOBUTTONDEPURACIN Modal vs. Modeless Ventanas predefinidasEjemplos8FH1&&H,IVENTANA-mH,IZ Z7Sm 㬡_S=eVENTANACREAVENTANABORRAVENTANA< HhI1X&'hICREAVENTANAo,IK ހ7Sm sCREAVENTANACREAVENTANA madre nombre ttulo xpos ypos anchura altura setupCrea una ventana. Una ventana se usa como marco de trabajo al que se puede aadir otros objetos o controles de Windows, como botones, barras de desplazamiento, cajas de lista, etc. (Vea Modal vs. Modeless Windows)madre:(PALABRA) Es el nombre de la ventana de la que depende la nueva ventana. Si es la primera ventana que se crea se debe usar "root como nombre de la ventana madre.1hIN\ 7Smnombre:(PALABRA) Se usa para identificar la ventana (que puede ser la ventana madre de otras ventanas y controles) y debe tratarse de un nombre diferente al de otras ventanas.ttulo:(LISTA) Es el ttulo (caption) que aparece en la ventana.xpos:(ENTERO) Es la posicin X de la esquina superior izquierda de la nueva ventana.ypos:(ENTERO) Es la posicin Y de la esquina superior izquierda de la nueva ventana.anchura:(ENTERO) Anchura de la nueva ventana.KO lg7Smaltura:(ENTERO) Altura de la nueva ventana.setup:(LISTA) Es una lista de rdenes, primitivas (o nombres de procedimientos) a ejecutar cuando se crea la ventana. Estas rdenes deben ejecutarse cuando se crean funciones o se aaden controles a la ventana. Se puede emplear una lista vaca como argumento y aadir los controles ms tarde. Ejemplo:creaventana "main "miventana "mittulo 0 0 100 100 []borraventana "mN,Iiventana= NS1&N'SBORRAVENTANAN` 7Sm BORRAVENTANABORRAVENTANA nombreBorra (cierra) la ventana, identificada por nombre. Cierra tambin las ventanas y controles dependientes de esa ventana. nombre:(PALABRA) Se usa para identificar la ventana que se quiere cerrar.Ejemplo:creaventana "main "miventana "myttulo 0 0 100 100 []borraventana "miventana8S91'{'9DILOGO-Z Z7Sm  !DILOGOCREADIALOGOBORRADIALOGO< 91}N'^'=CREADIALOGO\Xv 7Sm CREADIALOGOCREADIALOGO madre nombre ttulo xpos ypos anchura altura setupCrea una ventana de dilogo. Una ventana de dilogo se usa como marco de trabajo en el que se puede aadir otros objetos o controles, como botones, barras de desplazamiento, cajas de lista, etc. Esta funcin es parecida a CREAVENTANA.madre:(PALABRA) Es el nombre de la ventana madre de la ventana de dilogo. Si es la primera ventana, debe usar como nombre de la ventana madre "root.I\ 7Smnombre:(PALABRA) Es el nombre que identifica la ventana de dilogo (que puede ser madre de otras ventanas o controles) y que debe ser un nombre distinto al de otras ventanas.ttulo:(LISTA) Ttulo (caption) de la ventana de dilogo.xpos:(ENTERO) Es la posicin X de la esquina superior izquierda de la nueva ventana de dilogo.ypos:(ENTERO) Es la posicin Y de la esquina superior izquierda de la nueva ventana de dilogo.anchura:(ENTERO) Anchura de la nueva ventana de dilogo.XO l7Smaltura:(ENTERO) Altura de la nueva ventana de dilogo.setup:(LISTA) Es una lista de rdenes de Logo, primitivas o procedimientos a ejecutar cuando se crea la ventana de dilogo. Estas rdenes deben ejecutarse cuando se crean funciones o se aaden controles a la ventana. Asegrese de aadir los botones (OK, FIN, CERRAR, CANCELAR ) antes de llamar a BORRADIALOGO.Ejemplo:para mysetupcreaboton "mydialog "myok "OK 25 25 50 50 [borradialogo "mydialog]~A== J7Smfincreadialogo "main "mydialog "mytitle 0 0 100 100 [mysetup]= z16{''zsBORRADIALOGO=sb /7Sm BORRADIALOGOBORRADIALOGO nombreBorra (cierra) la ventana de dilogo de nombre nombre. Observe que las ventanas hijas y controles se cerrarn tambin.nombre:(PALABRA) Nombre que identifica la ventana de dilogo que se quiere cerrar.Ejemplo:para misetupcreaboton "midialogo "myok "OK 25 25 50 50 [borradialogo "midialogo]fincreadialogo "main "midialogo "mititulo 0 0 100 100 [misetup]8z1,^'h 'LISTBOXss Ҁ7Sm !Ϗj%wf-:Y㵀)LISTBOXCREALISTBOXBORRALISTBOXLEESELECCIONLISTBOXAADECADENALISTBOXBORRACADENALISTBOX< ۍ1'm'ۍ+CREALISTBOX|c ̀7Sm CREALISTBOXCREALISTBOX madre nombre xpos ypos anchura alturaCrea un control LISTBOX (lista de datos). El control LISTBOX se usa para que el usuario pueda seleccionar un elemento.madre:(PALABRA) Nombre de la ventana que posee el nuevo control LISTBOX.nombre:(PALABRA) Identifica el control LISTBOX.xpos:(ENTERO) Es la posicin X de la esquina superior izquierda del nuevo control LISTBOX.ypos:ۍc(ENTERO) Es la posicin Y de la esquina superior izquierda del nuevo control LISTBOX.mۍ+[ 7Smanchura:(ENTERO) Anchura del nuevo control LISTBOX.altura:(ENTERO) Altura del nuevo control LISTBOX.Ejemplo (en una nueva ventana):creaventana "main "miventana "mititulo 0 0 100 100 []crealistbox "miventana "milista 25 25 50 50borraventana "miventanaEjemplo (en la ventana de grficos):crealistbox "main "milista 25 25 100 100borraventana "main= ch1h ''hBORRALISTBOXI+b 7Sm BORRALISTBOXBORRALISTBOX nombreBorra (cierra) el control LISTBOX identificado por nombre.nombre:(PALABRA) Identifica el control LISTBOX que se quiere cerrar.Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []crealistbox "miventana "milista 25 25 50 50borralistbox "milistaborraventana "miventanaDhW1m''W LEESELECCIONLISTBOX wi o7Sm LEESELECCIONLISTBOXtexto LEESELECCIONLISTBOX nombreDevuelve una copia del elemento seleccionado en el control LISTBOX.texto:(LISTA) Representa el elemento seleccionado del control LISTBOX.nombre:(PALABRA) Identifica el control LISTBOX.Ejemplo:para dodrawbpsi iguales? [TRIANGULO] leeseleccionlistbox "milista [repite 3 [av 100 gd 120]]si iguales? [CUADRADO] leeseleccionlistbox "milista [repite 4 [av 100 gd 90]]NW D V7Smfincreaventana "main "miventana "mititulo 0 0 100 100 []crealistbox "miventana "milista 25 0 50 50aadecadenalistbox "milista [TRIANGULO]aadecadenalistbox "milista [CUADRADO]creaboton "miventana "midibujo "Dibujar 25 50 50 25 [dodraw]borraventana "miventanaCwL1<''LEAADECADENALISTBOXe u 7Sm AADECADENALISTBOXAADECADENALISTBOX nombre elementoAade un elemento al control LISTBOX identificado por nombre.nombre:(PALABRA) Se usa para identificar el control LISTBOX al que se quiere aadir una cadena.elemento:(PALABRA) Es el elemento que se quiere insertar en el control LISTBOX.Ejemplo:para dodrawbpsi iguales? [TRIANGULO] leeseleccionlistbox "milista [repite 3 [av 100 gd 120]]si iguales? [CUADRADO] leeseleccionlistbox "milista [repite 4 [av 100 gd 90]]OLEE X7Smfincreaventana "main "miventana "mititulo 0 0 100 100 []crealistbox "miventana "milista 25 0 50 50aadecadenalistbox "milista [TRIANGULO]aadecadenalistbox "milista [CUADRADO]creaboton "miventana "midibujo "Dibujar 25 50 50 25 [dodraw]borraventana "miventanaC1*'3'oBORRACADENALISTBOX!En g7Sm BORRACADENALISTBOXBORRACADENALISTBOX nombre ndiceBorra el elemento nmero "ndice" de un control LISTBOX.nombre:(PALABRA) Identifica el control LISTBOX del que se quiere borrar una cadena.ndice:(ENTERO) ndice del elemento que se quiere borrar (empiezan desde 0).Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []crealistbox "miventana "milista 25 0 50 50aadecadenalistbox "milista [TRIANGULO]o@ N 7Smaadecadenalistbox "milista [CUADRADO]aadecadenalistbox "milista [HEXAGONO]borracadenalistbox "milista 1borraventana "miventana91X'(COMBOBOXo 7Sm @hdFoU*% 3IUĀCOMBOBOX CREACOMBOBOXBORRACOMBOBOXLEETEXTOCOMBOBOXPONTEXTOCOMBOBOXAADELINEACOMBOBOXBORRALINEACOMBOBOX=  13'( CREACOMBOBOXNWb 7Sm CREACOMBOBOXCREACOMBOBOX madre nombre xpos ypos anchura alturaCrea un control COMBOBOX. El control COMBOBOX se usa para ofrecer al usuario una serie de elementos y permitir que introduzca un elemento que no est listado. El control COMBOBOX es la unin de dos controles en uno slo (el control LISTBOX y el control EDIT). Si quiere crear un control EDIT ( COMBOBOX sin LISTBOX) slo tiene que fijar la altura a un tamao en el que no encaje el tamao del control LISTBOX.4 i 7Smmadre:(PALABRA) Nombre de la ventana que posee el nuevo control COMBOBOX.nombre:(PALABRA) Identifica el control COMBOBOX.xpos:(ENTERO) Es la posicin X de la esquina superior izquierda del nuevo control COMBOBOX.ypos:(ENTERO) Es la posicin Y de la esquina superior izquierda del nuevo control COMBOBOX.anchura:(ENTERO) Anchura del nuevo control COMBOBOX.altura:(ENTERO) Altura del nuevo control COMBOBOX.Ejemplo (en una nueva ventana):3WN j7Smcreaventana "main "miventana "mititulo 0 0 100 100 []creacombobox "miventana "mycombo 25 25 50 50borraventana "miventanaEjemplo (en la ventana de grficos):creacombobox "main "micombo 25 25 100 100borraventana "main> 1((BORRACOMBOBOX\b 7Sm BORRACOMBOBOXBORRACOMBOBOX nombreBorra (cierra) el control COMBOBOX identificado por nombre.nombre:(PALABRA) Se usa para identificar el control COMBOBOX que se quiere borrar.Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []creacombobox "miventana "micombo 25 25 50 50borracombobox "micomboborraventana "miventanaA10(8 ( LEETEXTOCOMBOBOX j g7Sm LEETEXTOCOMBOBOXtexto LEETEXTOCOMBOBOX nombreLee el contenido del control EDIT que forma parte del control COMBOBOX (puede ser o no ser un elemento seleccionado).texto:(LISTA) Representa el contenido del control EDIT, dentro del actual control COMBOBOX.nombre:(PALABRA) Identifica al control COMBOBOX.Ejemplo:para dodrawbphaz "sides primero leetextocombobox "micomborepite :sides [av 50 gd 360.0/:sides]fin E X7Smcreaventana "main "miventana "mititulo 0 0 100 100 []creacombobox "miventana "micombo 25 0 50 50aadelineacombobox "micombo [3]aadelineacombobox "micombo [4]aadelineacombobox "micombo [5]aadelineacombobox "micombo [6]creaboton "miventana "midibujo "Dibujar 25 50 50 25 [dodraw]borraventana "miventanaA + 1*((+  @PONTEXTOCOMBOBOX2 ]i 7Sm PONTEXTOCOMBOBOXPONTEXTOCOMBOBOX nombre textoPone texto en el control EDIT que es un componente de COMBOBOX.nombre:(PALABRA) Identifica el control COMBOBOX en el que quiere colocar texto.texto:(PALABRA) Es el elemento que se quiere insertar en el control COMBOBOX.Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []creacombobox "miventana "micombo 25 0 50 50aadelineacombobox "micombo [3]aadelineacombobox "micombo [4]x+  @? N7Smaadelineacombobox "micombo [5]aadelineacombobox "micombo [6]pontextocombobox "micombo [3]borra] @ ventana "miventanaC]c@1t8 (|(c@DAADELINEACOMBOBOX0 @Bn 7Sm AADELINEACOMBOBOXAADELINEACOMBOBOX nombre elementoAadir un "elemento" en el control COMBOBOX identificado con "nombre". Observe que los elementos que se insertan se ordenan automticamente en el control COMBOBOX.nombre:(PALABRA) Identifica el COMBOBOX.elemento:(LISTA) Elemento que se insertar en el control LISTBOX, que es un componente de COMBOBOX.Ejemplo:para dodrawbphaz "caras primero leetextocombobox "micomboc@DG \u7Smrepite :caras [av 50 gd 360.0/:caras]fincreaventana "main "miventana "mititulo 0 0 100 100 []creacombobox "miventana "micombo 25 0 50 50aadelineacombobox "micombo [3]aadelineacombobox "micombo [4]aadelineacombobox "micombo [5]aadelineacombobox "micombo [6]creaboton "miventana "midibujo "Dibujar 25 50 50 25 [dodraw]borraventana "miventanaCBD1-((DGBORRALINEACOMBOBOX3D Gu }7Sm BORRALINEACOMBOBOXBORRALINEACOMBOBOX nombre ndiceBorra el elemento nmero "ndice" del COMBOBOX identificado como "nombre".nombre:(PALABRA) Identifica el COMBOBOX.ndice:(ENTERO) ndice del elemento que se quiere borrar (los ndices empiezan en 0).Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []creacombobox "miventana "micombo 25 0 50 50aadelineacombobox "micombo [3]aadelineacombobox "micombo [4]xDG? N7Smaadelineacombobox "micombo [5]aadelineacombobox "micombo [6]borralineacombobox "micombo 1borraventana "miventana: GG1J|(J(G ISCROLLBARG Ix 17Sm  ǔ5욀T((BARRA DE DESPLAZAMIENTO (SCROLLBAR)CREABARRADESPLAZAMIENTOBORRABARRADESPLAZAMIENTOPONBARRADESPLAZAMIENTOLEEBARRADESPLAZAMIENTOHGSI1~ (w)SIJCREABARRADESPLAZAMIENTO\ IKt 7Sm T(CREABARRADESPLAZAMIENTOCREABARRADESPLAZAMIENTO madre nombre xpos ypos anchura altura callbackCrea un control SCROLLBAR. El control SCROLLBAR se usa para pedir al usuario el valor de una variable (aunque puede disear una funcin con otro motivo). Es frecuente su utilizacin junto con el control ESTATICO para informar al usuario de una situacin. No olvide que SCROLLBAR debe tener un valor mximo y un valor inicial que debe fijar con PONBARRADESPLAZAMIENTO.]SI N[ 7SmLa orientacin (vertical o horizontal) del control SCROLLBAR se determina segn la dimensin mayor. Esto es, si X > Y, se escoge la horizontal; en otro caso, la vertical.madre:(PALABRA) Nombre de la Ventana que posee el nuevo control SCROLLBAR.nombre:(PALABRA) Identifica el control SCROLLBAR y debe ser nico.xpos:(ENTERO) Es la posicin X de la esquina superior izquierda del nuevo control SCROLLBAR.ypos:(ENTERO) Es la posicin Y de la esquina superior izquierda del nuevo control SCROLLBAR.oKV z37Smanchura:(ENTERO) Anchura del nuevo control SCROLLBAR.altura:(ENTERO) Altura del nuevo control SCROLLBAR.callback:(LISTA) Es una lista de rdenes (nombres de primitivas o de procedimientos) a ejecutar cuando el usuario ajuste el SCROLLBAR. Es frecuente la llamada a procedimientos que informen al usuario sobre el estado del SCROLLBAR.Ejemplo (en una nueva ventana):creaventana "main "miventana "mit N Iitulo 0 0 100 100 []creabarradesplazamiento "miventana "miscroll 25 25 50 25 [ponrumbo leebarradesplazamiento "miscroll]w NJL f7Smponbarradesplazamiento "miscroll 0 360 0borraventana "miventanaEjemplo (en la ventana de grficos):creabarradesplazamiento "main "miscroll 25 25 100 25 [ponrumbo leebarradesplazamiento "miscroll]ponbarradesplazamiento "miscroll 0 360 0borraventana "mainI1.J()xBORRABARRADESPLAZAMIENTOJxb 7Sm BORRABARRADESPLAZAMIENTOBORRABARRADESPLAZAMIENTO nombreBorra (cierra) el control SCROLLBAR identificado por nombre.nombre:(PALABRA) Identifica el control SCROLLBAR que se quiere cerrar.Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []borrabarradesplazamiento "miventana "miscroll 25 25 50 25 []borrabarradesplazamiento "miscrollborraventana "miventanaG1w))[PONBARRADESPLAZAMIENTO1xy q7Sm PONBARRADESPLAZAMIENTOPONBARRADESPLAZAMIENTO nombre mnimo mximo posicinFija el rango (entre mnimo y mximo) y la posicin actual del control SCROLLBAR. nombre:(PALABRA) Identifica el control SCROLLBAR.mnimo:(ENTERO) Fija el valor mnimo del control SCROLLBAR.mximo:(ENTERO) Fija el valor mximo del control SCROLLBAR.posicin:(ENTERO) Fija y devuelve el valor de la posicin actual del control SCROLLBAR.k$[G \I7SmEjemplo:creaventana "main "miventana "mititulo 0 0 100 100 []creabarrasdesplazamiento "miventana "miscroll 25 25 50 25 [ponrumbo leebarradesplazamiento "miscroll]ponbarradesplazamiento "miscroll 0 360 0borraventana "miventanaG1))kLEEBARRADESPLAZAMIENTO7[يn 7Sm LEEBARRADESPLAZAMIENTOpos LEEBARRADESPLAZAMIENTO nombreDevuelve la posicin del control SCROLLBAR identificado por nombre.pos:(ENTERO) Posicin del scrollbar (dentro de su rango).nombre:(PALABRA) Identifica el control SCROLLBAR.Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []creabarradesplazamiento "miventana "miscroll 25 25 50 25 [ponrumbo leebarradesplazamiento "miscroll]ponbarradesplazamiento "miscroll 0 360 0Uk= J7Sm< mueva el scrollbar y observe qu sucede con la tortuga >borraventana "miventana6ي1).)BBOTN:kBg t7Sm JI2&O{PBOTNCREABOTONBORRABOTONACTUALIZABOTON: |1))|CREABOTON^Bڎ 䀧7Sm CREABOTONCREABOTON madre nombre etiqueta xpos ypos anchura altura callbackCrea un control BUTTON. El control BUTTON se usa para que el usuario provoque eventos. madre:(PALABRA) Nombre de la ventana que posee el nuevo control BUTTON.nombre:(PALABRA) Identifica el control BUTTON y debe ser nico.etiqueta:(LISTA) Etiqueta del control BUTTON.xpos:(ENTERO) Es la posicin X de la esquina superior izquierda del nuevo control BUTTON.?|%] 7Smypos:(ENTERO) Es la posicin Y de la esquina superior izquierda del nuevo control BUTTON.anchura:(ENTERO) Anchura del nuevo control BUTTON.altura:(ENTERO) Altura del nuevo control BUTTON.calڎ%Blback:(LISTA) Es una lista de rdenes de Logo (nombres de primitivas o de procedimientos) a ejecutar cuando el usuario pulsa el control BUTTON.Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []creaboton "miventana "miizquierda "Izquierda 25 25 25 25 [av 2 gi 1]ڎL f)7Smcreaboton "miventana "miizquierda "Derecha 50 25 25 25 [av 2 gd 1]borraventana "miventanaEjemplo (en la ventana de grficos):creaboton "main "miizquierda "Izquierda 50 50 50 25 [av 2 gi 1]creaboton "main "miderecha "Derecha 100 50 50 25 [av 2 gd 1]< clics repetidos en Izquierda o Derecha y observe la tortuga >borraventana "main; %@1.))@BORRABOTONWb 7Sm BORRABOTONBORRABOTON nombreBorra (cierra) el control BUTTON identificado por nombre.nombre:(PALABRA) Identifica el control BUTTON que se quiere cerrar.Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []creaboton "miventana "miboton "PULSA 25 25 25 25 [escribe "pulsa]borraboton "mibotonborraventana "miventana?@81)ۄ)8ACTUALIZABOTON1io 7Sm ACTUALIZABOTONACTUALIZABOTON nombre textoCambia el contenido del control BUTTON por un nuevo "texto".nombre:(PALABRA) Identifica el control BUTTON que se quiere actualizar.texto:(LISTA) Nuevo contenido del control BUTTON.Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 [];aparece la ventanahaz "Pushed 0creaboton "miventana "miboton :Pushed 25 25 25 25 [haz "Pushed :Pushed +1 Actualizaboton "miboton :Pushed]k.8= J\7Smborraboton "mibotonborraventana "miventana9i 1)!) ESTATICOFg 7Sm 㮥5XUA[^,ESTATICOCREAESTATICOBORRAESTATICOACTUALIZAESTATICO= 1ۄ))CREAESTATICO90 Ԁm7Sm ,CREAESTATICOCREAESTATICO madre nombre texto xpos ypos anchura alturaCrea un control STATIC. El control STATIC se usa slo para mostrar un texto. Su nombre puede inducir a error, ya que el control STATIC puede ser dinmico si se utiliza la primitiva ACTUALIZAESTATICO.madre:(PALABRA) Nombre de la ventana que posee el nuevo control STATIC.nombre:(PALABRA) Identifica el control STATIC y debe ser nico.c^ 7Smxpos:(ENTERO) Es la posicin X de la esquina superior izquierda del nuevo control STATIC.ypos:(ENTERO) Es la posicin Y de la esquina superior izquierda del nuevo control STATIC.anchura:(ENTERO) Anchura del nuevo control STATIC.altura:(ENTERO) Altura del nuevo control STATIC.Ejemplo (en una nueva ventana):creaventana "main "miventana "mititulo 0 0 100 100 []creaestatico "miventana "miestatico [Rumbo=0] 25 25 50 25repite 72 [gd 5 actualizaestatico "miestatico frase [Rumbo=] rumbo espera 60]#0I `7Smborraventana "miventanaEjemplo (en la ventana de grficos):creaestatico "main "miestatico [Rumbo=0] 25 25 100 50repite 72 [gd 5 actualizaestatico "miestatico frase [Rumbo=] rumbo espera 60]borraventana "main> 1!)*BORRAESTATICOab 7Sm BORRAESTATICOBORRAESTATICO nombreBorra (cierra) el control STATIC identificado por nombre.nombre:(PALABRA) Identifica el control STATIC que se quiere cerrar.Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []creaestatico "miventana "miestatico [Control Static] 25 25 50 25creaestatico "miestaticoborraventana "miventanaB1)*ACTUALIZAESTATICO.3n 7Sm ACTUALIZAESTATICOACTUALIZAESTATICO nombre textoCambiar el contenido del control STATIC por "texto".nombre:(PALABRA) Identifica el control STATIC que se quiere actualizar.texto:(LISTA) El nuevo contenido del control STATIC.Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []creaestatico "miventana "miestatico [Rumbo=0] 25 25 50 25repite 72 [gd 5 actualizaestatico "miestatico frase [Rumbo=] rumbo espera 60]V< H47Smborraventana "miventana931**XGROUPBOX9X] r7Sm l;MARCO (GROUPBOX)CREAGROUPBOXBORRAGROUPBOX= 1O** CREAGROUPBOX[Xz €7Sm a]r?%ӀCREAGROUPBOXCREAGROUPBOX madre nombre xpos ypos anchura alturaCrea un control GROUPBOX. Un control GROUPBOX es diferente de los otros controles de Windows porque agrupa de forma grfica y lgica los grupos RadioButtons (CREABOTONRADIO) y CheckBoxs (CREACHECKBOX). RadioButtons y CheckBoxs deben pertenecer a un GROUPBOX. Para complicar las cosas, los RadioButtons y CheckBoxs colocados en un GROUPBOX tienen una madre distinta a la de GROUPBOX. i i7Smmadre:(PALABRA) Nombre de la ventana que posee el nuevo control GROUPBOX.nombre:(PALABRA) Identifica el control GROUPBOX.xpos:(ENTERO) Es la posicin X de la esquina superior izquierda del nuevo control GROUPBOX.ypos:(ENTERO) Es la posicin Y de la esquina superior izquierda del nuevo control GROUPBOX.anchura:(ENTERO) Anchura del nuevo control GROUPBOX.altura:(ENTERO) Altura del nuevo control GROUPBOX.Ejemplo:Q I `7Smpara Chequearsisino estadocheckbox "miocultatortuga [ot] [mt]fincreaventana "main "miventana "mititulo 0 0 100 100 []creagroupbox "miventana "migroupbox 10 10 80 40creacheckbox "miventana "migroupbox "miocultatortuga [Tortuga oculta] 20 20 60 20creaboton "miventana "miboton "GO 40 50 25 25 [Chequear]borraventana "miventana>  1*N*  BORRAGROUPBOXU  b 7Sm BORRAGROUPBOXBORRAGROUPBOX nombreBorra (cierra) el control GROUPBOX identificado por nombre.nombre:(PALABRA) Identifica el control GROUPBOX que se quiere cerrar.Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []creagroupbox "miventana "migroupbox 10 10 80 40borragroupbox "migroupboxborraventana "miventana9  1**  CHECKBOXS  t 7Sm ?%ӀJـGk㇞kCHECKBOXCREACHECKBOXBORRACHECKBOXESTADOCHECKBOXPONCHECKBOX=  1N*A* ECREACHECKBOXq V@ 7Sm lCREACHECKBOXCREACHECKBOX madre grupo nombre etiqueta xpos ypos anchura alturaCrea un control CHECKBOX . El control CHECKBOX se usa para que el usuario seleccione entre dos estados de un elemento (Verdadero o Falso). El control CHECKBOX puede incluirse dentro del control GROUPBOX (CREAGROUPBOX).madre:(PALABRA) Nombre de la ventana que posee el nuevo control CHECKBOX.grupo:(PALA V@ BRA) Nombre del control GROUPBOX asociado con el nuevo control CHECKBOX.% {Be 7Smnombre:(PALABRA) Identifica el control CHECKBOX y debe ser nico.etiqueta:(LISTA) Etiqueta del control CHECKBOX.xpos:(ENTERO) Es la posicin X de la esquina superior izquierda del nuevo control CHECKBOX.ypos:(ENTERO) Es la posicin Y de la esquina superior izquierda del nuevo control CHECKBOX.anchura:(ENTERO) Anchura del nuevo control CHECKBOX.altura:(ENTERO) Altura del nuevo control CHECKBOX.Ejemplo (en una nueva ventana):?V@DW |7Smpara chequearsisino estadocheckbox "miocultatortuga [ot] [mt]fincreaventana "main "miventana "mititulo 0 0 100 100 []creagroupbox "miventana "migroupbox 10 10 80 40creacheckbox "miventana "migroupbox " miocultatortuga [Tortuga Oculta] 20 20 60 20creaboton "miventana "miboton "GO 40 50 25 25 [chequear]borraventana "miventanaEjemplo (en la ventana grfica):para chequearsisino estadocheckbox "miocultatortuga [ot] [mt]fincreagroupbox "main "migroupbox 110 90 140 60{BE? L37Smcreacheckbox "main "migroupbox "miocultatortuga [Tortuga oculta] 120 80 120 40creaboton "main "miboton "GO 160 20 50 50 [chequear]borraventana "main> DE1>**EGBORRACHECKBOXEGa ?7Sm BORRACHECKBOXBORRACHECKBOX nombreBorra (cierra) el control CHECKBOX identificado por nombre.nombre:(PALABRA) Se usa para identificar el control CHECKBOX que se quiere cerrar.creaventana "main "miventana "mititulo 0 0 100 100 []creagroupbox "miventana "migroupbox 10 10 80 40creacheckbox "miventana "migroupbox "micheckbox [Check Me] 20 20 60 20borracheckbox "micheckboxborraventana "miventana?EH1?A*7*HKESTADOCHECKBOXG+Jj e7Sm ESTADOCHECKBOXverdad ESTADOCHECKBOX nombrePregunta al control CHECKBOX por su estado (Verdadero o Falso).verdad:(BOOLEANO) Estado (Verdadero o Falso) del control CHECKBOX.nombre:(PALABRA) Se usa para identificar el control COMBOBOX.Ejemplo:para chequearsisino estadocheckbox "miocultatortuga [ot] [mt]fincreaventana "main "miventana "mititulo 0 0 100 100 []creagroupbox "miventana "migroupbox 10 10 80 40HK? LK7Smcreacheckbox "miventana "migroupbox "miocultatortuga [Tortuga oculta] 20 20 60 20creaboton "miventana "miboton "GO 40 50 25 25 [chequear]borraventana "miventana< +JKK1***KKMPONCHECKBOX#KnMi u7Sm PONCHECKBOXPONCHECKBOX nombre estadoFija el valor del estado del CHECKBOX como Verdadero o Falso.nombre:(PALABRA) Se usa para identificar el control CHECKBOX.estado:(PALABRA) Estado (Verdadero o Falso).Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []creagroupbox "miventana "migroupbox 10 10 80 40creacheckbox "miventana "migroupbox "micheckbox [Check Me] 20 20 60 20poncheckbox "micheckbox "verdaderov9KKM= Jr7Smponcheckbox "micheckbox "falsoborraventana "miventana< nM N17** NNRADIOBUTTON_MNt 7Sm a]rx\N]RADIOBUTTONCREABOTONRADIOBORRABOTONRADIOLEEBOTONRADIOESCRIBEBOTONRADIO? N2O1G **+2OCREABOTONRADIOWNz €7Sm lCREABOTONRADIOCREABOTONRADIO madre grupo nombre etiqueta xpos ypos 2ONanchura alturaCrea un control RADIOBUTTON. El control RADIOBUTTON se usa para ofrecer al usuario la seleccin entre dos estados de un elemento (Verdadero o Falso; activado o desactivado). De existir varios controles, slo uno de ellos puede tener el valor Verdadero (activado) dentro de un GROUPBOX. Se deben asociar los controles RADIOBUTTON a un control GROUPBOX (CREAGROUPBOX).@2OՃg 7Smmadre:(PALABRA) Nombre del control GROUPBOX que est asociado el nuevo control RADIOBUTTON.nombre:(PALABRA) Identifica el control RADIOBUTTON y debe ser nico.etiqueta:(LISTA) Etiqueta del control RADIOBUTTON.xpos:(ENTERO) Es la posicin X de la esquina superior izquierda del nuevo control RADIOBUTTON.ypos:(ENTERO) Es la posicin Y de la esquina superior izquierda del nuevo control RADIOBUTTON.anchura:(ENTERO) Anchura del nuevo control RADIOBUTTON.,O l7Smaltura:(ENTERO) Altura del nuevo control RADIOBUTTON.Ejemplo (en una nueva ventana):para chequearsisino leebotonradio "miocultatortuga [ot] [mt]fincreaventana "main "miventana "mititulo 0 0 100 100 []creagroupbox "miventana "migroupbox 10 10 80 60creabotonradio "miventana "migroupbox "miocultatortuga [Tortuga oculta] 20 20 60 20creabotonradio "miventana "migroupbox "mimuestratortuga [Tortuga visible] 20 40 60 20escribebotonradio "miocultatortuga "verdadero8Ճ9P n7Smescribebotonradio "mimuestratortuga "falsocreaboton "miventana "miboton "GO 40 70 25 20 [chequear]borraventana "miventanaEjemplo (en la ventana grfica):para chequearsisino leebotonradio "miocultatortuga [ot] [mt]fincreagroupbox "main "migroupbox 110 130 140 100creabotonradio "main "migroupbox "miocultatortuga [Tortuga oculta] 120 120 120 40creabotonradio "main "migroupbox "mimuestratortuga [Tortuga visible] 120 80 120 40escribebotonradio "miocultatortuga "verdaderov> L7Smescribebotonradio "mimuestratortuga "falsocreaboton "main "miboton "GO 160 20 50 50 [chequear];borraventana "main@9-1b*+-OBORRABOTONRADIO"Oc 7Sm BORRABOTONRADIOBORRABOTONRADIO nombreBorra (cierra) el control RADIOBUTTON identificado por nombre.nombre:(PALABRA) Se usa para identificar el control RADIOBUTTON que se quiere cerrar.Ejemplo:creaventana "main "miventana "mititulo 0 0 100 100 []creagroupbox "miventana "migroupbox 10 10 80 60creabotonradio "miventana "migroupbox "miradiobotton [Switch Me] 20 20 60 20borrabotonradio "miradiobottonborraventana "miventana> -1+ +<LEEBOTONRADIOlOk 7Sm LEEBOTONRADIOverdad LEEBOTONRADIO nombrePregunta a RADIOBUTTON por su estado (Verdadero o Falso).verdad:(BOOLEANO) Estado (Verdadero o Falso) del control RADIOBUTTON.nombre:(PALABRA) Se usa para identificar el control RADIOBUTTON.Ejemplo:para chequearsisino leebotonradio "miocultatortuga [ot] [mt]fincreaventana "main "miventana "mititulo 0 0 100 100 []creagroupbox "miventana "migroupbox 10 10 80 60creabotonradio "miventana "migroupbox "miocultatortuga [Tortuga oculta] 20 20 60 20C<A P7Smcreabotonradio "miventana "migroupbox "mimuestratortuga [Tortuga visible] 20 40 60 20escribebotonradio "miocultatortuga "verdaderoescribebotonradio "mimuestratortuga "falsocreaboton "miventana "miboton "GO 40 70 25 20 [chequear]borraventana "miventanaB~1++~ESCRIBEBOTONRADIO6<g 7Sm ESCRIBEBOTONRADIOESCRIB~<EBOTONRADIO nombre estadoFija el estado de RADIOBUTTON comoVerdadero o Falso. Si fija el valor de un RADIOBUTTON como Verdadero, asegrese de que los otros RADIOBUTTONs dentro de un GROUPBOX tienen el valor Falso.nombre:(PALABRA) Se usa para identificar el control RADIOBUTTON.estado:(BOOLEANO) Estado, Verdadero o Falso del control RADIOBUTTON.Ejemplo:para chequearsisino leebotonradio "miocultatortuga [ot] [mt]~F Z7Smfincreaventana "main "miventana "mititulo 0 0 100 100 []creagroupbox "miventana "migroupbox 10 10 80 60creabotonradio "miventana "migroupbox "miocultatortuga [Tortuga oculta] 20 20 60 20creabotonradio "miventana "migroupbox "mimuestratortuga [Tortuga visible] 20 40 60 20escribebotonradio "miocultatortuga "verdaderoescribebotonradio "mimuestratortuga "falsocreaboton "miventana "miboton "GO 40 70 25 20 [chequear]borraventana "miventana; 1 ++sDEPURACINq$sM jH7Sm KDEPURACINVENTANADEPURADORA10++VENTANADEPURADORs` 7Sm VENTANADEPURADORVENTANADEPURADOR(VENTANADEPURADOR nombre)Escribe el rbol (jerarqua de ventanas) comenzando con la ventana especificada con nombre y, por otra parte, listar todas las ventanas y controles.nombre:(PALABRA) Se usa para identificar la ventana raz.creaventana "main "miventana "mititulo 0 0 100 100 []crealistbox "miventana "milista 25 0 50 50creaboton "miventana "midibujo "Dibujar 25 50 50 25 [Escribe "Clic]ld 7SmventanadepuradorWindow miventana Button midibujo ListBox milistaborraventana "miventanaK1+͇+?Modal vs. Modeless Windows_T v7Sm Modal vs. Modeless WindowsLa programacin Windows soporta dos modos, Modal y Modeless. El modo Modal (CREADIALOGO) es similar a un modelo de programacin sin ventanas (la aplicacin tiene el control). Suele emplearse el modo Modal en situaciones parecidas a cuando, en medio de un proceso, el programador, decide pedir informacin al usuario (p.e., con LEELISTA). En ese caso, se detiene el proceso hasta que se adquiere la informacin y el usuario no puede acceder a los otros componentes de la aplicacin. Por ejemplo, desde una ventana Modal se pide al usuario el nombre de un fichero.^?@ N7SmEn el modo Modeless (CREAVENTANA) por el contrario, el usuario tiene el control. Por ejemplo la ventana Trabajo en LOGO es Modeless. MWSLogo mientras tanto est ocioso. La aplicacin procesa un programa cuando el usuario activa un evento (tal como pulsar un botn).Todos los objetos Windows estn disponibles en los modos Modeless y Modal. F1h+S+Ventanas predefinidas"?  7Sm lۀ3:onހ-߀ Ventanas predefinidasMENSAJESINOBOXSELECCIONBOXPREGUNTABOXABREDIALOGOGUARDADIALOGOEDITAFICHERO81Z͇+, MENSAJE" r a7Sm MENSAJEMENSAJE bandera cuerpoDetiene el proceso y despliega una ventana con un mensaje (cuerpo). En la barra de ttulo aparece una etiqueta (bandera). El proceso anterior continua cuando el usuario pulsa el botn ACEPTAR o CANCELAR. bandera:(LISTA) Se usa como etiqueta de la ventana.cuerpo:(LISTA) Texto del mensaje. La ventana se adapta al tamao del mensaje.Ejemplo:mensaje [La bandera] [El cuerpo] = J1S+,JSELECCIONBOX4 p i7Sm SELECCIONBOXeleccin SELECCIONBOX bandera listaopcionesDetiene el proceso y despliega una ventana de mensaje en la que en la barra de ttulo aparece bandera y con las opciones listaopciones. El proceso anterior continua cuando el usuario pulsa botn OK o CANCELAR. Observe que la ventana Trabajo permanece desactivada hasta que se pulse un botn. Una vez que se pulse el botn OK, devuelve el ndice eleccin correspondiente al elemento seleccionado (1 para la opcin 1, 2 para la opcin 2) y si el usuario pulsa el botn CANCELAR, 0.!Jj o7Smeleccin:(ENTERO) Es 0 si el usuario pulsa CANCELAR y 1, 2 para las correspondientes opciones, si pulsa OK.bandera:(LISTA) Se usa como etiqueta de la ventana.listaopciones:(LISTA) Es una lista de opciones.Ejemplo:muestra seleccionbox [Escoja Color] [Rojo Verde Azul]2muestra seleccionbox [Colores] [[Rojo Verde Azul] [Uno de los tres] Ninguno]18G1,,GSINOBOXMl 7Sm SINOBOXsiono SINOBOX bandera cuerpoDetiene el proceso y despliega una ventana con un mensaje (cuerpo). En la barra de ttulo aparece bandera. El proceso anterior continua cuando el usuario pulsa uno de los botones SI, NO o CANCELAR. Observe que la ventana Trabajo permanece desactivada hasta que se pulse un botn. Una vez que se pulse un botn, devuelve VERDADERO (SI) o FALSO (NO).siono:(BOOLEANO) Es VERDADERO si se pulsa SI; FALSO, si se pulsa NO.#GU x7Smbandera:(LISTA) Se usa como etiqueta de la ventana. cuerpo:(LISTA) Texto del mensaje. La ventana se adapta al tamao del mensaje.Ejemplo:muestra sinobox [Pregunta] [Te gusta Logo?]verdadero< 1, , PREGUNTABOX# r G7Sm PREGUNTABOXdatos PREGUNTABOX bandera cuerpoDetiene el proceso y despliega una ventana con un mensaje (cuerpo). En la barra de ttulo aparece bandera. El proceso anterior continua cuando el usuario pulsa uno de los botones SI o CANCELAR. Observe que la ventana Trabajo permanece desactivada hasta que se pulse un botn. Una vez que se pulse el botn OK, devuelve en datos la respuesta del usuario.datos:(LISTA) Es una lista que contiene la respuesta del usuario. Devuelve una lista vaca si el usuario puls CANCELAR.. U x7Smbandera:(LISTA) Se usa como etiqueta de la ventana. cuerpo:(LISTA) Texto del mensaje. La ventana se adapta al tamao del mensaje.Ejemplo:muestra preguntabox [Pregunta] [ Te gusta Logo?][S, me gusta.]<  1,, @ABREDIALOGO# V z7Sm ABREDIALOGOruta ABREDIALOGO nombreficheroDespliega la ventana de dilogo "Abrir". No abre un archivo sino que deja que el usuario seleccione el fichero deseado usando la Interfaz Grfica de Usuario (GUI). El argumento nombrefichero se usa como opcin por omisin del nombre, directorio y extensin del fichero. Devuelve el nombre de fichero seleccionado por el usuario. En caso que el usuario cancele la seleccin, devuelve una lista vaca ([]). @Z 7Smruta:(LISTA) Ruta del fichero (incluyendo drive y directorio).nombrefichero:(PALABRA) Especifica el directorio por omisin, nombre de fich@ ero y/o extensin. (Se permite "*" como nombre de fichero o extensin).Ejemplo:muestra abredialogo "c:\\mwslogo\\examples\\*.me[c:\logo\examples\read.me]> 8A1K ,],8AEEGUARDADIALOGO0@hCV z7Sm GUARDADIALOGOruta GUARDADIALOGO nombreficheroDespliega la ventana de dilogo "Guardar como". No guarda un fichero sino que deja que el usuario seleccione el fichero deseado usando la Interfaz Grfica de Usuario (GUI). El argumento nombrefichero se usa como opcin por omisin del nombre, directorio y extensin del fichero. Devuelve el nombre de fichero seleccionado por el usuario. En caso que el usuario cancele la seleccin, devuelve una lista vaca ([]).8AEEZ 7Smruta:(LISTA) Ruta del fichero (incluyendo drive y directorio).nombrefichero:(PALABRA) Especifica el directorio por omisin, nombre de fichero y/o extensin . (Se permite "*" como nombre de fichero o extensin).Ejemplo:muestra guardadialogo "c:\\mswlogo\\examples\\*.me [c:\logo\examples\read.me]= hCE1,P, EGEDITAFICHEROeEEGr 7Sm EDITAFICHEROEDITAFICHERO nombrefichero callbackEdita el fichero especificado por nombrefichero en el Editor por defecto. Cuando el usuario sale del Editor se ejecuta el contenido de callback.nombrefichero:(PALABRA) Especifica qu fichero se quiere editar.callback:(LISTA) Es una lista de rdenes ( nombres de primitivas o procedimientos ) que se ejecutarn cuando el usuario salga del Editor.Ejemplo:editafichero abredialogo "c:\\mwslogo\\examples\\*.me [Escribe "Hecho]CE*H17],, *HOEjemplos: Windows)GSJT v7Sm Ejemplospara win; Un ejemplo de ventana modelesscreaventana "root "d1 [Dibujar Pictures] 0 0 150 110 [] configurar ;Crea main window; Un ejemplo de ventana modal ; creadialogo "root "d1 [Dibujar Pictures] 0 0 150 110 [configurar] ;Crea main windowfinpara configurarcreaestatico "d1 "st4 [Seleccione figura] 5 10 50 10 crealistbox "d1 "l1 5 25 80 40 aadecadenalistbox "l1 "CUADRADOaadecadenalistbox "l1 "TRINGULOaadecadenalistbox "l1 "HEXGONO*HoLI `7Smcreaestatico "d1 "st11 [Rojo] 100 10 40 10 creabarradesplazamiento "d1 "s1 100 25 10 50 [mirojo] ponbarradesplazamiento "s1 1 255 125 mirojo creaboton "d1 "b1 "FIN 5 80 40 10 [mifin] creaboton "d1 "b3 "BORRAR 55 80 35 10 [bp] creaboton "d1 "b2 "DIBUJAR 100 80 35 10 [dibujando] fin; ejecuta esta rutina cuando se pulsa el botn DIBUJAR.para dibujandoponcolorlapiz (lista leebarradesplazamiento "s1 0 0) ; Dibuja la figura elegida en el control listboxSJNK d7Smsi iguales? [HEXGONO] leeseleccionlistbox "l1 [repite 6 [av 100 gd 60]]si iguales? [CUADRADO] leeseleccionlistbox "l1 [repite 4 [av 100 gd 90]]si iguales? [TRINGULO] leeseleccionlistbox "l1 [repite 3 [av 100 gd 120]]fin; ejecuta la rutina cuando se pulsa el botn FIN para mifin; Para un ejemplo modeless use:borraventana "d1; Para un ejemplo modal use:; borradialogo "d1fin; ejecuta esta rutina cuando se ajusta la barra de desplazamiento ROJO UoLO? N7Smpara mirojoactualizaestatico "st11 frase [Rojo] leebarradesplazamiento "s1 fin DNbO1P,- bO FUNCIONES DE BITMAP~1O M jb7Sm 㢈FUNCIONES DE BITMAPPRIMITIVAS DE BITMAPbO OEbOQ1,)- Q݂PRIMITIVAS DE BITMAP7  37Sm zo`Y;P|րX_a:9*-㈏`8sX`t`V`ҼAٵPRIMITIVAS DE BITMAPCORTAAREACOPIAAREAPEGAPEGAENINDICEAJUSTAPONINDICEBITINDICEIMAGENPONMODOBITMODOBITMAP?RECTANGULORRELLENOCARGADIBGUARDADIBTAMAODIBUJOCARGAGIFGUARDAGIFTAMAOGIFPONAREAACTIVAUQ݂E Z 7Sm݀AREAACTIVA: 1-- CORTAAREA@݂W ހq7Sm :9Y;_aCORTAAREACORTAAREA anchura altura"Corta" una porcin de la imagen y la guarda en la memoria de Logo (en el Portapapeles, si el ndice de INDICEIMAGEN es 0). Luego puede "pegar" esa porcin en cualquier parte con PEGA. LOGO cortar desde la posicin de la tortuga el tamao indicado por los argumentos anchura y altura. Vea tambin PONINDICEBIT.anchura:(ENTERO) Especifica la anchura del bitmap a cortar.BB R7Smaltura:(ENTERO) Especifica la altura del bitmap a cortar.Nota: Se puede pensar que estas funciones parten de una anchura y altura de un pixel, pero no es as. Si dibuja un cuadrado con "repite 4[ av 2 gd 90]" cuntos pixeles tiene de altura? No tiene 2 pixeles, sino 3. La razn de ello es complicada, pero para abreviar, el modo de dibujar de Logo es como si tuviera una lnea imaginaria bajo el centro de cada pixel. Si se corta un pixel, entonces se ilumina. La distancia del centro de los pixeles hacia el lado izquierdo o el derecho del cuadrado es la distancia correcta (2 pixeles). Pero tenemos que volver al pixel del que se parte. Logo vuelve a ello cuando muestra la lnea y aade 1/ 2 pixel a cada lado y dibuja un cuadrado de 3x3 pixeles. WM h7SmEjemplo:pongrosor [2 2]repite 72 [repite 4 [av 100 gd 90] poncolorlapiz (lista cuentarepite*3 0 0) gd 5]slponxy -50 -50cortaarea 100 100bpblrepite 36 [av 150 pega re 150 gd 10]: ߉1)-" -߉.COPIAAREAG& Ԁ7Sm :9Y;COPIAAREACOPIAAREA anchura altura"Copia" una porcin de la imagen y la guarda en la memoria Logo (en el Portapapeles, si INDICEIMAGEN es 0). Luego puede "pegar" la imagen con PEGA en cualquier lugar. LOGO copiar desde la posicin de la tortuga el tamao indicado por los argumentos anchura y altura. anchura:(ENTERO) Especifica la anchura del bitmap a copiar.altura:(ENTERO) Especifica la altura del bitmap a copiar.߉.J b}7SmEjemplo:pongrosor [2 2]repite 72 [repite 4 [av 100 gd 90] poncolorlapiz (lista cuentarepite*3 0 0) gd 5]slponxy -50 -50copiaarea 100 100bpblrepite 36 [av 150 pega re 150 gd 10]= &k1--kPEGAENINDICE. ؀%7Sm z_a*-PEGAENINDICEPEGAENINDICE ndice x y"Pega" a partir de las coordenadas x, y del bitmap identificado con el argumento ndice, la imagen que se "cort" con CORTAAREA dentro del ndice actual (o que est en el Portapapeles si el ndice es 0). Vea tambin PONINDICEBIT y PONMODOBIT. Esta primitiva se utiliza en las animaciones. Por ejemplo, para una pelota rodando, si borra la pelota y vuelve a dibujarla en la nueva posicin, el problema es que el usuario ver ambos pasos, lo que produce un parpak.deo. Con esta primitiva se evita ese parpadeo, ya que aumenta considerablemente la velocidad, al estar las imgenes en memoria.&kc 7Smndice:(ENTERO) Especifica el bitmap que quiere pegar.x:(ENTERO) Especifica la coordenada x.y:(ENTERO) Especifica la coordenada y.Ejemplo:; Dibuja un bloque rojo de 100x100 en el Buffer 1 de Bitmaps ponindicebit 1poncolorrelleno [255 0 0]rectangulorrelleno 100 100copiaarea 100 100; Dibuja un bloque verde de 50x50 en el Buffer 2 de Bitmaps bpponindicebit 2poncolorrelleno [0 255 0]rectangulorrelleno 50 50copiaarea 50 50:I `7Sm; Reserva un espacio de 100x100 en el Buffer 3 de Bitmaps bpponindicebit 3copiaarea 100 100; Copia 1 en 3ponindicebit 1pegaenindice 3 0 0; Copia 2 en 3ponindicebit 2pegaenindice 3 25 25; Pega 3 en la Pantallaponindicebit 3pega5#1" --#PEGA@ ̀=7Sm z:9_a*-PEGAPEGA"Pega" la imagen que se cort "con CORTAAREA (o que est en el Portapapeles si INDICEIMAGEN es 0). LOGO siempre "pega" en la posicin de la tortuga, la esquina inferior izquierda de la imagen. Vea tambin PONINDICEBIT y PONMODOBIT.Ejemplo:pongrosor [2 2]repite 72 [repite 4 [av 100 gd 90] poncolorlapiz (lista cuentarepite*3 0 0) gd 5]slponxy -50 -50cortaarea 100 100k-#> LZ7Smbpblrepite 36 [av 150 pega re 150 gd 10]7@1--@AJUSTA| ƀG7Sm zo`Y;AJUSTAAJUSTA anchura altura"Ajusta" la actual imagen "cortada" (CORTAAREA) o copiada (COPIAAREA) a las dimensiones especificadas. Ms tarde puede pegar (PEGA) la imagen. LOGO ajustar la imagen cortada con la anchura del primer argumento y la altura del segundo. La imagen original se reemplaza por esta imagen ajustada. anchura:(ENTERO) Especifica la anchura del bitmap a ajustar.?@P n7Smaltura:(ENTERO) Especifica la altura del bitmap a ajustar.Ejemplo:pongrosor [2 2]repite 72 [repite 4 [av 100 gd 90] poncolorlapiz (lista cuentarepite*3 0 0) gd 5]slponxy -50 -50cortaarea 100 100bppegabpAJUSTA 200 100Pega= }1!-E-}aPONINDICEBITq@\ +7Sm :9PONINDICEBITPONINDICEBIT ndicePone el rea cortada de un bitmap en el buffer que indica ndice (rango entre 0 y 1023). Su propsito es guardar en memoria mltiples imgenes preparadas para ser pegadas con rapidez en animaciones. El ndice 0 es el ndice por defecto y usa el PORTAPAPELES como buffer. Esto es; puede "cortar" o copiar una imagen de PAINT y pegarla directamente en MSWLogo y tambin "cortar" una imagen en MSWLogo que estar disponible en PAINT. Use INDICEIMAGEN para obtener el ndice actual.s}aT v?7Smndice:(ENTERO) Especifica el bitmap seleccionado.Ejemplo:ponindicebit 0repite 3 [av 50 gd 120]cortaarea 100 100bpponindicebit 1repite 4 [av 50 gd 90]cortaarea 100 100bpponmodobit 3otrepite 72 [av 50 pega re 50 gd 5]ponindicebit 0repite 72 [av 100 pega re 100 gd 5]= 1x-. INDICEIMAGEN;a j 7Sm _aINDICEIMAGENndice INDICEIMAGENDevuelve el ndice actual del bitmap fijado con PONINDICEBIT.ndice:(ENTERO) El ndice actual seleccionado.Ejemplo:ponindicebit 99muestra indiceimagen99 a; G1E- .GPONMODOBIT0 wY 7Sm ㈏`PONMODOBITPONMODOBIT modoPone el modo de un bitmap segn su argumento. El modo tiene un rango entre 1 y 9. Su propsito es pegar imgenes usando diferentes mtodos. Algunas veces se quiere borrar el fondo y otras, no; o invertir la imagen antes de pegarla , o no hacerlo. Use MODOBITMAP? para obtener el modo actual. Hay 9 mtodos:modo 1: Copia de la memoria a la pantalla.modo 2: Operacin O entre la copia en memoria y el fondo de la pantalla.)GB R7Smmodo 3: Operacin Y entre la copia en memoria y el fondo de la pantalla.modo 4: Operacin XOR entre la copia en memoria y el fondo de la pantalla.modo 5: Operacin Y entre la copia en memoria y el INVERSO del fondo de la pantalla. modo 6: Copia el INVERSO de la imagen en memoria en el fondo de la pantalla.modo 7: Operacin O entre la copia en memoria y el INVERSO del fondo de la pantalla. modo 8: Operacin O entre el INVERSO de la copia en memoria y el fondo de la pantalla.w] 7Smmodo 9: Copia el INVERSO del fondo de la pantallamodo:(ENTERO) Especifica el modo seleccionado.Ejemplo:; Pone la pantalla en blancoponcolorpapel [255 255 255]bpbl; Dibuja un crculo relleno en rojo circulo 50poncolorrelleno [255 0 0]rellenasl; Posicin inferior izquierda del rectnguloponxy -50 -50copiaarea 101 101; Pone la pantalla en amarillo poncolorpapel [255 255 0]bp; Pone el modo 1 para pegar ponmodobit 1pegaB R7Sm; Observe que todava existe el fondo blancobp; Pone el modo 1 para pegar(Y)ponmodobit 3pega; Observe que desaparece el fondo blanco < 1.;.m MODOBITMAP?1m u c7Sm *-MODOBITMAP?modo MODOBITMAP?Devuelve el modo del bitmap puesto con PONMODOBIT.modo:(ENTERO) El modo seleccionado.Ejemplo (guardar y restaurar con modobitmap?):ponmodobit 1haz "guardamodo modobitmap?ponmodobit 8muestra modobitmap?8ponmodobit :guardamodomuestra modobitmap?1C 1$ ..  RECTANGULORRELLENOnm  s 7Sm 'RECTANGULORRELLENORECTANGULORRELLENO anchura alturaDibuja un rectngulo relleno de las dimensiones indicadas en las entradas. El color se selecciona con PONCOLORRELLENO.anchura:(ENTERO) Especifica la anchura del rectngulo.altura:(ENTERO) Especifica la altura del rectngulo.Ejemplo:rectangulorrelleno 200 100rectangulorrelleno 100 2009  1;. .  CARGADIBN  q 7Sm `lt`CARGADIBCARGADIB nombrebitmapCarga el bitmap que se indica en la entrada que debe ser una palabra. Esta primitiva es similar a la opcin Cargar del Men. Vea tambin la primitiva GUARDADIB .nombrebitmap:(PALABRA) Nombre del fichero que contiene el bitmap.Ejemplo:muestra cargadib "c:\\windows\\forest.bmp=  1.g . TAMAODIBUJOp q 7Sm TAMAODIBUJOtamao TAMAODIBUJO nombrebitmapDevuelve el tamao del bitmap que se especifica en la entrada que debe ser una palabra.tamao:(LISTA) de 2 enteros [Anchura Altura].nombrebitmap:(PALABRA) Nombre del fichero que contiene el bitmap del que se quiere conocer su tamao.Ejemplo:muestra tamaodibujo "c:\\windows\\forest.bmp[256 256]: 1 ./.DGUARDADIB>+Bk +B7Sm sX`݀GUARDADIBGUARDADIB nombrebitmap(GUARDADIB nombrebitmap maxcolordepth)Guarda como un bitmap su trabajo en el disco de la computadora. RECUERDE que si gener su imagen con LOGO, no necesita guardarla como una imagen a menos que quiere usar la imagen en otra aplicacin, como Paint u otra aplicacin. Su nica entrada debe ser una palabra que indica el nombre del fichero que quiere guardar. Vea tambin las primitivas CARGADIB y AREAACTIVA.HDO l7SmEl formato del fichero guardado es .BMP (Microsoft Windows Bitmap), compatible con aplicaciones de dibujo, como PAINT. Observe que estos ficheros pueden ser de gran tamao y, por tanto, puede llevar un tiempo su lectura o escritura.nombrebitmap:(PALABRA) Nombre del fichero a guardar.maxcolordepth:(ENTERO) Mximo de colores: Bits por Pixel (1 = 2 colores, 4 = 16 colores, 8 = 256 colores, 24 = 16.7 millones de colores). Por defecto, 24.Ejemplo:a+BDC V7Smrepite 72 [repite 4 [av 100 gd 90] gd 5]guardadib "mifichero.bmpbpcargadib "mifichero.bmp9HD%E1g ..%EFCARGAGIFTDFm 7Sm AٵCARGAGIFCARGAGIF nombrebitmapCarga un fichero que contiene una imagen GIF. La entrada que debe ser una palabra especifica el nombre del fichero. Vea tambin GUARDAGIF.nombrebitmap:(PALABRA) Nombre del fichero .GIF que se quiere cargar.(No funciona en la versin de 16 bits)Ejemplo:muestra cargagif "mifichero.gif: %E G1V/. . G 1 ./PONAREAACTIVAOu 7Sm ѕ݀PONAREAACTIVAPONAREAACTIVA reaEs similar a REA ACTIVA del Men. Pone el rea activa para imprimir y guardar Bitmaps. Vea tambin AREAACTIVA.rea:(LISTA) de 4 enteros [XBajo YBajo XAlto YAlto].Ejemplo:rectangulorrelleno 100 100ponareaactiva [0 0 50 50]guardadib "mifichero.bmpbpcargadib "mifichero.bmp; 1D/~/eAREAACTIVAje ̀7Sm AREAACTIVArea AREAACTIVADevuelve el rea activa que se puso con PONAREAACTIVA.rea:(LISTA) de 4 enteros [XBajo YBajo XAlto YAlto].Ejemplo:ponareaactiva [-10 -10 10 10]muestra areaactiva[-10 -10 10 10]A1/0Gestin de redeseE Xm7Sm GESTIN DE REDESLa gestin de redes permite a MSWLogo comunicarse con el resto del mundo. MSWLogo tan slo utiliza una forma, conocida como sockets TCP/IP (lo que primordialmente se utiliza para construir en Internet). MSWLogo puede recibir informacin de otros ordenadores o mandarla a otros tantos. El otro ordenador no necesita tener abierto el MSWLogo, aunque esto ser posible. Cuando usted desee que MSWLogo inicie una conexin, use los comandos NETCONNECTxxx. Cuando desee que MSWLogo acepte una conexin use los NETACCEPTxxx. Puede enviar y recibir informacin con cualquiera de las 2 conexiones. Como mximo, puede tener 2 conexiones, una que usted inici y otra que acept.&> J7SmMSWLogo sobreentiende que el protocolo TCP/IP est disponible, a travs de lo que se conoce como WINSOCK.DLL (16 bit MSWLogo) o WSOCK32.DLL (32 bit MSWLogo). Microsoft le ofrece gratis el protocolo TCP/IP para Windows 3.11. Microsoft incluye el protocolo TCP/IP en el Windows 95 y Winedows NT. Pero tiene que ser explcitamente instalado y configurado en todas las plataformas. Hay adems un dominio pblico TCP/IP conocido como TRUMPET que puede ser utilizado para el Windows 3.1.=A P7SmTCP/IP puede trabajar con una amplia variedad de recursos como modems (PPP), cables LapLinketc. CompuServe, Microsoft Network, America Online y proveedores de servicio de internet privados (ISP) ofrecen acceso TCP/IP al resto del mundo. Esto quiere decir que su amigo puede estar en la costa oeste y usted en la costa este y ambos activar el MSWLogo y dibujar en la pantalla del otro, o construir juegos en los que los dos pueden participar. Siempre y cuando usted y su amigo logren encontrarse., fY7Smc[tz1:P=戀 l?D5OUINICIAREDFINREDSIREDNOREDLEEREDESCRIBEREDPONREDQUITAREDENVIAVALORREDLEEVALORREDHerramientas (fuera de MSWLogo):DNS (Domain Name Service ): DNS es una parte integral de la utilizacin de los protocolos TCP/IP. TCP/IP en si mismo slo entiende direcciones de mquinas, que suelen tener este aspecto ms o menos: 21.100.200.5 (fjese que cada campo de nmeros debe ser inferior a 255). Pero los nmeros no tienen significado y son difciles de memorizar para nosotros los humanos, as es que a las mquinas se les asigna nombres. DNS son bsicamente mquinas que mantienen ficheros de datos de estos mapas de nombres a nmeros. Las mquinas DNS hablan entre si para intercambiar informacin. MSWLogo usa nombres DNS cuando intenta hacer una conexin.d&l> JM 7Sm PING: se utiliza como un sencillo test de conectividad . La mayora de las implementaciones TCP/IP incluyen un programa PING. Para utilizarlo, simplemente introduzca un PING remotenode donde remotenode es la maquina cuya conectividad usted desea comprobar. PING le dir si puede alcanzar a esa mquina, y si es as, cuanto tiempo tardar. Hasta que PING funcione no se moleste en probar otro software basado en TCP/IP (incluyendo los comandos MSWlogo Network). PING aceptar ambas formas de direccin (el nmero o el nombre). Si PING falla con el nombre, entonces pruebe con el nmero (si lo sabe). Si el nmero funciona pero no lo hace el nombre, normalmente indica un problema con el DNS. No DNS: si no hay servidor DNS, puede utilizar lo que se conoce como ficheros HOSTS ; normalmente ubicado en C:\Windows). Microsoft frecuentemente instala una muestra del fichero HOST llamada HOSTS.SAM (copie HOSTS.SAM a HOSTS. y edtelo). Es simplemente una base de datos para mapear las direcciones de nombres a nmeros. Si est utilizando un fichero HOSTS, entonces cada mquina de la red debera utilizar una copia del mismo fichero HOSTS con el nombre para mapear todas las mquinas de la red. Usted puede tener ambos ficheros DNS y HOSTS, normalmente el fichero HOSTS se comprueba antes de intentar el DNS.+> J7SmSockets y Servicios: Los Servicios son a los Sockets lo que DNS a las direcciones de la red. Los Servicios mapean Nombres de servicio como (TELNET, FTP, POPMAIL). Puede encontrar un fichero SERVICES en C:\Windows y puede examinarlo si desea. MSWLogo no acepta el nombre del servicio a nmero de puerto de Socket, slo usa el nmero de puertos Socket. Pero si desea conectarse a un servicio como TELNET o actuar como servidor TELNET, entonces simplemente bsquelo en el fichero Services. Por lo general, los nmeros Socket por debajo de 5000 se reservan para cosas como TELNET y FTP. Es mejor usar nmeros Socket por encima del 5000. jlC T 7Sm Redes: si tiene una red privada bajo su control total, puede hacer lo que quiera. Si todo son PCs Windows, entonces probablemente tendr que pa+esar sin un servidor DNS (y utilizar un fichero HOSTS). Generalmente los servidores DNS son mquinas UNIX. Si parte de una red ms grande, debera contactar con su administrador de red. Si ya est utilizando Netware es normalmente posible activar ambos TCP/IP y Netware al mismo tiempo (en efecto, es fcil con el Windows95)Proveedores de Servicio: algunos proveedores de servicio no le dan un nombre y asignan su nmero de direccin de golpe. No estoy seguro de cmo trabajar con estos sistemas. Algunos proveedores de servicio envuelven completamente nuestro acceso a la red con una aplicacin que proporciona todos los servicios que necesitamos. Y puede que no ofrezcan acceso al Winsock. Cuando pida ayuda a un proveedor de servicios, dgale que quiere poner en marcha algo como el Netscape. Si Netscape funciona, entonces MSWLogo tambin debera funcionar. El que te permita recibir informacin es ya ms complicado, la otra aplicacin necesita ser capaz de encontrarle a usted por su nombre o, al menos, por una nmero direccin si estn utilizando un fichero HOSTS. Si sabe su nombre de mquina pero no sabe su direccin, puede usar el PING para conseguirla, simplemente PING el nombre de su mquina y le dar su direccin: +1~/0 INICIARED?]V z7Sm INICIAREDINICIARED(INICIARED synchronous_dns)Permite la gestin de redes en MSWLogo. Puede llamar a esta primitiva con la bandera SYNCHRONOUS_DNS a 0 (Asincrnico por defecto) o 1 (sncrono). Es ms seguro usar DNS asncrono (es menos probable que se cuelgue MSWLogo), pero existen otros problemas con esa bandera. Si surge un error "Host not Found" pruebe a poner la bandera a 1, si estaba a cero.synchronous_dns:(ENTERO) 1 para Sncrono, 0 para Asncrono (por defecto).bC V>7SmEjemplo:INICIAREDFINRED7]10Z0!FINREDRI b7Sm FINREDFinaliza la gestin de redes en MSWLogo.Ejemplo:INICIAREDFINRED61s00"@SIREDP  7Sm =戀:P l?SIREDSIREDstatus SIRED socket sendready receivereadyAcepta una conexin. Para obtener los datos recibidos llame a ESCRIBERED en el cdigo a incluir en receiveready. Para desconectar llame a NORED. Cuando los datos estn disponibles se ejecutar el cdigo receiveready. Cuando enve datos con ENVIAVALORRED puede que no sea posible enviar. Si esto sucede, debe esperar hasta que se ejecute el cdigo sendready antes de tratar de enviar los datos de nuevo. %u [ 7Smstatus:(BOOLEANO): Indica si la operacin ha tenido xito.socket:(ENTERO) Es un nmero que identifica el socket.sendready:(LISTA) Es una lista de ordenes de Logo (primitivas o procedimientos) a ejecutar cuando los datos estn listos para ser enviados de nuevo.receiveready:(LISTA) Es una lista de rdenes de Logo (primitivas o procedimientos) a ejecutar cuando los datos estn disponibles. Se llamar a SENDREADY en el siguiente orden por:4P U x7Sm1: Successfully Issued Accept2: Accepted Connection3: Listo para enviar4: Listo para enviar (despus de enviar un error)5: Listo para enviar (despus de enviar un error)...n: Listo para enviar (despus de enviar un error)Se llamar a RECEIVEREADY en el siguiente orden por: 1: Datos actuales recibidos2: Datos actuales recibidos...n: Datos actuales recibidosEjemplo:iniciaredmuestra sired 5124 [escribe [listo para enviar]] [escribe [listo para recibir]][u @A R47Smverdaderonoredfinr@ed6F@1PZ0€0#F@`ANORED@`AX ~7Sm NOREDNOREDDesactiva la aceptacin a conexiones entrantes.Ejemplo:iniciared muestra sired 5124 [escribe [listo para enviar]] [escribe [listo para recibir]]verdaderonoredfinred7F@A100$AELEEREDB`AC| ƀ7Sm tz1LEEREDsent LEERED datosEnva los datos. Cuando enve los datos, esta primitiva puede devolver Falso (significa que no estn listo para enviar). Si sucede esto debe esperar hasta que se ejecute el cdigo sendready de SIRED y entonces enve los datos de nuevo.sent:(BOOLEANO): Indica si la operacin tuvo xito.datos:(LISTA) Es el valor de los datos que quiere enviar a la red.Ejemplo:(el emisor enva datos al receptor)iAE .7Sminiciared muestra sired 5124 [escribe [Ok to Send Again]] []verdaderomuestra ponred "MyMachineName 5124 [] [escribe leered]verdaderoespera 100 Ok to Send AgainOk to Send AgainOk to Send Againmuestra enviavalorred [Quin me llama?] ; Enva algunos datosverdaderoespera 100 Quin me llama?quitarednoredfinred; C-F1€00%-FIESCRIBERED$EQHq g7Sm tz1ESCRIBEREDdatos ESCRIBEREDDevuelve el valor de los datos recibidos. Es mejor llamar a este procedimiento en el cdigo incluido en la primitiva SIRED.datos:(LISTA) Es el valor de los datos recibidos en la red.Ejemplo:(El emisor enva datos al receptor)iniciared ; comienza una sesin en la redmuestra sired 5124 [] [escribe leered]verdaderomuestra ponred "MyMachineName 5124 [escribe [Ok to Send Again]] []-FI 7Smverdaderoespera 100 Ok to Send AgainOk to Send AgainOk to Send Againmuestra leered [Hola, gracias por recibir mi llamada] ; Enva algunos datosverdaderoespera 100 Hola, gracias por recibir mi llamadaquitarednoredfinred7QH,J101&,JɁPONREDrIL 7Sm UD5OPONREDstatus PONRED machinename socket sendready receivereadyComienza una conexin. Para terminar la conexin llame a QUITARED . Para obtener los datos recibidos llame a LEEVALORRED en el cdigo de receiveready. Cuando enve los datos con ENVIAVALORRED puede devolver falso (significa que no est preparado para enviar). Si sucede esto, debe esperar hasta que se ejecute el cdigo incluido en sendready antes de tratar de enviar de nuevo.,JN` 7Sm status:(BOOLEAN): Indica si la operacin se realiz con xito.machinename:(LISTA) Es un host TCP/IP o un fichero Hosts.socket:(ENTERO) Es un nmero usado para identificar el socket.sendready:(LISTA) Es una lista de primitivas o procedimientos Logo a ejecutar cuando los datos estn listos para ser enviados de nuevo.receiveready:(LISTA) Es una lista de primitivas o procedimientos a ejecutar cuando los datos estn disponibles.1LV z7SmSe llamar a SENDREADY en el siguiente orden por: 1:Conexin emitida con xito2: Conexin hecha3: Listo para enviar4: Listo para enviar (despus de enviar un error)5: Listo para enviar (despus de enviar un error)...n: Listo pNIara enviar (despus de enviar un error)Se llamar a RECEIVEREADY en el siguiente orden por: 1: Datos actuales recibidos2: Datos actuales recibidos...n: Datos actuales recibidosEjemplo:iniciared ; Inicia una sesin en la redNɁF Z7Smmuestra ponred "remotemachinename 5124 [escribe [listo para enviar de nuevo]] [escribe [I have something]]verdaderoquitaredfinred91~0v1'GQUITAREDEɁGX ~7Sm QUITAREDQUITAREDDesactiva el envo de datos.Ejemplo:iniciared ; Inicia una sesin en la redmuestra ponred "remotemachinename 5124 [escribe [listo para enviar ahora]] [escribe [I have something]]verdaderoquitaredfinred9111(ZQUITARED@Gv 7Sm ENVIAVALORREDsent QUITARED datosEnva los DATOS. Cuando enva los datos, esta primitiva puede devolver Falso (significa que no est listo para enviar). Si sucede esto debe esperar hasta que se ejecute el cdigo sendready de PONRED y entonces enviar los datos de nuevo.sent:(BOOLEAN): Indica si la operacin tuvo xito.datos:(LISTA) Es el valor de los datos que quiere enviar a la red.Ejemplo:(El emisor enva datos al receptor )D (/7Sminiciared ; Inicia una sesin en la redmuestra sired 5124 [] [escribe leered]verdaderomuestra ponred "MyMachineName 5124 [escribe [Ok to Send Again]] []verdaderoespera 100 Ok to Send AgainOk to Send AgainOk to Send Againmuestra enviavalorred [Hola, gracias por recibir mi llamada] ; Enva algunos datosverdaderoespera 100 Hola, gracias por recibir mi llamadaVZ> L07SmQuitarednoredfinred< 1v11)PLEEVALORRED6Z̊w 7Sm tz1LEEVALORREDdatos LEEVALORREDDevuelve el valor de los ltimos datos recibidos. Es mejor llamar a este procedimiento en el cdigo incluido en receiveready de SIRED.datos:(LISTA) Es el valor de los datos recibidos.Ejemplo:( El emisor enva datos al receptor )iniciared ; Inicia una sesin en la redmuestra sired 5124 [escribe [Ok to Send Again]] []verdaderomuestra ponred "MyMachineName 5124 [] [escribe leevalorred]P 7Smverdaderoespera 100 Ok to Send AgainOk to Send AgainOk to Send Againmuestra enviavalorred [Quin me llama?] ; Enva algunos datosverdaderoespera 100 Quin me llama?quitarednoredfinredH̊1;11*MULTI MEDIA/MIDI/SONIDO|Pw 7Sm X㒻\梀$MULTIMEDIA/MIDI/SONIDOPRIMITIVAS MIDIPRIMITIVAS SONIDO WAVEPRIMITIVAS SONIDOPRIMITIVAS MULTIMEDIA @ˍ1e11+ˍPRIMITIVAS MIDI% 7Sm /f׀sCj܀t.\VCo^gVPRIMITIVAS MIDI ABREMIDICIERRAMIDIMENSAJEMIDITABLA MIDICONTROL MIDIGLOSARIO MIDIINSTRUMENTOS MIDI9ˍ)1Y111,)ABREMIDI4l i7Sm ABREMIDIdevice ABREMIDIdevice (ABREMIDI id)Abre el dispositivo MIDI mediante un controlador. )Con la primera forma (sin argumentos) se intenta usar el MIDI-MAPPER. La segunda forma (con el argumento id) permite elegir cualquier controlador disponible en su sistema. ABREMIDI devuelve el nombre del controlador.device:(LISTA) El nombre del controlador, si la operacin tuvo xito.id:(ENTERO) Es un ndice que especifica qu controlador del dispositivo MIDI quiere abrir. Cuando no se selecciona ninguno, el controlador ser MIDI MAPPER.[)0f 7Smj܀sCEl dispositivo MIDI genera sonido en su tarjeta de sonido. Debe tener instalados los controladores apropiados para que la tarjeta de sonido pueda funcionar.Las PRIMITIVAS MIDI en MSWLogo no utilizan ficheros MIDI (.MID o .MDI); en cambio, directamente envan una serie mensajes al dispositivo MIDI. Puede manipular (play) ficheros MIDI usando MCI. MSWLogo no es un secuenciador MIDI.Slo est disponible en Windows 3.1 y compatibles. Vea tambin MENSAJEMIDI y CIERRAMIDI.<P px7SmEjemplo:ESCRIBE ABREMIDI[MIDI Mapper]CIERRAMIDI; 01,11-CIERRAMIDIe 7Sm /f׀CIERRAMIDICIERRAMIDICierra el dispositivo MIDI. Vea tambin ABREMIDI.Ejemplo:ESCRIBE ABREMIDI[MIDI Mapper]CIERRAMIDI< $1t11a1.$\MENSAJEMIDI~ ʀ!7Sm /f׀MENSAJEMIDIMENSAJEMIDI mensajeLa entrada debe ser una lista. Requiere que previamente haya llamado a ABREMIDImensaje:(LISTA) Un mensaje MIDI con una de las 3 formas: larga, corta y sistema exclusivo.Forma corta:[estado datos1 datos2]La forma corta es la comn, con una lista con 3 enteros. El primer entero es el byte de estado que est seguido por dos bytes de datos.estado:(ENTERO) En la terminologa MIDI es el " byte de estado " pero en la tabla siguiente aparece como "cdigo de orden".}$/ 7Smdatos1:(ENTERO) Byte de datos 1 del "cdigo de orden" MIDI.datos2:(ENTERO) Byte de datos 2 del "cdigo de orden" MIDI.Forma larga: [estado datos1 datos2 estado datos1 datos2 ...]La forma larga es similar a la corta, pero la lista de enteros contiene mensajes cortosSistema exclusivo:[240 datos1 datos2 datos3 datos4 ...]El SISTEMA EXCLUSIVO lleva como byte de estado 240 (F0 hexadecimal) al que puede seguir cualquier cantidad de bytes de datos.-\ ЀY7Smt. datos1:(ENTERO) El primer byte de datos especifica el dispositivo Midi.datos2:(ENTERO) El primer byte de datos especifica el dispositivo Midi y as sucesivamente.Vea la TABLA MIDI.Para ms informacin:MIDI BASICS por Akira Otsuka y Akihiko Nakajima.Ejemplo:ESCRIBE ABREMIDI[MIDI Mapper]MENSAJEMIDI (LISTA 192+13 56 0 192+13 56 0)MENSAJEMIDI (LISTA 144+13 100 100)CIERRAMIDI ; /1%1^2/aTABLA MIDIO\@ P7Sm TABLA MIDIK~#̀ %  % (F%&% p% NOMBRE ORDENCDIGO DE ORDENBYTE DE DATOS 1BYTE DE DATOS 2l c#   ?#Ҁ~  " "8 "X Note Off128 + Canal0-127 Pitch0-127 Velocity>#Ҁ| \  " "6 "V Note On144 + Canal0-127 Pitch0-127 VelocityBi#Ҁ  "  "@ "` Poly Presin160 + Canal0-127 Pitch0-127 PresinI9#ހ  "$ .D\ "v Control Change176 + Canal0-127 Control midi0-127 MSBBi~#̀  "& "F l Programa Change192 + Canal0-127 ProgramaNo usado?9~#̀~  "" "B f Canal Presin208 + Canal0-127 PresinNo usado;r#Ҁv  " "> "Z Pitch Wheel224 + Canal0-127 LSB0-127 MSBH;#Ҁ  ( .6 ^ System Exclusive2400-127 Id CodeCualquier n de bytes,rx#X   ( @ Undefined241No usadoNo usado4;~#̀h  " "0 "L Song Position2420-127 LSB0-127 MSB1={#ƀb   ", J Song Select2430-127 SongNo usado,x#X   ( @ Undefined244No usadoNo usado,=x#X   ( @ Undefined245No usadoNo usado/, x#^    . F Tune Request246No usadoNo usado3 x#f  ( 6 N End of Exclusive247No usadoNo usado/, ~ x#^    . F Timing Clock248No usadoNo usado, " x#X   ( @ Undefined249No usadoNo usado(~  x#P     8 Start250No usadoNo usado+" e x#V   & > Continue251No usadoNo usado'  x#N    6 Stop252No usadoNo usado,e  x#X   ( @ Undefined253No usadoNo usado1 Qx#b  $ 2 J Active Sensing254No usadoNo usado/ x#^    . F System Reset255No usadoNo usadoi#QaF \F7SmVCo^Vea tambin el GLOSARIO MIDI= 1a130CONTROL MIDIQa @@ P"7Sm CONTROL MIDI @aI@# %  % 4F%&%&% 4l%&%&% NOMBRE ORDENCDIGO DE ORDENDATA BYTE 1DATA BYTE 2l @QAc#   ?@B~#̀~  "$ D "b Control Change176 + Canal0 Undefined0-127 MSBFQAB~#̀  "$ D "p Control Change176 + Canal1 Modulation Wheel0-127 MSBGBC~#̀  "$ D "r Control Change176 + Canal2 Breath Controller0-127 MSBABVD~#̀  "$ D "f Control Change176 + Canal3 After Touch0-127 MSBECE~#̀  "$ D "n Control Change176 + Canal4 Foot Controller0-127 MSBEVDE~#̀  "$ D "n Control Change176 + Canal5 Portamento Time0-127 MSB@EF~#̀  "$ D "d Control Change176 + Canal6 Data Entry0-127 MSBAEYG~#̀  "$ D "f Control Change176 + Canal7 Main Volume0-127 MSBBFH~#̀  "$ D "h Control Change176 + Canal8-31 Undefined0-127 MSBGYGH#؀  "$ (D "r Control Change176 + Canal32-63 LSB of 0-310-127 LSBEHI{#ƀ  "$ D j Control Change176 + Canal64 Damper Pedal0:Off 127:OnCHbJ{#ƀ  "$ D f Control Change176 + Canal65 Portamento0:Off 127:OnBIK{#ƀ  "$ D d Control Change176 + Canal66 Sostenuto0:Off 127:OnCbJK{#ƀ  "$ D f Control Change176 + Canal67 Soft Pedal0:Off 127:OnEKL{#ƀ  "$ D j Control Change176 + Canal68-92 Undefined0:Off 127:On?KWM{#ƀ~  "$ D ^ Control Change176 + Canal93 Chorus0:Off 127:On@LN{#ƀ  "$ D ` Control Change176 + Canal94 Celeste0:Off 127:On?WMN{#ƀ~  "$ D ^ Control Change176 + Canal95 Phaser0:Off 127:OnGNO{#ƀ  "$ D n Control Change176 + Canal96 Data Entry + 10:Off 127:OnGN\{#ƀ  "$ D nO\a Control Change176 + Canal97 Data Entry - 10:Off 127:OnFO{#ƀ  "$ D l Control Change176 + Canal98-121 Undefined0:Off 127:OnC\#؀  "$ .D t Control Change176 + Canal122 Local Control0-127<{#ƀx  "$ D n Control Change176 + Canal123 All Notes Off0?U{#ƀ~  "$ D n Control Change176 + Canal124 Omni Mode off0-15; {#ƀv  "$ D l Control Change176 + Canal125 Omni Mode on0?Uń{#ƀ~  "$ D t Control Change176 + Canal126 Mono on/Poly off0? {#ƀ~  "$ D t Control Change176 + Canal127 Poly on/Mono off0m$ńI bH7SmVCo^Vea tambin el GLOSARIO MIDI> *1^231*GLOSARIO MIDIH ^)7Sm GLOSARIO MIDICanal: Un canal es un nmero, entre 0-15, que corresponde a los canales 1-16.Pitch: Un pitch es un nmero, entre 0-127, que corresponde a una nota en el instrumento.Velocidad: Es un nmero, entre 0-127, que indica la rapidez con que se pulsan y liberan las teclas o cuerdas.Presin: Es un nmero entre 0-127 y corresponde con las caractersticas de pulsacin de las teclas.**0' qtH `7SmgVPrograma: Es un nmero, entre 0-127, que se corresponde con el instrumento. Vea la tabla INSTRUMENTOS MIDI.B0.1]3232.INSTRUMENTOS MIDI%Ss e7Sm INSTRUMENTOS MIDIPiano0 -Acoustic Grand Piano1 -Bright Acoustic Piano2 -Electric Grand Piano3 -Honky-tonk Piano4 -Rhodes Piano5 -Chorused Piano6 -Harpsichord7 -ClavinetPercusin cromtica8 -Celesta9 -Glockenspiel10 -Music box11 -Vibraphone12 -Marimba13 -Xylophone14 -Tubular Bells15 -Dulcimerrgano16 -Hammond Organ17 -Percussive Organ18 -Rock Organ19 -Church Organ20 -Reed Organ%.xh {7Sm21 -Accordian22 -Harmonica23 -Tango AccordianGuitarra24 -Acoustic Guitar (nylon)25 -Acoustic Guitar (steel)26 -Electric Guitar (jazz)27 -Electric Guitar (clean)28 -Electric Guitar (muted)29 -Overdriven Guitar30 -Distortion Guitar31 -Guitar HarmonicsBajo32 -Acoustic Bass33 -Electric Bass (finger)34 -Electric Bass (pick)35 -Fretless Bass36 -Slap Bass 137 -Slap Bass 238 -Synth Bass 139 -Synth Bass 2Ss S7SmCuerda40 -Violin41 -Viola42 -Cello43 -Contrabass44 -Tremolo Strings45 -Pizzicato Strings46 -Orchestral Harp47 -TimpaniConjunto48 -String Ensemble 149 -String Ensemble 250 -Synth Strings 151 -Synth Strings 252 -Choir Aahs53 -Voice Oohs54 -Synth Voice55 -Orchestra HitCobre56 -Trumpet57 -Trombone58 -Tuba59 -Muted Trumpet60 -French Horn61 -Brass Section62 -Synth Brass 1+xu m7Sm63 -Synth Brass 2Reed64 -Soprano Sax65 -Alto Sax66 -Tenor Sax67 -Baritone Sax68 -Oboe69 -English Horn70 -Bassoon71 -ClarinetPipe72 -Piccolo73 -Flute74 -Recorder75 -Pan Flute76 -Bottle Blow77 -Shakuhachi78 -Whistle79 -OcarinaSynth Lead80 -Lead 1 (square)81 -Lead 2 (sawtooth)82 -Lead 3 (caliope lead)83 -Lead 4 (chiff lead)84 -Lead 5 (charang)85 -Lead 6 (voice)86 -Lead 7 (fifths)#m m7Sm87 -Lead 8 (brass + lead)Synth Pad88 -Pad 1 (new age)89 -Pad 2 (warm)90 -Pad 3 (polysynth)91 -Pad 4 (choir)92 -Pad 5 (bowed)93 -Pad 6 (metallic)94 -Pad 7 (halo)95 -Pad 8 (sweep)Efectos sintticos96 -FX 1 (rain)97 -FX 2 (soundtrack)98 -FX 3 (crystal)99 -FX 4 (atmosphere)100 -FX 5 (brightness)101 -FX 6 (goblins)102 -FX 7 (echoes)103 -FX 8 (sci-fi)tnicos104 -Sitar105 -Banjo106 -Shamisen|m 7Sm107 -Koto108 -Kalimba109 -Bagpipe110 -Fiddle111 -ShanaiPercusin112 -Tinkle Bell113 -Agogo114 -Steel Drums115 -Woodblock116 -Taiko Drum117 -Melodic Tom118 -Synth Drum119 -Reverse CymbalEfectos de sonidos120 -Guitar Fret Noise121 -Breath Noise122 -Seashore123 -Bird Tweet124 -Telephone Ring125 -Helicopter126 -Applause127 -GunshotG13[33PRIMITIVAS SONIDO WAVEv)M jR7Sm EoEPRIMITIVAS SONIDO WAVESUENAWAVE: 1`2334SUENAWAVE!p c7Sm SUENAWAVESUENAWAVE wavfile banderasWavfile debe ser un fichero .WAV. Banderas describe cmo quiere or el sonido. Estas posibilidades tambin existen con MCI pero con un control ms fino. Esta primitiva no requiere una tarjeta de sonido. Est disponible un controlador pblico de Microsoft, SPEAKER(.EXE, .DRV, .ZIP ?) que emula las capacidades de los ficheros.wavefile(LISTA): Nombre del fichero .WAV.P nk7Smbanderas(ENTERO):0= Sncrono; vuelve cuando termina.1= Asncronos; vuelve inmediatamente mientras continua el sonido.2= No usa el sonido por defecto, si el especificado no se puede hallar.4= Sonido en memoria (no soportado).8= Contina el sonido hasta que se llame a otra orden de sonido.16= No detiene un sonido existente.Nota: se puede combinar las banderasEjemplo:suenawave "c:\\windows\\tada.wav 1+8suenawave [] 0B61[3356PRIMITIVAS SONIDO<g x7Sm 㖈}[HPRIMITIVAS SONIDOSONIDOONAPAGASONIDOTONO961E336SONIDOON W |k7Sm }SONIDOONSONIDOON frecuencia(Procedimiento de la librera)La entrada es la frecuencia del sonido que quiere or. El sonido permanece hasta que se llame a APAGASONIDO.< Z1F3^37ZdAPAGASONIDO d^ Y7Sm 㖈APAGASONIDOAPAGASONIDO(Procedimiento de la librera)Apaga el sonido emitido con SONIDOON.Precaucin: No trabaja en NT.Ejemplo:sonidoon 1000apagasonido5Z1w348TONOdi 7Sm TONOTONO tonostreamLa entrada debe ser una lista de pares. Cada par especifica la frecuencia (en hertzios) y la duracin. tonostream:(LISTA) Una lista con los pares frecuencia y duracin (enteros) [frecuencia duracin frecuencia duracin ..d.].Ejemplo:tono [1000 200]Ejemplo:haz "zing []repite 50 [haz "zing pu cuentarepite*10 :zing haz "zing pu 100 :zing]tono :zingF1^3"49OPRIMITIVAS MULTIMEDIAo"OM jD7Sm PRIMITIVAS MULTIMEDIAMCI4144:eMCIgOo 7Sm MCIestado MCI mci-orden-listaestado (MCI mci-orden-lista callback)La entrada mci-orden-lista debe ser una lista. La primitiva MCI puede o no devolver una lista, dependiendo de la forma MCI que emplee. La interfaz MCI es muy potente. Permite que Logo controle cualquier dispositivo Windows MultiMEDIA que incluya tarjetas de sonido, CD-ROM, VIDEOS y ms. En la segunda forma si mci-orden-lista "notifica" la opcin entonces se ejecutar un programa cuando se complete la orden.[E\ 7SmLa primitiva MCI permite al programador de Logo, escribe procedimientos para manipular el dispositivo MultiMedia. Ahora puede unir sonidos a los pasos de un dibujo. Puede preguntar al usuario con su voz propia.estado:(LISTA).mci-orden-lista:(LISTA) callback:(LISTA) Es una lista de primitivas o procedimientos Logo a ejecutar cuando se complete la primitiva MCI, si usa "notifica" en lugar de "espera".Ejemplo:para tonoitescribe mci [open c:\\windows\\tada.wav type waveaudio alias wa1] eG \7Smescribe mci [open c:\\windows\\ding.wav type waveaudio alias wa2]mci [seek wa1 to start]mci [play wa1 wait]repite 2~ [~ mci [seek wa2 to start]~ mci [play wa2 wait]~ ]mci [close wa1]mci [close wa2]fin7E1"4; REDEF?we  Ѐ7Sm @q,8 REDEF?REDEF?Si su valor es VERDADERO, podrn borrarse las primitivas (BORRA) o volver a definirse (COPIADEF).Ejemplo:haz "redef? "falsoborra "avav es una primitivahaz "redef? "verdaderoborra "avavNo se cmo av11<"'lHelvw RomanTimes New Roman,ArialA`Wide LatinCourier New`      MMM3f3f  x ;+0KO 7%$D T$ ,1[ ]#   *l*)Dą- 9}ʆb!"I"Y#l#X&ll)*$-D# m l '(3 Le/ **|%w&]%DD))C w))+'A*(^')*|(Om'Ie ߁')@ׇz eiQX& !.ф /. bX&N*11 l#%V#&Z 3' K * $Ql#cl^2I-!)-4J(.)**({'&!)*h '& ;" (͈+$q*Ć  Y#Y#N'!R&h&&p&_ n!!],߁!E !!!!!"R QP,y  #3# ++  Ƃ 1 0{$!*ۄ).!v$o#0aއ,&I~/3ہ%*!,g . .!(q:%P%%#P  i1$ }a*G E-0@3}߃ jZ  )+    t  €0'(1| c݇x&' S @u )!%R̆ J "4+ք]#S+1/}kφ  % + .I ͅ]#ą\ ;݂ ą1ކ*# 0   -WZ K%`!iՅ-l $_ #-" -"k }ʆD/)7*ʆ4 $C$`X-ځ .hyM 09t 8 ((;8HOu1+g Oʅ^,:&-14323*%bb"9 !1v1M  ;**** ;.48b^")" ł G-U(,Pe  """J$I"I",Z0"3 [3ه a1%b ..s6    F vq V%4E^3h _ KX&+͇+#T{D) s/0&0;)i24BOARDON logob-e-h-l-p -w.IG.MACRO.MAYBEOUTPUT.PONELEMENTO .PONMP$.PONPRIMERO(`,ABREDIALOGO0ABREMIDI4ABREPUERTO8ABREVIATURAS.<ABSACAcerca deAcercarACTIVAACTIVAVENTANAACTUALIZABOTON ACTUALIZAESTATICOADIOSAJUSTAAlejarALTO ANALIZA$ANTERIOR?(AADE,AADECADENALISTBOX0AADELINEACOMBOBOX4APAGASONIDO8ARC<ARCCOS@ARCODEELIPSEDARCSENHARCTANLrea ActivaPAREAACTIVATARITMTICAXASCII\AV`AVANZAdAyudahAYUDA DE WINDOWSpAyuda sensible al contextotAyuda: ndicexAyuda: MCI|AZARBAJALAPIZBAJALAPIZ?BAJANBAJANARIZBALBALANCEABALANCEAIZQUIERDABALANCEO?BITINVERSOBITOBITXORBITYBLBOBONBOPLBOPROCEDIMIENTOSBOPROPBORRABORRABARRADESPLAZAMIENTOBORRABOTONBORRABOTONRADIOBORRACADENALISTBOXBORRACHECKBOXBORRACOMBOBOXBORRADIALOGOBORRAESTATICOBORRAGROUPBOXBORRALINEACOMBOBOXBORRALISTASBORRALISTBOXBORRANOMBRESBORRAPALETABORRAPANTALLABorrar Borrar todoBORRATEXTOBORRATODOBORRAVENTANA BOTN$Botn Alto(Botn de Estado,Botn Ejecutar0Botn Paso4Botn Pausa8Botn Reiniciar<Botn Trazar@BPDBTHBsqueda por temasLCABECEAPCABECEOTCAIXCaja de Entrada\Caja de Lista`CAMBIADIRECTORIOdCAMBIASIGNOhCARlCARCTERpCARGAtCARGADIBxCARGADLL|CARGAGIFCargarCDCENTROCERCACHECKBOXCIERRAMIDICIERRAPUERTOCIRCULOCLCOCDIGOS DE ERRORESCOGECOLAColor de fondo169 7B8A0C8F2 K tColor de rellenoColor del lpizCOLORLAPIZCOLORPAPELCOLORRELLENOCOMBINACOMBOBOXCmo empezarCOMUNICACIONESConfigurarConfigurar impresoraCONSTRUCTORESCONSULTASCONTADORACEROCONTENIDOCONTINUACONTROL DE LA MEMORIACONTROL DEL LPIZ CONTROL MIDICOORXCOORYCOORZCOPIAAREA COPIADEF$Copiar(CORTAAREA,Cortar0COS4CREABARRADESPLAZAMIENTO8CREABOTON<CREABOTONRADIO@CREACHECKBOXDCREACOMBOBOXHCREADIALOGOLCREADIRECTORIOPCREAESTATICOTCREAGROUPBOXXCREALISTBOX\CREAMATRIZ`CREAVENTANAdCUENTAhCUENTAREPITElCURSORpDECOLAtDEFINExDEFINICIN DE PROCEDIMIENTOS|DEFINICIN DE VARIABLESDEFINIDO?DemoDEPURACINDESDEDeshacerDESPLAZADESPLAZAIZQUIERDADESPLAZAXDESPLAZAYDESTAPADESTAPANOMBREDESTAPATODODEVDEVUELVEDILOGODIBUJANDO CUERPOS SLIDOS EN 3DDIFERENCIADIRDIRECTORIODIRECTORIOPADREDIRECTORIOSDISTANCIADISTANCIAXYZDIVISIONEDEdicin de erroresEDITAEDITAFICHEROEditando con el PortapapelesEditarEDITATODOEDITOREDNEDNS EDPLEDPLSEDPSEJECUTAEJECUTAANALIZA Ejemplos$ELEMENTO,ELIPSE0EMPIEZAPOLIGONO4ENCADENA?8ENTERO<Entrar y salir de Logo@ENTRECOMILLASDENVIAHENVOLVERLERRORPESTESCRIBEXESCRIBEBOTONRADIO\ESCRIBECADENAPUERTO`ESCRIBECARACTERPUERTOdESCRIBEPUERTOhESCRIBEPUERTO2lESCRIBEREDpESCRIBIR CON FORMATOtESPERAxESTADO|ESTADOCHECKBOXESTATICOESTRUCTURAS DE DATOSESTRUCTURAS DE CONTROLEXCLUSIVOEXPFALSOFIN8A0C8F2 KFINREDFORMATONUMEROFRFRASEFULLSCREENFULLTEXTFUNCIONES DE BITMAPFUNCIONES DE WINDOWSGDGENSYMGestin de redesGIGIRADERECHAGIRAIZQUIERDAGLOSARIO MIDIGOMAGOTOGRFICOSGROSORGROUPBOXGUARDAGUARDADIALOGOGUARDADIBGUARDAGIFGUARDALGuardarGuardar como HACIAHACIAXYZHASTAHAZHAZ.HASTA HAZ.MIENTRAS$HAZLOCAL(HORA,HORAMILI0ICONO4IGNORA8IGUALES?<ILA@IMDIMNOMPROPHImprimirLIMPROPTIMPROPSXIMTODO\IMTS`IMVARIABLESdndicehINDICEIMAGENlINICIAREDpINSPECCINtINSTRUMENTOS MIDIxINTRODUCCIN|INVERSOINVERSOLAPIZLA TORTUGA Y EL CONTROL DE LA VENTANALAPIZLAPIZ?LAPIZNORMALLCLCSLEEBARRADESPLAZAMIENTOLEEBOTONRADIOLEECADENAPUERTOLEECARLEECARACTERPUERTOLEECARCLEECARCSLEEFOCOLEELISTALEEPALABRALEEPUERTOLEEPUERTO2LEEREDLEESELECCIONLISTBOXLEETEXTOCOMBOBOXLEEVALORREDLIMPIALIMPIAPUERTOLISTALISTA?LISTAAMATRIZLISTANOMBRESLISTBOXLLLLAMADLLLNLOCALLOG LPLPROPLUZLVARSMACRO MACRO?$MANEJO DE LA MEMORIA(MATRIZ,MATRIZ?0MATRIZALISTA4MAYOR?8MAYUSCULAS<MCI@MDELEMENTODMDPONELEMENTOHMENOR?LMENOSPRIMEROPMENOSPRIMEROSTMENOSULTIMOXMENSAJE\MENSAJEMIDI`MENdMen AyudahMen Ayuda EditorlMenu BitmappMen EditartMen EditorxMen Editor Fichero|Men FicheroMIEMBROMIEMBRO?MIENTRASMINUSCULASModal vs. Modeless WindowsMODO DIRECTOMODOBITMAP?MODOPUERTO KwMODOVENTANAMOVIMIENTO DE LA TORTUGAMPMPSMTMUMUESTRAMUESTRAPOLIGONOMUESTRATMUESTRATORTUGAMULTI MEDIA/MIDI/SONIDOMLTIPLES TORTUGASMUTADORESNONOEXCLUSIVONOICONONOMBRENOPASONOREDNOREFRESHNormalNotas de la versinNOTRAZANuevoNUMERO?NMEROS ALEATORIOS OOCULTATORTUGAOPCIONES DE LA LNEA DE RDENESOPERACIONES CON BITSOPERACIONES LGICAS OPERACIONES NUMRICAS$RDENES DE AYUDA(RDENES DE CONTROL,ORIENTACION0ORIENTACIN EN 3D4OT8PALABRA<PALABRA?@PARADPARADAHPASOLPAUSAPPEGATPEGAENINDICEXPegar\PENPATTERN`PERSPECTIVAdPFThPIlPIXELpPLAtPLLISTxPOCCR|PONPONAREAACTIVAPONBALANCEOPONBARRADESPLAZAMIENTOPONCABECEOPONCHECKBOXPONCLPONCOLORLAPIZPONCOLORPAPELPONCOLORRELLENOPONCONTADORPONCPPONCURSORESPERAPONELEMENTOPONFOCOPONFORMATORTUGAPONGPONGROSORPONINDICEBITPONLAPIZPONLUPAPONLUZPONMARGENESPONMODOBITPONORIENTACIONPONPATRONLAPIZPONPIXELPONPOSPONPRIMEROPONPROPPONRPONRATONPONREDPONRONZALPONRUMBOPONTAMAOTIPO PONTECLADOPONTEXTOCOMBOBOXPONTIPOLAPIZPONULTIMOPONX PONXY$PONXYZ(PONY,PONZ0POP4POPLS8Por qu LOGO<POS@POS3DDPOSICIONATEHPOSRATONLPOTPPOTENCIATPOTSXPP\PREDICADOS (Artmetica)`PREDICADOS (Datos)dPREDICADOS (Espacio de trabajo)hPREGUNTABOXlPREGUNTASpPreguntas sobre el lpiztPREGUNTAS SOBRE EL MOVIMIENTO DE LA TORTUGAxPREGUNTAS SOBRE LA TORTUGA Y LA VENTANA|PRI KhxPRIMEROPRIMEROSPRIMITIVA?PRIMITIVAS DE DIRECTORIOSPRIMITIVAS DE BITMAPPRIMITIVAS MIDIPRIMITIVAS MULTIMEDIAPRIMITIVAS SONIDOPRIMITIVAS SONIDO WAVEProbarPROCESO DE ERRORESPRODUCTOPROPPROPIEDADPROPIEDADES DE LAS LISTASPRUEBAPTTPUQUITAQUITADIBUJOTORTUGAQUITADLLQUITAESTADOQUITAREDQUITAREPETIDOSQUITARRATONQUITATECLADORADARCCOSRADARCSENRADARCTANRADCOSRADIOBUTTON RADSEN RADTAN RAIZCUADRADA RC RE REAZAR RECEPTORES RECTANGULORRELLENO REDEF?$ REDONDEA( REFRESH, RELLENA0 REPITE4 RESTO8 Restricciones de los polgonos< RESULTADOEJECUTA@ RETROCEDED ROH RONZALL ROTULAP RUMBOT SACAALAZARX Salir\ Salvar comod SCROLLBARh SELECCIONBOXl SELECTORESp SENt SETCURSORx SHELL| SI SIC SICIERTO SIEVENTO SIF SIFALSO SIGNO SINOBOX SIRED SISINO SL SONIDOON SPLITSCREEN STANDOUT SUBELAPIZ SUENAWAVE SUMA TABLA MIDI TAG Tamao del lpiz TAMAODIBUJO TAMAOGIF TAMAOTIPO TAN TAPA TAPADO TAPANOMBRE TAPATODO TECLA TECLADO y RATN TERMINAPOLIGONO TEXTO TEXTSCREEN TIENEBARRA? TIPO Tipo de letra Tipo de letra rdenes Tipo de letra rotulador TOKENIZACIN TONO TORTUGA TRANSMISORES$ TRAZA( Tutorial, UL0 ULTIMO4 USO DEL COLOR8 VACIO?< VALOR@ VAR?D VENTANAH VENTANADEPURADORL Ventanas predefinidasP VERDADEROT VISIBLE?X Welcome\ Where to Start` Yd Zoomh NTAS SOBRE EL MOVIMIENTO DE LA TORTUGAxPREGUNTAS SOBRE LA TORTUGA Y LA VENTANA|PRI KColor de rellenoFINREDMODOVENTANAPRIMEROҿgo.rtf 287 381336BC0 PERSPECTIVE 1 PERSPECTIVE logo.rtf 287 -3C55F738 SETPIXEL 0 SETPIXEL logo.rtf 288 359BA4962 USING_COLOR 1 USING_COLOR logo.rtf 288 ' 6A4CF06 PIXEL 1 PIXEL logo.rtf 288 381336BC0 PERSPECTIVE 1 PERSPECTIVE logo.rtf 288 5DEF213CD SETLABELFONT 0 SETLABELFONT logo.rtf 289 ' /0&0;)Lz=xWelcomeINTRODUCCINOPor qu LOGOCmo empezarWOPCIONES DE LA LNEA DE RDENESK-w+-h-p;-e0-lE EDITORkMen EditorEdicin de errores߁Editando con el PortapapelesAyuda sensible al contextoφMen Editor FicheroImprimir Editor-Salir del editor}Men EditarEditor: deshacer4Editor: CortarEditor: CopiarEditor: PegarEditor: BorrarBorrar todoEditor: Configurar%Tipo de letra*ProbarMen Ayuda Editorndice Ayuda EditorAyuda EditoreBsqueda por temasMODO DIRECTOCaja de EntradaCaja de Lista@Botn EjecutarBotn de EstadozBotn TrazarBotn AltoBotn ReiniciarׇBotn PasoBotn PausaMEN Men FicheroFichero: Nuevo Fichero: CargarFichero: Guardar(Fichero: Guardar comoFichero: EditareFichero: BorrarFichero: SalirMenu BitmapBitmap: NuevobBitmap: CargarBitmap: GuardarUBitmap: Salvar comoBitmap: rea ActivaBitmap: Configurar impresoraaBitmap: ImprimirMen ConfigurarbTamao del lpizETipo de letra rotulador4Tipo de letra rdenesColor del lpizColor de rellenoColor de fondo{ZoomAcercarDAlejarNormal/Men AyudaAyuda: ndice]Ayuda: MCIDemo TutorialQEjemplosNotas de la versinAcerca deEntrar y salir de LogoTOKENIZACINESTRUCTURAS DE DATOS*CONSTRUCTORESPALABRAcLISTAFRASEPONPRIMEROPONULTIMŎMATRIZCREAMATRIZxLISTAAMATRIZMATRIZALISTA COMBINAINVERSOIGENSYMPSELECTORESPRIMERO:PRIMEROSULTIMO]MENOSPRIMERO#MENOSPRIMEROSMENOSULTIMOELEMENTOMDELEMENTOGSACAALAZARQUITAMQUITAREPETIDOSENTRECOMILLASކMUTADORES`PONELEMENTO+MDPONELEMENTO .PONPRIMEROD.PONMP.PONELEMENTOl AADEPOP&COLA(DECOLAʅPREDICADOS (Datos)lPALABRA?݇LISTA? MATRIZ?_ VACIO? IGUALES?m ANTERIOR?O .IG MIEMBRO? ENCADENA? NUMERO? TIENEBARRA? CONSULTAS CUENTA ASCII CARACTER MIEMBRO MINUSCULASJ MAYUSCULAS STANDOUT ANALIZAR EJECUTAANALIZAP HORA HORAMILI COMUNICACIONESh TRANSMISORES ESCRIBE݂ MUESTRAT\ MUESTRA RECEPTORES LEELISTA LEEPALABRA LEECARC LEECARCS SHELLK Comunicaciones[ ABREPUERTO CIERRAPUERTO| LIMPIAPUERTOI MODOPUERTO LEECADENAPUERTO LEECARACTERPUERTO+ ESCRIBECADENAPUERTO ESCRIBECARACTERPUERTO LEEPUERTO21 ESCRIBEPUERTO2 LEEPUERTOƂ ESCRIBEPUERTOф CARGADLLS LLAMADLL QUITADLLF TECLADO y RATN TECLAt PONTECLADO QUITATECLADO LEECAR PONRATON QUITARRATONg POSRATON BORRATEXTOe SETCURSOR CURSOR PONMARGENES ARITMTICA OPERACIONES NUMRICASه SUMA!DIFERENCIACAMBIASIGNOPRODUCTOnDIVISIONRESTOENTERO8REDONDEAABSSIGNO*RAIZCUADRADAOPOTENCIAoEXPuLOGLN PITANRADTANSENRADSENCOSRADCOSARCTANRADARCTANeARCSEN;RADARCSENARCCOSRADARCCOSPREDICADOS (Artmetica)քMENOR?MAYOR?NMEROS ALEATORIOS%AZARREAZAR{ESCRIBIR CON FORMATOFORMATONUMEROOPERACIONES CON BITSBITYBITOV BITXORBITINVERSODESPLAZAqDESPLAZAIZQUIERDAZOPERACIONES LGICASY ONOGRFICOSMLTIPLES TORTUGASlACTIVATORTUGAPONFORMATORTUGAQUITADIBUJOTORTUGAͅMOVIMIENTO DE LA TORTUGA*AVANZARETROCEDEGIRAIZQUIERDAGIRADERECHABALANCEAIZQUIERDA)BALANCEADBAJANARIZiCABECEAyPONPOS+POSICIONATEPONXY;PONXYZ(PONX8PONYHPONZCENTROPONRUMBOPONBALANCEOPONCABECEOhPONORIENTACIONLARCODEELIPSEELIPSE ARCCIRCULOPREGUNTAS SOBRE EL MOVIMIENTO DE LA TORTUGAuPOS1POS3DICOORXCOORYCOORZRUMBOBALANCEO?QCABECEO?iORIENTACIONHACIAqHACIAXYZDISTANCIA_ DISTANCIAXYZ}PIXELłRONZAL߃LA TORTUGA Y EL CONTROL DE LA VENTANAąMUESTRATORTUGA-OCULTATORTUGALIMPIABORRAPANTALLAENVOLVERMODOVENTANACERCAkPERSPECTIVARELLENA ROTULAPONPIXEL9PONTAMAOTIPOVTIPOsTAMAOTIPOTEXTSCREENaFULLSCREENSPLITSCREENPONRONZALbREFRESHNOREFRESHځPONLUPA*DESPLAZAXĆDESPLAZAYXPONFOCOtLEEFOCOiICONONOICONOACTIVAVENTANAUSO DEL COLORՅORIENTACIN EN 3DCUERPOS SLIDOS EN 3Dy EMPIEZAPOLIGONOvTERMINAPOLIGONO;MUESTRAPOLIGONOPONLUZ)LUZRestricciones de los polgonosPREGUNTAS SOBRE LA TORTUGA Y LA VENTANATVISIBLE?lCONTROL DEL LPIZBAJALAPIZSUBELAPIZPONLAPIZہGOMA}INVERSOLAPIZZLAPIZNORMALPONCOLORLAPIZʆPONCOLORRELLENOPONCOLORPAPELPONGROSORPONPATRONLAPIZPONTIPOLAPIZBORRAPALETAPreguntas sobre el lpizBAJALAPIZ? LAPIZCOLORLAPIZZCOLORRELLENOCOLORPAPELGROSOR"PENPATTERNjLAPIZ?MANEJO DE LA MEMORIADEFINICIN DE PROCEDIMIENTOS PARAFINDEFINEqTEXTOއFULLTEXT!COPIADEFDEFINICIN DE VARIABLESPHAZNOMBRE@LOCAL#HAZLOCALVALORPROPIEDADES DE LAS LISTASMPONPROPbPROPIEDAD BOPROPLPROP^PREDICADOS (Espacio de trabajo)͈DEFINIDO?PRIMITIVA?DEFINIDO? (otro uso)KVAR?RMACRO?PREGUNTASQCONTENIDOTAPADOG IMTSLVARS*IMPROP&LISTANOMBRESPLLIST@INSPECCINIMIMTODOIMPROPSIMVARIABLESPOPLSPONIMNOMPROPPOTPOTScCONTROL DE LA MEMORIABORRA߁BORRATODOBOPROCEDIMIENTOSIBORRANOMBRESOBORRALISTASCBONBOPL6 TAPA TAPATODO TAPANOMBRE DESTAPA DESTAPATODO DESTAPANOMBRE TRAZA NOTRAZA_ PASO NOPASO!EDITA!EDITATODOY!EDPS!EDNS!EDPLS!EDN!EDPL!GUARDA!GUARDAL!CARGA!QUITAESTADO!ESTADO.!ESTRUCTURAS DE CONTROL`!RDENES DE CONTROL"EJECUTA)"RESULTADOEJECUTA^"REPITE;"CUENTAREPITE"SI"SISINO"PRUEBA"SICIERTOI"SIFALSO#VERDADERO#FALSO#ALTOY#DEVUELVEV#COGE#ENVIA3#ERROR#PAUSAl#CONTINUA*#NOEXCLUSIVOv$EXCLUSIVOJ$SIEVENTOC$PONCURSORESPERA$PARADA$ESPERA4 $PONCONTADOR$CONTADORACERO$ADIOS$.MAYBEOUTPUT1$IGNORAT$`$DESDE%HAZ.MIENTRAS%MIENTRAS%HAZ.HASTA:%HASTA%GOTO%TAG!%MACRO7%.MACRO%PROCESO DE ERRORES%CDIGOS DE ERRORESK%RDENES DE AYUDA|%AYUDAw&AYUDA DE WINDOWS&PRIMITIVAS DE DIRECTORIOSR&DIRh&DIRECTORIOp&DIRECTORIOSX&CAMBIADIRECTORIO&DIRECTORIOPADRE&CREADIRECTORIO&FUNCIONES DE WINDOWSX&VENTANA&CREAVENTANA'BORRAVENTANAN'DILOGO{'CREADIALOGO^'BORRADIALOGO'LISTBOXh 'CREALISTBOXm'BORRALISTBOX'LEESELECCIONLISTBOX'AADECADENALISTBOX'BORRACADENALISTBOX3'COMBOBOX(CREACOMBOBOX(BORRACOMBOBOX(LEETEXTOCOMBOBOX8 (PONTEXTOCOMBOBOX(AADELINEACOMBOBOX|(BORRALINEACOMBOBOX(SCROLLBARJ(CREABARRADESPLAZAMIENTOw)BORRABARRADESPLAZAMIENTO)PONBARRADESPLAZAMIENTO)LEEBARRADESPLAZAMIENTO)BOTN.)CREABOTON)BORRABOTON)ACTUALIZABOTONۄ)ESTATICO!)CREAESTATICO)BORRAESTATICO*ACTUALIZAESTATICO*GROUPBOX*CREAGROUPBOX*BORRAGROUPBOXN*CHECKBOX*CREACHECKBOXA*BORRACHECKBOX*ESTADOCHECKBOX7*PONCHECKBOX**RADIOBUTTON*CREABOTONRADIO+BORRABOTONRADIO+LEEBOTONRADIO +ESCRIBEBOTONRADIO+DEPURACIN+VENTANADEPURADOR+Modal vs. Modeless Windows͇+Ventanas predefinidasS+MENSAJE,SELECCIONBOX,SINOBOX,PREGUNTABOX ,ABREDIALOGO,GUARDADIALOGO],EDITAFICHEROP,Ejemplos: Windows,FUNCIONES DE BITMAP-PRIMITIVAS DE BITMAP)-CORTAAREA-COPIAAREA" -PEGAENINDICE-PEGAODOYS,-AJUSTA-PONINDICEBITE-INDICEIMAGEN.PONMODOBIT .MODOBITMAP?;.RECTANGULORRELLENO.CARGADIB .TAMAODIBUJOg .GUARDADIB/.CARGAGIF.TAMAOGIF .GUARDAGIFD/PONAREAACTIVA/AREAACTIVA~/Gestin de redes0INICIARED0FINREDZ0SIRED0NORED€0LEERED0ESCRIBERED0PONRED1QUITAREDv1QUITARED1LEEVALORRED1MULTI MEDIA/MIDI/SONIDO1PRIMITIVAS MIDI1ABREMIDI11CIERRAMIDI1MENSAJEMIDIa1TABLA MIDI^2CONTROL MIDI3GLOSARIO MIDI3INSTRUMENTOS MIDI23PRIMITIVAS SONIDO WAVE[3SUENAWAVE3PRIMITIVAS SONIDO3SONIDOON3APAGASONIDO^3TONO4PRIMITIVAS MULTIMEDIA"4MCI4REDEF?4SK%RDENES DE AYUDA|%AYUDAw&AYUDA DE WINDOWS&PRIMITIVAS DE DIRECTORIOSR&DIRh&DIRECTORIOp&DIRECTORIOSX&CAMBIADIRECTORIO&DIRECTORIOPADRE&CREADIRECTORIO&FUNCIONES DE WINDOWSX&VENTANA&CREAVENTANA'BORRAVENTANAN'DILOGO{'CREADIALOGO^'BORRADIALOGO'LISTBOXh 'CREALISTBOXm'BORRALISTBOX'LEESELECCIONLISTBOX'AADECADENALISTBOX'BORRACADENALISTBOX3'COMBOBOX(CREACOMBOBOX(BORRACOMBOBOX(LEETEXTOCOMBOBOX8 (PONTEXTOCOMBOBOX(AADELINEACOMBOBOX|(BORRALINEACOMBOBOX(SCROLLBARJ(CREABARRADESPLAZAMIENTOw)BORRABARRADESPLAZAMIENTO)PONBARRADESPLAZAMIENTO)LEEBARRADESPLAZAMIENTO)BOTN.)CREABOTON)BORRABOTON)ACTUALIZABOTONۄ)ESTATICO!)CREAESTATICO)BORRAESTATICO*ACTUALIZAESTATICO*GROUPBOX*CREAGROUPBOX*BORRAGROUPBOXN*CHECKBOX*CREACHECKBOXA*BORRACHECKBOX*ESTADOCHECKBOX7*PONCHECKBOX**RADIOBUTTON*CREABOTONRADIO+BORRABOTONRADIO+LEEBOTONRADIO +ESCRIBEBOTONRADIO+DEPURACIN+VENTANADEPURADOR+Modal vs. Modeless Windows͇+Ventanas predefinidasS+MENSAJE,SELECCIONBOX,SINOBOX,PREGUNTABOX ,ABREDIALOGO,GUARDADIALOGO],EDITAFICHEROP,Ejemplos: Windows,FUNCIONES DE BITMAP-PRIMITIVAS DE BITMAP)-CORTAAREA-COPIAAREA" -PEGAENINDICE-PEGAODOY !-tf 391 )A56D366D BURIED 1 BURIED logo.rtf 391 ' 6AB7186 POALL 1 POALL logo.rtf 391 % 2AF759 SAVE 1 SAVE logo.rtf 391 +C96B720F BURYALL 0 BURYALL logo.rtf 392 % 16E772 BURY 1 BURY logo.rtf 392 121BDD3EB CONTENTS_2 1 CONTENTS_2 logo.rtf 392 -D51B9EC9 BURYNAME 0 BURYNAME logo.rtf 393 % 16E772 BURY 1 BURY logo.rtf 393  Ԣ>E-A9618771 NAMELIST 1 NAMELIST logo.rtf 393 )4A693A37 UNBURY 0 UNBURY logo.rtf 394 121BDD3EB CONTENTS_2 1 CONTENTS_2 logo.rtf 394 /26EB872E UNBURYALL 0 UNBURYALL logo.rtf 395 )4A693A37 UNBURY 1 UNBURY logo.rtf 395 )A56D366D BURIED 1 BURIED logo.rtf 395 1899F2AFE UNBURYNAME 0 UNBURYNAME logo.rtf 396 )4A693A37 UNBURY 1 UNBURY logo.rtf 396 -A9618771 NAMELIST 1 NAMELIST logo.rtf 396 ' 77FBE79 TRACE 0 TRACE logo.rtf 397 % 2B7F72 STOP 1 STOP logo.rtf 397 )17591161 OUTPUT 1 OUTPUT logo.rtf 397 % 23AE0E MAKE 1 MAKE logo.rtf 397 ' 6AD2367 PPROP 1 PPROP logo.rtf 397 +8353A590 UNTRACE 1 UNTRACE logo.rtf 397 5D9DD4A1E TRACE_Button 1 TRACE_Button logo.rtf 397 +8353A590 UNTRACE 0 UNTRACE logo.rtf 398 ' 77FBE79 TRACE 1 TRACE logo.rtf 398 5D9DD4A1E TRACE_Button 1 TRACE_Button logo.rtf 398 % 2B7DC4 STEP 0 STEP logo.rtf 399 ' 5DAD35B LOCAL 1 LOCAL logo.rtf 399 % 2B7DC4 STEP 1 STEP logo.rtf 399 33200A9DF STEP_Button 1 STEP_Button logo.rtf 399 )4A7DD089 UNSTEP 0 UNSTEP logo.rtf 400 % 2B7DC4 STEP 1 STEP logo.rtf 400 33200A9DF STEP_Button 1 STEP_Button logo.rtf 400 % 1A0EDA EDIT 0 EDIT logo.rtf 401 )BC3549E1 EDITOR 1 EDITOR logo.rtf 401 ' 460439A EDALL 0 EDALL logo.rtf 402 % 1A0EDA EDIT 1 EDIT logo.rtf 402 121BDD3EB CONTENTS_2 1 CONTENTS_2 logo.rtf 402 % 1A1006 EDPS 0 EDPS logo.rtf 403 % 1A0EDA EDIT 1 EDIT logo.rtf 403 1 72E570 PROCEDURES 1 PROCEDURES logo.rtf 403 % 1A0FB0 EDNS 0 EDNS logo.rtf 404 % 1A0EDA EDIT 1 EDIT logo.rtf 404 ' 63275A0 NAMES 1 NAMES logo.rtf 404 ' 460AFF8 EDPLS 0 EDPLS logo.rtf 405 % 1A0EDA EDIT 1 EDIT logo.rtf 405 )1E397A11 PLISTS 1 PLISTS logo.rtf 405 /(&(;)L4<k3k4M tS ̕Y);VQĄs;O,*9C!,QP}< e2az^ ւ ׂtq9 *%8 (Q,/(&D;G+K0OVKI"W y + `T$aO } $ɔR&'!˜Co=$jsuxuy"ه %kTr6 > !!!!tIu$uj\G%i$I|%i\1`! x"""c"!"#P#$='Gt'÷'ʷ'v''l =$*s*Y*!+(+8+H(+\ .+Lj+*}+_ r+#^J,"5K,q1f,P ,#B,݂ /$60H01IL23W3ځUf_mr͈prG ѪRN) ̆a١ ^(^3V#X&ݽ[ C`!`!?q߁@qqOq3#+#9w͚h&(.b͇+ 7(քD/)݇[@}u23p W, &u2Ku2ʃI c?[ k #4ȱQϤ}qݫEOg#MeO &( W87!'[<x? [H^3^st#y ":%14X%lf'EoE[3)y*#x>Յ n ކA ,8 !P (G^ zHDZ[*v$5@rN'4d$e3#/ B1sU| = aYY#FvI%K+7smWt z9*f< &@1Gk*k7*bV Zӽ!QۏQ"ʅI#ą Vp#{ɒ# C#+7#vT$'$/%l# &.& D*+-v{-/{-{--%W.M`dW.gZ.^".(w^.v^=/X&]/k0*k0Ć0ł1_ ߩ2ׇ~6b#7:#7yO#7;$7)p7ϵ7T{8:!R:X :m |x;4҄;U<8U<R&=4 $5h=co?v$] @X@@( B`B4&CC&C Cg ^2DLfD/9|DHHF`!F-hdF(IxGw&ZGl 3I(sYaI"I ,I I PKJ%7:iJ 5qJ}J (JR Lφ}LLtMjSN{QU U(|UF hX -:Y'bIY"~ZZ&ZS0]a̶] _&D_ ^|acb V$b b?dS=e'C@f߁%wf'{AmijS j 6jф Ŷk`lb"l ^6l mr:yo*/{opy ?pfp;q I-qFrͅ4yu u"Mu_=w7%%aw*%yDL1{K%g{!!|K =}3':~߃+ڧ& u u u uuuuuuuuuuuuuu u(u)u*u+u,u.u/u2u3u5u7u8u:u?u@uAu  LP 0-4LH j^bzVnfZ~rRvL  x ddd0 d 0 D X D 3'.3',IId["["IIIm'P pP L@   4@0 $ \D\@ rJA 3 K8 8 L@   4@ڧ&j+/(ac(՚(ہ()T()r(*L).!)'D*+-*-.v{-/{-{--%V.L.4W.M`dW.gZ.^"t.a1.(w^.v^=/X&]/k0*k0Ć0ł1_ tz1Z0ߩ2ׇ 2ۄ)~6b#7:#7yO#7;$7)p7ϵ7T{88;.9+:9E-:!R:X :m Y;-|x;4҄;U<8U<R&=4 $5h=co?v$] @X@@( B`B4&CC&C Cg sC11^2DLfD/9|DFP,HHF`!F-hdF(IxGw&ZGlJI.) 3I(sYaI"I ,I I PKJ%7:iJ 5qJ}J (JR Lφ}LLtMjSN{2&O)D5Ov1:P0QS**U U(|UF gV3*V15X!)hX -:Y'bIY"~ZZ&Zc[0\^2S0]a̶] UA[^)VCo^3_&D_ o`-sX`.` .t`g .V` .^|acb V$b b?d>d~/S=e'C@f߁%wf'{AmijS j 6jф Ŷk`lb"l ^6l mon,r:yo*/{opy ?pfp;q I-qa]r*Frͅ4yu u"Mu_=w7%%aw*x+%yDL1{K%g{!!|K =}3':~߃l C:\ARCHIVOS DE PROGRAMA\NETWORK ASSOCIATES\MCAFEE VIRUSSCAN\AVCONSOL.INI5 < rJA 3 K  }mJ @Eiݓ/9ޖ ,-,:""f1$kly"S #6]5x "+ {P)9-slꂀ$b4ÿ1 3:, mN*P :2A5 'ʆ1ssp0(y>O,*19C!,QP}< e2az^ }3ւ ׂtq9 *%8 (Q,/0(&D;G+K0OVKI"W y + `T$aO } $ɔR&'!˜Co=$"4jsuxuy"ه %kTr6 > !!!!tIu$uj\G%i$I|%i\1`! x"""c"!"#P#$='Gt'÷'ʷ'v''l =$*s*Y*!+(+8B)H-#Gp)-#GOG)B 7Sm#H#-#b H"Ɨ#-#ATODH-#XS-#nvEi0 7Sml) ne M☟n luAADECADENALISTBOXE:LOGO 0%SPL-#AADECADENALISTBOX-#? GL<-#S [L-#H*p h-#m F  IMIE(!TORTPONBARRADESPLAZAMIENTOILOGO  0 CREAGROUPBOX/-#!PONBARRADESP-#ENTOGTjj 왟BOEDITAFICHERO