ICAREL

- UAMI

versión 2.1

p, A Y 1 ~ 1 1 1 muma
s ~ ~

Proyecto terminal

.

Contenido

Introducción
Computadoras PC y compatibles ................................
......................................
Conceptos básicos sobre Karel ..........................................................................
Elsistema Karel-UAMI.......................................................................................
Puesta en operación del sistema Karel-UAMI ....................................................
Conducción por menÚs ......................................................................................

1
3
5
6
7

Programas
Características del lenguaje...............................................................................
Diseño de programas.........................................................................................
La opción pfogrema ..........................................................................................
Teclas de uso en el editor ................................................................................
Movimientos del cuTsor ....................................................................................
Manejo de instrucciones ..................................................................................
Teclas de uso general......................................................................................
Ayuda y gramática...........................................................................................

1
6
9
12

14

16
18
19

Laberintos
La opción Laberinto ...........................................................................................
Modos de edición...............................................................................................
Órdenes para bloques........................................................................................

Contenido

2
5
6

p6gins 1

.._I.__1.

KAREL-UAMI rersidP 2.1

I Capítulo4 I
Compilación de programas
&Que es compilar? ............................................................................................
La opción Compilar............................................................................................

7
2

Ejecución de programas
El robot como un esclavo ..................................................................................
7
La opción Ejecuta .............................................................................................. 1
La opción Robot ................................................................................................
4
Cancelación de la ejecución ............................................................................. . 5
Terminación de un programa ............................................................................. 6

I Capítulo6 I
Manejo de archivos
Uso de la opción Archivos..................................................................................

7

Gramática del lenguaje de alto nivel Karel

[Apéndice B
Mensajes de error
EKOreS de funcionamiento .....................................
.................. ..........................
Errores de directorio o al cargar y guardar archivos ...........................................
Errores de compilación ......................................................................................
Errores de ejecución ..........................................................................................
Errores de posición del robot Karel ....................................................................

1
I
2

2

3

I

....................................................................................................................................................IApéndice C I Uso de discos flexibles Dar formato a un disco ..... 2 3 IApéndice D I Bibliografía Contenido página 3 .... Eluso de la orden Copy...............

KAREL .UAMI versión 2.1 Capítulo 7 Introáucción @unos Ma* Laura .

a fin de facilitar el trabajo. como editores de texto.. pBgina 1 IntroducciOn . Computadoras PC y compatibles Con la introducción de los microprocesadores en el mercado. ofreciendo una breve explicación de los conceptos presentados en cada una de las secciones. depuración. presentando los puntos principales que el usuario debe tomar en cuenta en su desempeño con el sistema Karel. I - - . por lo cual la primera sección dedica una rápida introducción a dichos equipos. administradores de disco. La presente guía detalla las características del sistema.. y por otra parte familiarizarlo con el manejo de herramientas disponibles en los computadores.I Capítulo I 1 Introducción El sistema Karel-UAMI pretende introducir al usuario a diversos conceptos fundamentales de la computación como son: lenguaje de alto nivel. información de ayuda y conducción por menús. programa.. En las otras secciones de este capítulo se dá una perspectiva sobre los conceptos generales referentes a Karel y el uso de este sistema. etc. las computadoras dedicadas a la investigación o a las grandes empresas empezaron a convertirse en una herramienta de uso común (Microcornputadoras o Computadoras personales). Este sistema fué desarrollado para equipos IBM-PC y compatibles. se evita profundizar en los temas presentados. Tratándose de un manual.UAMI. compilación. sin embargo se menciona alguna bibliografía que sea útil para aquellos que deseen ampliar los conocimientos.

almacenando hasta 1. I Existen diferentes modelos de PCs. En estas unidades el medio de almacenamiento no es removible o intercambiable sino fijo. su velocidad llega hasta los l6MHz y tienen capacidad de direccionar hasta 1Mb de memoria RAM de manera directa. es necesario guardarlo en una unidad de almacenamiento secundario.2Mb para discos de 5%" o 1. Estas unidades utilizan los denominados diskettes o discos flexibles. Para poder manejar el sistema Karel-UAMI se debe conocer. el medio fundamental de comunicación usuario-maquinal ha conservado casi las mismas teclas. Además. si se desea conservar el contenido de alguna parte de la memoria. esto es. por lo menos los siguientes elementos de una PC. Introducción pagina 2 _ I .- KARELUAMI v e d a 2. su contenido sólo existe mientras el equipo se encuentra encendido. el teclado. permitiendo estandarizar las funciones con otras PCs y reduciendo la necesidad de recordar diversas combinaciones para la operación de los programas empleados. siendo capaces de leer o escribir sobre un disco en forma magnética. pero tiene a cambio una gran capacidad (los hay desde 40 Mb hasta varios Gb) y una mayor velocidad de le-ctura y escritura. con velocidades desde 4MHz a 12MHz y en este momento es tecnología próxima a desaparecer.1 Capitulo 1 La característica más importante de la familia de las llamadas PCs estriba en el cuidado puesto a cada nuevo modelo para ser capaz de Útilizar los programas creados en modelos previos. b) Unidades de disco rígido. Unidades de almacenamiento secundario: Se encuentran de 2 formas: a) Unidades de disco flexible. La memoria cenfrales el área donde se encuentran todos los datos utilizados por el procesador y donde se cargan los programas a ejecutar.44Mb para discos de 3%". AT (Advanced Technology) Tienen un procesador 80286 y 80386. Un hecho importante es que la memoria central es volátil. pueden cambiarse fácilmente insertándolos en las unidades. entre los cuales se encuentran: XT (Extended Technology) Tienen un procesador 8086/8088. distinguibles en 2 módulos: O O La unidad de procesamiento: constituida por el procesador y la memoria central.

en él se pueden crear. respecto a la posición y orientación actual.K A R E L U M versión 2. Los equipos no son autónomos. Este coordinador recibe el nombre de Sisfema operativo. el cual está constituído por un laberinto delimitado por un muro circundante y compuesto por un espacio libre. Este es un medio de comunicación usuario-máquina utilizado para obtener copias permanentes y legibles de la información introducida al computador. con un paso de longitud unitaria. También existen pequeños objetos que emiten un sonido suave llamados Trompos Zumbadores. Conceptos básicos sobre Karel Karel es un robot con un conjunto de habilidades elementales para desenvolverse en su universo. Si un equipo puede realizar alguna función es por un programa básico que lo coordina como a los demás programas y debe cargarse en la memoria al momento de encender el equipo. Se limita a rotaciones en ángulo recto. pues sin él no es posible solicitar la ejecución de ninguna instrucción o programa. sin embargo su visión es muy restringida y sólo es capaz de ver una pared. Para evitar dañarse a sí mismo. Ver Las paredes encontradas a sus cuatro costados.1 CepMul0 1 Algunos equipos cuentan además con impresora. Para utilizar un disco flexible virgen. este se procesa antes por un programa que coloca marcas al disco para localizar los datos a grabarse en él. éstas se utilizan para representar obstáculos que Karel debe evitar. borrar o mover paredes de cualquier forma y longitud que Karel no puede penetrar. es decir sin formato. . Girar Sobre su propio eje. un equipo no hace nada "por sí mismo". Las habilidades elementales de karel son: Avanzar Hacia adelante en la dirección en la que esta orientado. este proceso se conoce como formafeo y para explicarlo más ampliamente se ha incluído el Apéndice C: Uso de discos flexibles. es decir. si se encuentra a un paso de élla. Karel no avanza si detecta una pared frente a él.

La situación actual del robot se puede obtener observando la colocación de Karel en el laberinto y de algunos registros internos utilizados como medio de información.KARELUAMI reisóli2. Contar El número de trompos zumbadores llevados en la bolsa. su universo y como se desenvuelve en el. No debe confundirse esta habilidad con la de tratar de recoger un trompo. siempre y cuando se encuentre en la misma posición del trompo. en cambio un trompo recogido debe existir en el laberinto para guardarse en la bolsa. Todo esto se presenta en el Estado del robot. para un fácil desempeño de los demás programas. pues un trompo devuelto no aparece ni en el laberinto. introducción pesina 4 I . en dirección norte. Dejar En alguna posición del laberinto un trompo zumbador de los contenidos en la bolsa. Orientarse Lo cual significa revisar si se encuentra apuntando o no.1 Capitulo 1 Oir El sonido emitido por un trompo zumbador. Hasta ahora se ha visto al robot Karel. se almacena en la bolsa de Karel y no se requiere de su presencia en el laberinto. ya sean recogidos o pedidos al universo. Pedir Un trompo a su universo. no existe una distinción cuando los trompos han llegado a su bolsa. pues un trompo pedido surge de la nada. Devolver Un trompo al universo de la misma manera que puede pedírselo. Recoger Un trompo zumbador para guardarlo en su bolsa. Karel depende de esta información para la ejecución de un programa. No debe confundirse esta habilidad con dejar el trompo en el piso del laberinto. Enseguida se ve el manejo del sistema Karel-UAMI. ni en la bolsa.

Cuenta con órdenes que permiten trazar y borrar paredes. mediante el editor de laberintos). tanto de los programas como de los laberintos. detalladas en cada uno de los siguientes capítulos. mediante el editor de programas y laberintos. ejecución. Dentro del editor también se pueden agregar. eliminar o intercambiar caracteres. de acuerdo a la meta que Karel debe alcanzar. Con ambiente integrado se quiere decir que todas las actividades relacionadas con la creación. depuración y almacenamiento de programas para Karel pueden realizarse sin abandonar el sistema. son almacenados en archivos.KARELUAMI r e d o 2. lntroduccidn pesina 5 . A continuación se presenta un breve bosquejo de cada una de estas partes: Archivos Todos los programas creados por el usuario dentro del sistema KarelUAMl (como son programas. donde Karel ejecuta los programas escritos para él. modificar o almacenar laberintos. En esta parte se pueden utilizar dichos archivos para hacer una copia. modificar y almacenar programas en lenguaje de alto nivel para efectuar ciertas tareas con Karel. los cuales son partes conformantes del texto de un programa. normalmente designado por el usuario. este lenguaje se denomina de alto nivel por ser más expresivo y entendible para el ser humano. y mostrar al usuario los archivos contenidos en diversos directorios. similar al de otros sistemas donde es posible crear. para ello la opción Programas consta de un editor de textos. compilación. copiar. El sistema Karel-UAMI está dividido en 6 partes. También en esta parte se encuentra la opción para salir del sistema. Laberintos En ella es posible crear.1 Capitulo 1 El sistema KareI-UAMI El sistema Karel-UAMI es un ambiente integrado para programar al robot Karel. líneas y bloques. mover o borrar bloques de paredes y dejar o levantar los trompos zumbadores en sitios específicos. en esta parte se pueden escribir los programas que utilizan dicho lenguaje. Los archivos son unidades lógicas a las que se les asocia un nombre específico. Programas Karel cuenta con un lenguaje propio para comprender las instrucciones ordenadas por el usuario.

en la pantalla se observa un guión intermitente denominado cursor. En esta parte se compilan los programas escritos para Karel. la unidad B. Ejecución La ejecución de programas corresponde a interpretar o simular los programas escritos para Karel en un laberinto. si se encuentran horizontales o la izquierda si se encuentran verticales. Si ya se cuenta con el sistema operativo. por tanto la forma más simple de inicialización es insertando el disco en la unidad de disco A y encendiendo el equipo. y encender el equipo. la interpretación de cada instrucción ejecutada por Karel. tanto en el laberinto corno en el editor de programas. El disco con el sistema KarelUAMl contiene una copia del sistema operativo. De acuerdo a lo explicado en la primera sección. el sistema Karel-UAMI se ejecuta inmediatamente después de la carga del sistema operativo. el usuario debe cargar el sistema operativo. se traducen a un lenguaje de bajo nivel. a este proceso. Si en el equipo existe más de una unidad de disco flexible. para indicar la posición dentro de Introducción PdgiM 6 . Robot En esta parte se activan 2 opciones: a) b) observar los registros utilizados por d r e l en la ejecución I e un programa.1 Capltulo 1 Compilación Para que Karel pueda entender los programas escritos en lenguaje de alto nivel. menos expresivo para las personas pero no para Karel. que interpreta totalmente un programa en un laberinto y otra manipulada. A esta unidad se le llama la unidad A y a la otra. Puesta en operación del sistema Karel-UAMI. ya sea de un disco flexible o de uno rígido. establecer la posición y dirección inicial que Karel tiene al comenzar a ejecutar un programa. Por esta alternativoa. quedando las instrucciones traducidas en la memoria del sistema. en computación se le denomina Compilación. la unidad para insertar el disco es: la superior. Existen 2 tipos de ejecución: una automática. observándose paso a paso. Si el equipo cuenta con disco rígido éste se designa como unidad C.KAREGUAMI versión 2.

Programas.__ KARELUAMI versión 2. Ejecutar y Robof). un mensaje para la espera de datos. proporcionar cierta información o conducir a otro menú. Sí se está referido en la unidad C y se quiere cambiar a la A entonces se teclea: C>A: [Enter] con esta instrucción. dentro del cual se pueden observar las 6 partes descritas anteriormente (Achivos. hacia abajo. En este momento se puede colocar el disco en dicha unidad y proceder a digitar: A> KAREL [Enter] para introducirse al sistema Karel-UAMI. . La opción elegida donde se encuentra posicionada la línea de opcion se le denomina opci6n vigente. estas permiten mover la línea de opción hacia arriba. Conducción por menús El sistema Karel-UAMI se maneja por medio de menús.1 Capltulo 1 la pantalla y el interrogante. con excepción del compilador. El sistema Karel-UAMI consta de un menú principal. Si se desea cambiar la unidad de la cual se va a leer. hacia la izquierda o hacia la derecha para cambiar de opción vigente. Compilación. Cada una de ellas. Laberintos. La opción seleccionada puede realizar algún proceso. con la posibilidad de ejecutar las distintas opciones encontradas en él eligiendo una opción por medio de la línea de opción. el interrogante cambia a la unidad deseada. presentándose el ambiente principal del sistema. Para seleccionar una opción se requiere de las teclas de flechas encontradas en el grupo del extremo derecho del teclado. una franja con color distinto al del menú. La forma como se observa es: El interrogante indica cuál es la unidad de la que se espera leer (en el ejemplo. respectivamente. la unidad es la A). utilizadas para enviar el cursor de opciones a la primera y Última opción del menú. En este mismo grupo de teclas se encuentran las teclas [Home] y [End]. Un menú es una lista de opciones a escoger. manda al usuario a un submenú. basta digitar adelante del interrogante la letra de la unidad deseada seguida por dos puntos y luego pulsar la tecla [Enter].

Por último. existe una tecla que durante toda la ejecución del sistema proporciona información relacionada con la parte donde se encuentra el usuario. esta es la tecla [Fl].KARELUAMi versión 2. Esta tecla indica el término de una instrucción para poder ejecutarse. en el caso de los menús proporciona información sobre el significado de cada opción. localizada en la esquina superior izquierda o arriba del grupo del extremo derecho. se debe oprimir la tecla [Esc]. Ambiente principal del sistema Karel-UAMI Introducción @gins 8 _I__ _-- l _ l _ -- . encontrada en el extremo superior izquierdo del teclado.I . La forma del ambiente principal del sistema Karel-UAMI es la siguiente: Li Ksrel UAMl 21 c Figura 1-1. se oprime la tecla [Enter] (la tecla con una flecha que baja y regresa) conocida como regreso de carro por la analogía con la máquina de escribir. Cuando no se quiere seleccionar ninguna opción o si se desea regresar al menú previo.1 Capítulo 1 Una vez colocada la línea de opción en la orden deseada.

1 * Capítulo 2 Programas .KAREL UAMI versión 2.

dando algunas sugerencias para el diseño de programas.I Capítulo I L J Programas AI escribir programas para Karel. Pascaly Modula-2 entre otros. el resto se dedica a explicar la forma de uso del editor de programas. Este tipo de estructura. La tabla 2-1 presenta las instrucciones elementales de Karel. quien ejecuta las instrucciones. pues ordenan al robot ejecutar una acción específica. promueven en la persona diseñadora de programas hábitos con metas cada vez más exigentes en su programación pero sin llegar a problemas irresolubles. tendrá solución. así. aunado a la posibilidad de construir módulos o procedimientos específicos para resolver determinada tarea. Las estructuras de control se basan en los modelos teóricos de programación estructurada. se emplea un lenguaje diseñado para él. los bloques o módulos elementales de instrucciones son correctos y su funcionamiento por complejo que sea. así como el manejo de las teclas utilizadas dentro éste.En este capítulo la primera sección es dedicada a describir las características del lenguaje. quien escribe el programa y el robot. ya que son los mismos que sirvieron para construir lenguajes como Algol. éstas son imperativas. asociadas directamente con su habilidad de movimiento: . pues la filosofía fundamental de esta forma de construcción de programas es la misma del análisis aristotélico: "divide y vencerás". Características del lenguaje El lenguaje de alto nivel Karel es un medio de comunicación entre el usuario.

se hará uso del concepto de gramática. Karel observa una pared a su derecha. Karel no observa una pared al frente.1 Capitulo 2 Instruccion Avanza Vueltalzquierda VueitaDerecha Recogeobjeto Dejaobjeto Pideobjeto DevuelveObjeto Significado Avanza una posición en la dirección de su orientación. Para una mayor comprensión de esto.KARELUAMi ved611 2.la vista. Instrucciones elementales de lenguaje Karel. Recoge un trompo en el lugar de su posición. Gira 90' a su izquierda. El lenguaje Karel cuenta también con un grupo de condiciones básicas (ver tabla 2-2) para verificar el estado de su medio ambiente. Deja un trompo en el lugar de su posición. Obsérvese que los objetos del ambiente son trompos zumbadores y que la dirección norte siempre es hacia arriba. Pide un trompo de la nada. Tabla 2-1. Karel no observa una pared a su derecha. Karel tiene al menos un trompo en su bolsa. Karel no tiene trompos en su bolsa. Karel observa una pared a su izquierda. Devuelve un trompo a la nada. Tabla 2-2. Karel no observa una pared a su izquierda. Una gramática es el estudio sistemático de los elementos de un lenguaje. sobre la posición en que se encuentre. Karel escucha el zumbido de un trompo en la posición donde se encuentra. Condición ParedEnfrente NadaEnfrente Paredlzquierda Nadalzquierda ParedDerecha NadaDerecha Objetosuena Nadasuena AlgunObjeto NingunObjeto DireccionNorte La condición es cierta si : Karel observa una pared al frente. Karel se encuentra orientado hacia el norte. permitiendo a sus sentidos de. Condiciones básicas de lenguaje Karel. sobre la posición en que se encuentre. describiéndose por medio de una notación específica. Además de las instrucciones básicas y las condiciones elementales del lenguaje. Karel no escucha el zumbido de un trompo en la posición donde se encuentra. oido y tacto estar alerta para cada consulta. Gira 90' a su derecha. como se utiliza en un mapa. La gramática de un Programas peaina 2 . mensionandosólo lo fundamental para comprender el tema. se cuenta con un conjunto de estructuras de control.

El símbolo flecha derecha (+) separa las partes de una regla de producción.1 Capitulo 2 lenguaje está constituida por reglas de producción. En las reglas de producción. se separan con una barra (I). Las definiciones alternativas. Las subexpresiones opcionales estarán encerradas entre corchetes cuadrados ([ I). Las expresiones del lenguaje definidas en la gramática están constituídas únicamente por símbolos terminales. La primera estructura de control es la Secuencia de lnsfrucciones y su regla de producción es: <Secuencia> + <Instrucción> I <Instrucción> <Secuencia> . se detallan las estructuras de control utilizando las reglas de producción correspondientes. Las convenciones para especificar la gramática del lenguaje Karel son: O 0 0 0 0 O Los símbolos no terminales se cierran entre llaves ({ })... se utilizan los puntos suspensivos (.Iy +. el símbolo a definir siempre es no terminal y en la definición del símbolo pueden intervenir los dos. Una regla de producción tiene 2 partes: el simbolo a definir y la definición del simbolo colocados en el siguiente orden: simbolo a definir (no terminal) + definición del símbolo (terminal o no terminal) En cualquier gramática existen 2 tipos de símbolos: ferminales y no ferminales. Para el caso de secuencias sucesivas. Los símbolos terminales se escriben textualmente y serán todo lo que no sea un símbolo no terminal o los símbolos [ 1. Diagrama de flujo de la secuencia de instrucciones Definidas las convenciones.).KARELUAMi reiába 2. de las cuales se debe tomar una u otra. f Figura 2-1.

seguida por una instrucción. siempre y cuando se cumpla la <Condición>... El ciclo termina. La recursividad sirve para expresar de manera formal. realizándose de la siguiente manera: 1. la cual es una instrucción seguida de una secuencia. es decir la <Secuencia>. es decir. La figura 2-2 muestra el diagrama de flujo de esta estructura.. además en el contenido del símbolo por definir se encuentra la misma definición. 2. Éste debe usarse siempre que existan acciones que se deseen ejecutar una o más veces.Capítulo 2 KARELUAM rer86o 2. pero si al evaluar nuevamente la <Condición>. El ciclo no se interrumpe si durante la ejecución de la <Secuencia> cambia la condición. en otro caso va al paso 3. Sin embargo una secuencia puede estar Constituida por una sola instrucción. A una definición de este tipo se le llama recursjwa. El diagrama de la <Instrucción> se muestra en la figura 2-1 y su regla de producción es : <Instrucción> + <Instrucción Elementab I <ciclo Mientras> I <Ciclo Repite> I <Selección> I <Nombre de Tarea> La segunda estructura de control es el Ciclo Mienfras y tiene la siguiente regla de producción : <Ciclo Mientras> + Mientras <Condición> Haz <Secuencia> Fin El ciclo mientras es utilizado para llevar a cabo la ejecución repetitiva de una <Secuencia>. si se cumple una condición que se evalúe al entrar al ciclo. la parte de definición contiene Únicamente símbolos no terminales. la cual es una instrucción seguida de una secuencia. Si se cumple. que a una instrucción le puede seguir una secuencia. Se evalúa la <Condición>. es una regla definida en términos de sí misma. 3. . se ejecuta la <Secuencia> y se regresa al paso 1. .1 Es importante notar como en esta regla.

1 Capltulo 2 Figura 2-2. Si no se cumple la condición. El diagrama de flujo se muestra en la figura 2-3. entendiéndose de la siguiente forma: 1. La Última estructura es la Selección y su regla de producción es la siguiente: <Selección> + Si <Condición> Entonces <Secuencia> [Otro <Secuencia>] Fin Obsérvese que la parte Otro <Secuencia> se encuentra encerrada entre corchetes.Diagrama de flujo del ciclo mientras La tercera estructura de control es el Ciclo Repite y tiene la siguiente regla de producción: <Ciclo Repite> + Repite <Secuencia> Hasta <Condición> Este ciclo se utiliza para ordenar la ejecución repetitiva de una <Secuencia> por lo menos una vez y hasta que se cumpla la <Condición>. Si no se cumple. . Se ejecuta la <Secuencia> 2. se regresa al paso 1. independientemente de si la condición se cumple o no.en otro caso el ciclo termina La utilidad de este ciclo se da cuando el grupo de acciones debe ejecutarse al menos una vez. indicando una subexpresión opcional.Juy i i o KARELUAMI rw86a2. la secuencia es repetida hasta cumplirse. Se evalúa la <Condición> 3.

En la regla de producción de una <Instrucción> se puede observar entre sus definiciones de alternativa. pues el robot con un conjunto de apenas 7 instrucciones elementales y 11condiciones básicas. Diagrama de flujo del ciclo repite La estructura <Selección>es de gran utilidad para elegir una de 2 alternativas de acciones a tomar. el lenguaje Karel cuenta con un mecanismo de definjcjón de tareas. simplemente no se ejecuta la <Secuencia>. se presenta la regla de producción de un programa: Programas -6 . que una vez aprendidas pueden ser ejecutadas tal como si se tratara de una de sus habilidades elementales. en el diagrama de la derecha se incluye la subexpresión opcional. su ejecución puede ser ordenada como cualquier otra instrucción. el <Nombre de Tarea>. es necesario usar la subexpresión de Otro. Cuando no se utiliza la subexpresión opcional. En la figura 2-4aparecen los diagramas de flujo correspondientes a la <Selección>. especificando una nueva <Secuencia>a realizar. Además de las estructuras de control. Su regla de producción es: <Definición> + Aprende <Nombre de Tarea> = <Secuencia> Fin <Nombre de Tarea> Como se ha explicado. Únicamente se especifica la <Secuencia> a ejecutarse cuando se cumpla la <Condición> y si no se cumple. Conociendo ahora cada uno de los elementos integrantes del lenguaje. Si se desea especificar una acción a realizar cuando la <Condición> no se cumpla.1 Capltulo 2 I+-7 Secuencia 1 No Figura 2-3. la posibilidad de construir tareas por módulos o procedimientos específicos da mayores posibilidades de acción y flexibilidad. esto significa que una vez establecida la definición de una tarea. dependiendo del cuplimiento de cierta condición. se vuelve poderoso y capaz de aprender infinidad de tareas.KARELUAMI vemión2.

una o cualquier número de definiciones antes del bloque del programa principal: Comienza <Secuencia> Fin y en la secuencia de cada definición. definida previamente en el programa. pueden aparecer invocaciones a cualquier tarea. Las reglas de producción presentadas en esta sección constituyen la gramática de Karel y se presentan resumidas en el Apéndice A: Gramática del lenguaje Karel..KAñELUAMI vert46112. cuya regla de producción es: <Lista de Definiciones> -+ <Definición> I <Definición><Lista de Definiciones> indicando que pueden aparecer ninguna. siendo el primero de ellos una letra y los siguientes letras o números. Programas PIBina 7 .I9 Analizar estas reglas permite familiarizarse con la utilización de cualquier regla de producción. Otra observación relevante es el elemento opcional: <Lista de Definiciones>... En éstas se especifica que los identificadores de tareas y programas son una secuencia de caracteres.I z 011 121 .I Z l a I b I.1 Capltulo 2 <Programa> -+ Programa <Nombre de Programa> [<Lista de Definiciones>] Comienza <Secuencia> Fin <Nombre de Programa>. Las reglas de producción para el <Nombre de Tarea> y <Nombre de Programa> se pueden generar de las siguientes reglas de producción: <Nombre de Tarea> <Nombre de Programa> <Identificadoo <Caracteres> <Caracteo <Letra> <Digito> -+ -+ -+ -+ -+ + -+ <Identificador> <Identificador> <Caracteres> <Letra> <Caracteol<CaracteocCaracteres> <Letra> I <Dígito> A ( 6 I. Es importante hacer notar que el final de esta regla de producción es un punto.... En el bloque del programa principal es pos¡ble que aparezcan invocaciones a cualquiera de las tareas definidas en la lista.

y así hasta llegar a tareas muy faciles. Si son a su vez de tal tamaño que plantean por sí mismas un problema considerable. se identifican las tareas fundamentales. Cuando se concibe un problema. El proceso del análisis del problema y bosquejo de la solución es. página 8 Programas x I _ I _ - - - -~ " I -- 7-- . al menos a nivel de bloques de instrucciones. vale la pena acercarse al computador a escribir lineas de código. se trata de alcanzar una meta para dar solución o se identifica el requerimiento de la información necesaria. se aplica a cada una de ellas el mismo criterio. Hasta el momento en que el problema ha sido entendido y se realice un programa.1 Capitulo 2 1 Figura 2 4 . El diseño de programas involucra varias etapas. dividiéndolas en tareas de un segundo nivel de complejidad. las cuales se describen brevemente a continuación. Planteamiento del problema Para el caso del ambiente Karel-UAMI. esta etapa se lleva a cabo al diseñar el laberinto y bosquejar la meta que se pretende alcanzar en el recorrido.KAREL-UAMl veraibii2. planteadas en términos de acciones elementales. División del problema en tareas Una vez planteado el problema. primero que nada. Diagrama de flujo de la selección Diseño de programas El diseño de programas no es una actividad ligada al computador. un proceso mental y posiblemente las Únicas herramientas necesarias sean papel y lápiz.

KAREL-UAMl vaaih2.1

Capitulo 2

Compendio de las tareas involucradas
Este punto puede omitirse, pero en general produce programas más
breves y tareas de uso generalizadas. La idea de esta etapa es analizar
las tareas requeridas en la etapa anterior y buscar similitudes. Si varios
de los problemas intermedios pueden resolverse con sólo una tarea o si
las diferencias entre 2 o más de ellas son tan pequeñas que con pocas
adaptaciones pueden resolverse e involucrar las modificaciones necesarias en una sola, basta con implementarla e invocarla en el sitio preciso
para dar atensión especifica de las instrucciones requeridas.

Instrumentación de las tareas
En esta etapa se utiliza el lenguaje de programación presentado previamente. Una vez analizadas las tareas, el programa se limita a invocarlas.

La opción Programa
Si un programa ya fue construido, debe introducirse al sistema para hacer
posible su compilación y ejecución, auxiliándose del editor de programas.
Para esto, se debe seleccionar del menú principal la opción Programa,
utilizando las teclas de flechas hasta llegar a la opción u oprimiendo la
tecla bajo contraste de la palabra (P), desplegándose el submenú como
se muestra en la figura 2-5.

1 Archivos

-

Laberinto

Chmpilar

Ejecutar

Robot

1

Figura 2-5. Opción Programa del menú principal
Dentro de este submenú, existen 4 opciones, las cuales se analizan
enseguida con detenimiento.

KARELUAMl r d 2 . 1

Capítulo 2

Creación de un programa nuevo
Si durante la sesión no se ha creado algún programa y se desea hacerlo,
se debe elegir la opción Nuevo del menú de la figura 2-5; posteriormente
aparece el editor con la primera estructura para los programas en lenguaje Karel, como se muestra en la figura 2-6; aquí es posible introducir un
programa de nueva creación.
Karel

UAMl

2.1

Laberinto

I

a m

Programas
ngidn 1

PROGRAMA <lDENT>
COMIENZA
FIN <IDENT>.

I

.
Figura 2-6. Creando un programa nuevo

Guardar en disco un programa
Para guardar un programa en disco, es necesario encontrarse en el ambiente principal (si se encuentra editando un programa es necesario salir
del editor presionando la tecla [Esc]), posteriormente colocarse en el
submenú de la opción Programa y seleccionar la opción Guardar, auxiliándose de las teclas de flechas o presionando directamente la tecla que
corresponde a la letra en contraste. Después de ésto, el sistema
despliega una ventana y pregunta si desea guardar el programa, como en
la figura 2-7.
Si el programa ya tiene un nombre asignado, se reescribirá en disco
automáticamente;si es nuevo, aparece una ventana preguntando el nombre. Esto se muestra en la figura 2-8.
Una observación importante es que sólo se guardará un programa fuente
si el usuario lo desea, pues el sistema no guarda programas automáticamente.

K A R E G U M renió112.1

Capltulo 2

Karel

UAMl

2.1

Figura 2-7. Guardando un archivo nuevo en disco
Karel

UAMl

Laberinto

2.1
Cbmp

Figura 2-8. Preguntando por el nombre para guardar el programa en
disco

Edición de un programa ya existente
Si se desea editar un programa previamente guardado en disco, se debe
elegir la opción Cargar del menú de la figura 2-5,utilizando el mismo procedimiento indicado anteriormente. AI seleccionar esta opción aparece
una ventana, como se muestra en la figura 2-9,en donde debe escribirse
el nombre del programa a editar o simplemente responder oprimiendo
[Enter].Si se recuerda el nombre del programa, se responde escribiendolo, sin ser necesaria la extensón y el programa será editado directamente.
Si se responde oprimiendo la tecla [Enter], aparece un directorio (ver figura 2-10);este contiene los nombres de todos los archivos cuya extesibn
sea .KAR, tratándose de programas editados en lenguaje Karel; entonces
se puede posicionar la línea de opción sobre el nombre del archivo a edi-

Programas

- - ~

pdgina 11

1 Cbrnpilax Ejecutar Laberinto ~~ Robot 1 - Figura 2-9.Kar. se creará un programa nuevo utilizando el nombre auxiliar SinNombre. Muestra del directorio en la unidad de disco acutal Uso de la opción Editar AI elegir la opción Editar del menú de la figura 2-5.1 Cbmpilax Ejecutar Robot I I Laberinto RE2.si durante la sesión no se ha editado ninguno. .como se muestra en la figura 2-6.KAR NOM NOMBRE23. I Archivos c - Karel UAMl I Laberinto 2.M NOMBRE21.W NOUBRE22. se puede presionar la primera letra del nombre del archivo o utilizar saltos de página. se cargará en el editor el último programa que recidió en él. Teclas de uso en el editor AI ingresar al editor de programas.M NOMBRE24. se pueden observar 3 partes importantes: el Encabezado de control.KARELUAMI renión2.1 Capítulo 2 tar.KAR Figura 2-10. el Area de trabajo y la Linea de ayuda. auxiliándose de las teclas de flechas o si se desea avanzar con mayor rapidez. Ingresando el nombre del archivo a editar Karel UAMl Laberinto Archivos 2.

_..- .KAREL-UAMI raidn2. Por Último. si el cursor se encuentra en la palabra PROGRAMA y se presiona la tecla [Fl]. [Esc] AI oprimir esta tecla se termina la edición de progamas.. en el Encabezado de control se observa el número de columna y renglón. de manera general.. UAMl 2. jndicando que lo único que puede contener el nodo de PROGRAMA son comentarios. colocando al usuario nuevamente en le menú principal. Como no existe ningún error de escritura en las . Por ejemplo. desaparecerá de ambiente.I- . . como se muestra en la figura 2-1 1. la Línea de ayuda muestra un conjunto de teclas Útiles que indican. el uso y funcionamento del editor. por ejemplo. correspondientes a la posición del cursor en el área de trabajo y el nombre del programa editado. .1 Capltuio 2 El Area de trabajo es el espacio en el que se puede hacer la edición de progamas. . se obtiene en todo momento la ayuda esperada. _.1 1 Wm-[cJ: Comentarios Documcntscidn [ESC] -> Salk 1 Figura 2-1 1.. al oprimir la tecla [F5] todo el cuerpo de la instrucción MIENTRAS que se encuentra sombreado.. de acuerdo a la instrucción en la cual se encuentre posicionado el cursor. . permiten cambiar o modificar alguna instrucción. VAB] Esta tecla junto con la tecla [F4]. aparece una ventana.. Karel Columna 1 Rengldn PROGRAMA <DENT> COMIENZA FIN <IDENT>.. El funcionamiento de éstas teclas en el editor es: [Fl] AI presionar esta tecla. Es necesario tener cuidado de lo que se va a borrar y por ello es Útil el cambio de color en la ventana de edición de programas. si se desea borrar la instrucción MIENTRAS de la figura 2-12. Ayuda del editor de programas [F5] AI presionar esta tecla se borra una instruccion o un conjunto de instrucciones según se desee.

desciende sólo en las instrucciones de más a la izquierda. por ejemplo en la figura 213. Flecha izquierda Esta tecla funciona de igual forma que la flecha derecha y semejante a la tecla de flecha arriba. el cursor se encuentra en la instrucción PROGRAMA y al presionar la flecha derecha el cursor se desplaza un nivel inmediato interior. tomando como primer nivel las instrucciones de más a la izquierda. por ejemplo. se . Flecha abajo Funciona de similar forma a la tecla de flecha arriba. pues si el cursor se encuentra en el tercer nivel. sólo permite moverse a la instrucción del siguiente bloque.l Capltulo 2 instrucciones. éste no se mueve de su posición actual. Sombreado de una instrucción a borrar Movimientos del cursor Flecha arriba Esta tecla sólo permite movimientos ascendentes sobre las instrucciones de más a la izquierda. manda un mensaje de error. pero no se le permite ascender más si no existen más bloques arriba de él y en caso de intentarlo nuevamente. sólo se pueden cambiar las condiciones e instrucciones elementales en su totalidad. Figura 2-12. Laberinto ampila Ejecutar Robot m O Q R A M A ElemDlO I COMIENZA FIN Ejemplo. Flecha derecha Esta tecla permite moverse a niveles interiores. en caso de no existir un nivel interior al que se encuentra el cursor. pero en lugar de permitir ascender.KARELUAMJ venión2. si el cursor se encuentra posicionado en una instrucción.

AI momento de ya no haber instrucciónes superiores. se manda un mensaje de error. por lo que al pulsar la tecla de flecha abajo lo que sucede es que nos movemos sobre los hijos pero en el mismo nivel del árbol y ascendentemente de igual manera. En el caso de querer cambiar de nivel es necesario pulsar la teclas de flecha derecha o flecha izquierda según corresponda. el movimiento de las teclas de flechas se realiza dentro de un árbol de derivación llamado árbol de usuario. . Posición final al mover el cursos con la flecha derecha En resumen.KAREL-UAhU renión 2. reflejado en la pantalla. - Archivos Karel UAMl Laberinto 21 * ampilax Ejecutar Robot Figura 2-13a. L Figura 2-13b.1 Capltulo 2 - puede ascender al segundo nivel con sólo pulsarla. Posición inicial en el editor de programas 1Archivos Laberinto (ampilar Ejecutar Robot 1 COMIENZA FIN Ejemplo. como es el caso de la instrucción PROGRAMA. moviéndose sobre los padres de los nodos en los que se encuentra el cursor en un mismo nivel.

En este tipo de sistemas los errores sintácticos no existen debido a que la estructura del lenguaje aparece en la pantalla de edición. [Alt+M] Coloca en la ventana de edición de programas la instrucción completa de un ciclo mientras. las cuales se muestran en el editor de programas con las siguientes teclas de uso: [Alt+S] Coloca en la ventana de edición de programas. Kam/ contiene un editor guiado por sintaxis. la instrucción completa de una Sdección. como se mustra en la figura 2-14. marca un error pues una selección no puede ir antes de la instrucción de este tipo. [Alt+L] Coloca en la ventana de edición de programas la instrucción APRENDE.KARELUAMi redúa2. el usuario puede indicar el flujo de control deseado tan sólo con oprimir ciertas teclas para llenar un programa con la órden correcta. Trabaja de igual manera que las teclas [Alt+S]. [Alt+O] Imprime la instrucción Otro cuando en la Selección es necesario su uso. es decir. si el cursor se encuentra posicionado en el lugar correcto. Programas - W n a 16 . [Alt+R] Coloca en la ventana de edición de programas la instrucción completa de un ciclo repite. Por ejemplo si el cursor se encuentra en la instrucción COMIENZA y se presionan estas teclas. Estructuras de control El lenguaje Karel cuenta con un conjunto de estructuras de control explicadas con anterioridad. ya que el mismo sistema coloca la sintaxis correcta. como ocurría frecuentemente con la versión anterior o bien no olvidará colocar el signo igual (=) frente al identificador de una instrucción APRENDE.1 Capitulo 2 Manejo de instrucciones A diferencia de otros lenguajes. al usuario no se le olvidará teclear el punto final al concluir un programa. sólo cuando el cursor se encuentra posicionado en la instrucción COMIENZA o en otro APRENDE. por el contrario si se encuentra en cualquier instrucción FIN y se presionan estas teclas. Trabaja de igual manera que [Alt+S]. Por elk. aparece inmediatamente la función completa.

utilizada para realizar llamadas a los procedimientos que se encuentran en la parte superior de donde se deseen llamar.1 Capltulo 2 [Alt+T] Coloca en la ventana de edición de programas la instrucción < Idenb. Para salir de la edición de un comentario se oprime la tecla [Esc] y el cursor retorna a la linea de &digo en la cual se encontraba antes de comenzar los comentarios. excepto cuando el cursor se encuentra posicionado en alguna instrucción COMIENZA o APRENDE. Función Selección sobre la orden PROGRAMA Karol UAMl 21 PROGRAMA Ejemplo I I Figura 2-14b. estas se presentan con las siguientes teclas de uso: . Figura 2-14a.KAREL-UAMl v e d n 2. Función Selección sobre la orden SI Instrucciones elementales Las instrucciones elementales de Karel pueden mostrarse en cualquier lugar del editor. [Alt+C] Coloca en la ventana de edición de programas los comentarios que necesite el usuario.

A continuación se muestran las teclas Útiles en el manejo de caracteres: 146231 Programas plglir 18 . Imprime la instrucciónAlgúnObjeto. por ser sentecias de flujo y de iteración. Imprime la instrucción NingúnObjeto. el usuario puede indicar el flujo de control deseado tan sólo con oprimir ciertas teclas para dar forma a un programa con la órden correcta. es por ello que no es necesario el digitar caracteres en un programa. Imprime la instrucción Nadasuena.[Alt+A] [Alt+DJ [Alt+l] [Alt+B] [Alt+J] [Alt+PI [Alt+V] Imprime la instrucciónAvanza Imprime la instrucciónVueltaDerecha Imprime la instrucciónVueltalzquierda Imprime la instrucción Recogeobjeto Imprime la instrucción Dejaobjeto Imprime la instrucción Pideobjeto Imprime la instrucción DevuelveObjeto Condiciones elementales El grupo de condiciones elementales para Karel se utilizan como una consulta a sus sentidos del oído. Imprime la instrucción NadaEnfrente. imprime la instrucción NadaDerecha. en ellas se toman decisiones para seguir el flujo del programa en cierta dirección o repetir una secuencia de instrucciones una y otra vez. dependiendo del resultado de la condición. imprime la instrucciónObjetosuena. Imprime la instrucción DirecciónNorte. esto sólo se usa cuando se trabaja con comentarios dentro de un programa o al asignar un nombre para algún identificador. Imprime la instrucción Nadalzquierda. Imprime la instrucción ParedDerecha. Imprime la instrucción Paredlzquierda. en tal caso se insertan los caracteres digitándolos tal como se haría en una máquina de escribir. Estas condiciones se presentan en la ventana de edición de laberintos con las siguientes teclas de uso: [Ctri+A] [Ctrl+E] [Ctrl+ I] [Ctrl+B] [Ctrl+Dl [ctrI+C] [Ctrl+S] [Ctrl+NI [ctrI+O] [ctrI+T] [Ctrl+F] Imprime la instrucción ParedEnfrente. éstas se incluyen Únicamente en las estructuras de selección. cid0 mientras y ciclo repite. en el sistema Karel-UAMI. Telas de uso general Como se ha mencionado. tacto y vista.

. [E=] Se utiliza para la terminación de la edición de un programa. Se utiliza para borrar el carácter que se encuentra en la posición del cursor. Ayuda y gramática Existen 2 teclas que ayudan al usuario a obtener información rápida del manejo de las funciones más elementales del sistema: [Fl] AI presionar esta tecla se obtiene una breve explicación de las funciones de todas las teclas involucradas en el editor.1 Capitulo 2 [Enter] Se emplea para insertar una nueva línea. [BkSpace] Situada en la parte superior derecha del grupo alfabético del teclado (en algunos teclados está marcada con una flecha ( 4))y tiene como función borrar el caracter precedido por el cursor. cuando el cursor se encuentra en un comentario o cuando se desea aceptar un identificador en alguna estructura de control. para no recwir al manual. colocando ai usuario nuevamente en el menú principal del sistema Karel-UAMI. ya sea en un comentario o en un identificador. se presenta una versión condensada de la gramática del lenguaje de alto nivel de Karei.KARELUAh4I red6112. ya sea en un comentario o en un identificador. si es que se desea consultar la regla de producción de algún elemento del lenguaje directamente. [FZ] AI presionar esta tecla.

1 Capítulo 3 Laberintos mmos Ma* Laura Santos Beves Tiesa .KAREL .UAMl versión 2.

Como un programa tiene el objetivo primordial de controlar y mover a Karel en el interior de un laberinto. para karel es imposible atravezar alguna sección de pared. el cual está limitado por una pared circundante. éstas se utilizan sólo para representar obstáculos que karel debe evitar. de la forma en que esté constituído el laberinto.I Capítulo I 3 Laberintos La variedad de tareas que karel puede desempeñar las lleva a cabo dentro de su mundo. Karel puede escucharlo sólo si se encuentra parado en la misma posición del trompo. impidiéndole a karel atravezarla para poder salir. Dentro del mundo de karel se pueden utilizar 2 tipos de objetos: O Secciones de pared: Estas se pueden construir de cualquier tamaño y grosor para ser colocadas en alguna posición específica. t Trompo Pard Karol Zumbador Figura 3-1. O Trompos zumbadores: Son pequeños trompos que al girar emiten cierto sonido. Éstos no constituyen un obstáculo para karel. ya que puede pasar por encima de ellos sin percibirlos. entonces el buen funcionamiento de un programa depende en cierto modo. Elementos de un Laberinto. Todos estos elementos vistos en conjunto constituyen un Labetinfo (ver figura 3-1). .

como en la figura 3-4. Si no se recuerda el nombre del archivo puede oprimirse la tecla [Enter] con lo cual aparece una nueva ventana. Cargar Esta opción carga en el sistema Karel-UAMI algún laberinto para trabajar sobre él. al cual se le asigna un nuevo nombre cuando se guarda en disco. Si se decide seleccionar esta opción con la tecla [Enter]. Ver figura 3-3. o en su caso con el nombre auxiliar SinNombreLab. en la ventana se presenta la instrucción: A:\*. presentando los laberintos encontrados en el disco leído de la unidad de . Se pueden borrar estas instrucciones y poner el nombre de algún laberinto específico. Cuando se designa el nombre de un laberinto no existente.Submenú de la opción Laberinto.¿AB encontrados en la unidad de disco indicada. se crea un nuevo laberinto con dicho nombre. Ver figura 3-2.Lab indica que se desea ver todos los archivos con extensión .Lab A:\ indica la unidad de disco de la cual se quiere cargar el laberinto y *. al elegir esta opción aparece una ventana para introducir el nombre del laberinto sobre el cual se desea trabajar.Estas opciones son: Ksrel UAMl 2. se pasa a un submenú con 4 opciones mas para el manejo de los laberintos.1 ' * Figura 3-2.- - KARELUM d n 2 . 1 Capltulo 3 La opción Laberinto En el menú principal del sistema Karel-UAMI se encuentra la opción Laberinto. Por omisión.

Ver figura 3-5. se puede elegir cualquiera de ellos tan sólo con posicionar la linea de opción encima del nombre del laberinto y oprimir [Enter].M I UAMl 2. Cuando se quiera guardar el laberinto en disco se deberá asignar algún nombre diferente a éste.1 i I d NOYBRE2. Labarhitlm prrah3 . Es importante hacer notar que si se está trabajando con algún laberinto y deseamos cargar o crear uno nuevo. y presenta un laberinto sin nada dentro de él. Laberintos encontrados en la unidad de disco actual.UB NOYBREPCLAB II I I Figura 3-4.W NOYBRE22AAB NOMBRE23.1 Cspltulo 3 disco indicada. se puede regresar de cualquiera de las ventanas sin efectuar ninguna tarea.W NOYBRE6.Lab. Karel I .KAJlELUAMI rdún2. para no perder las modificaciones hechas en el laberinto actual. presionando la tecla (Esc]. se debe guardar el laberinto actual antes de traer uno nuevo al editor. Dire&orio NOYBRE21. Nuevo Esta opción crea un nuevo laberinto con el nombre auxiliar SinNombre.W ___ NOYBRE4. Ambiente para cargar un Laberinto. Como se ha explicado con anterioridad.LAR N0YBREB. Figura 39.

1 8 Figura 3-5.si se desea o no guardar el laberinto acutal.Capítulo 3 - Karel Archivos Pzograma UAMl KAREL-UAMl r e d & 2. entonces se presenta una ventana para la petición de un nuevo nombre del laberinto y se guarda en disco.1 2. preguntando por medio de una ventana como en la figura 3-6.LAB correspondiente a los archivos que almacenan laberintos. Figura 3-6. Como se sabe. Ver figura 3-7. un nombre no puede tener espacios. Si el nombre no tiene extensión. se le asignará por omisión la extensión . Guardar Esta opción guarda el laberinto actual en un archivo en disco. Creación de un nuevo laberinto. debe comenzar con letra y la extensión no podrá pasar de 3 caracteres. si el laberinto tiene asignado el nombre auxiliar SinNombreLab. comenzando con letra también. Laberintos &¡na 4 . Se verifica si se desea guardar un laberinto en disco. se guarda con el mismo nombre. ni más de 8 caracteres. Si el laberinto tiene un nombre asignado.

fraza y por último borra. Ambiente para renombrar un archivo que se desea guardar. Borra: Desplaza el cursor borrando las paredes y trompos encontrados a su paso. Karel UAMl 2. pues el sistema no guarda laberintos automáticamente o bien al cambiar por otro laberinto. regresando al modo mueve si se oprime nuevamente la misma tecla (al inicio de la edición. Editar Muestra el último laberinto cargado o creado en el editor de laberintos. [F8] Deja trompos en la posición donde se encuentre el cursor. incluyendo sus modificaciones realizadas. Traza: Desplaza el cursor dibujando secciones de pared. sin modificar el laberinto. sólo se guarda un laberinto si el usuario lo desea. el modo es mueve). a menos que se desee cargar o crear uno nuevo. Las teclas para su manipulaciónson: [F9] Cambia el modo de edición cíclicamente. Seguirá editando el mismo laberinto. .1 Renombrar Archivo Figura 3-7.1 Capitulo 3 Una observación importante es que. comenzando por mueve.-KARELUAMJ reisibnf. Modos de edición Dentro del editor de laberintos existen 3 modos con los cuales el cursor se puede mover: 0 0 0 Mueve: Desplaza el cursor.

se utilizan las siguientes teclas: [Flechas] Mueven el cursor una posición en la dirección a la que apuntan. tE=I Termina la edición de un laberinto y regresa al menú principal. IF11 Muestra la ayuda para el editor de laberintos. con respecto a las coordenadas actuales del cursor. [Endl Mueve el cursor a la esquina inferior derecha. desde la posición en donde se encuentre el cursor. [Shiít+Tab] Mueve el cursor 5 posiciones hacia la izquierda. desde la posición en donde se encuentre el cursor. paredes y/o espacios vacíos. [Home] Mueve el cursor a la esquina superior izquierda. [F4] Marca el final de un bloque. W 3 1 Mueve el cursor 5 posiciones hacia la derecha. es decir su esquina superior izquierda.KAREL-UAMI v d 6 n 2. Ordenes para bloques Un bloque es un área rectangular formada por trompos. el cual se puede mover. copiar o borrar sólo si el bloque se encuentra activado (es decir sombreado). .1 Capitulo 3 - Movimiento del cursor Para controlar el cursor dentro del editor de laberintos. Las instrucciones para manipular bloques son: [F3] Marca el inicio de un bloque. [PgDnl Mueve el cursor 5 posiciones hacia abajo desde la posición donde se encuentre el cursor. [PgUpI Mueve el cursor 5 posiciones hacia arriba desde la posición donde se encuentre el cursor. es decir su esquina inferior derecha. con respecto a las coordenadas actuales del cursor.

colocando la esquina superior izquierda del bloque en la posición actual del cursor. [F5] - Copiar un bloque. Archivos Programa Ksrel UAMl 2.1 Campiicu Ejecutar Robot Figura 3-9. colocando la esquina superior izquierda del blo- que en la posición actual del cursor.1 I I Figura 3-8. [F6] Labefíntos Mueve un bloque.KAREGUAMI rdón2. Si al tratar de copiar un bloque este se sale de los límites del laberinto. Bloque copiado. Ambiente mostrando un bloque marcado. se truncará. Si al tratar de mover un bloque éste se sale de los limites del laberinto. PegiM 7 . Ver figura 3-10. actualizando las coordenadas del bloque a la nueva posición del cursor. se truncará.1 Capltub 3 Cuando se marca un bloque (es decir se sombrea como en la figura 3-8) se puede utilizar para: Karel üAMl B 2. Ver figura 3-9.

Capltulo 3 - Karol Archivos Propama UAMl KAREGUAMI reis(ki2. Movimiento de un bloque. Ksrsl UAMl 2. [F7] Borra un bloque colocando espacios en blanco en la posición donde se encuentra el bloque.1 I Figura 3-1 1.1 Cam Figura 3-10.1 2. Ver figura 3-1 1 . 146231 . Ambiente después de borrar un bloque.

1 Capítulo 4 Compilación de programas mmos Marín Laura Santos *es Téresa .- ICAREL UAMI versión 2.

pero de gran importancia para posteriormente ejecutarlos. la palabra compilar se refiere a agrupar información de igual contexto o de naturaleza semejante. de hecho las existentes hasta la fecha sólo saben manipular y ejecutar órdenes por medio de números binarios. como Karel. desde el enfoque cornputacional su significado es el antes mencionado: traducir automáticamente un programa escrito en lenguaje de alto nivel. . Existen compiladores para la mayoría de los lenguajes utilizados por una computadora.-- I Capítulo 1 I 4 J Compilación de programas La compilación de los programas escritos en lenguaje Karel es un proceso muy simple de activar. a lenguaje de máquina. Lo transformación se ejemplifica en la figura 4-1. por tanto los compiladores existen debido a lo difícil que podría resultar hacer programas como secuencias de números. ¿Qué es compilar? El compilador es un programa que transforma un programa escrito en lenguaje de alto nivel. es decir lenguaje binario. a una serie de instrucciones en lenguaje básico de máquina. Aunque en el sentido más formal. sin ningún significado real en el lenguaje humano. pues son pocas las computadoras capaces de ejecutar Órdenes en algún lenguaje de alto nivel.

quien traduce las instrucciones definidas en su vocabulario. Ambiente que presenta la ventana de compilación. mostrando una pantalla como la de la figura 4-2. Compilaciónde progmmas peaina 2 . es decir en su gramática. La transformación que provoca el compilador Dado que un compilador conoce el lenguaje de alto nivel en términos de su gramática. cualquier construcción fuera de este esquema será desconocida por él. Como se dijo. Karel es un robot y como tal sólo puede interpretar instrucciones en lenguaje de máquina. para ello recurre al compilador.se compila el programa fuente cargado por Última vez en el editor de textos.KAREL-UAMI rei8ón2. Si se decide seleccionar esta opción con la tecla [Enter]. Liness Compiladse: 7 Memoria Disponible: 38450 K Figura 4-2. dentro de la cual se observa el nombre del programa y el número de línea que se está compilando o traduciendo. La opción Compilar La tercera opción del menú principal del sistema Karel-UAMI es precisamente la que invoca al compilador. Cuando un programa se está compilando.provocando su terminación .A esto se le llama Error de Compi/aci&n. es posible cancelar su ejecución oprimiendo las teclas: [Ctrl+C].1 Capitulo 4 LENGUAJE DE LENGUAJE ALTO NIVEL MAOUINA =b Figura 4-1.

1 Capitulo 4 Si existe algún error en la gramática del programa. se guarda en la memoria de sistema y como ésta existe mientras el sistema se encuentra activo. donde se despliega una breve explicación del error ocurrido y termina el proceso de compilación. detectar el error y corregir- lo.1 Laberinto Lineas Compiladas: 7 Memoris Disponible: 38450 K Figura 4-3. cancelación o por una ejecución exitosa. ya sea por error. al finalizar la sesión se elimina cualquier programa compilado dentro del él. Si durante la sesión no se ha editado ningún programa. se pedirá al usuario presionar cualquier tecla (ver figura 4-4). Karel UAMl 2. El código generado en la compilación de un programa. pues en la memoria de Karel se encuentra el código traducido del Último programa compilado o del programa SinNombre. el compilador tomará el programa auxiliar SinNombreXar para compilarlo. AI concluír la compilación. se deberá compilar antes de ejecutarse. Por tanto es necesario compilar cada programa antes de ejecutarse. . Por medio del número de línea compilada. el compilador se detiene y lo muestra en una ventana como la de la figura 4-3. mostrada durante el proceso de compilación se puede localizar rapidamente en el editor de textos la linea que causó problema.Kar (programa cargado por omisión) con que inicia el sistema. Ambiente que muestra un error de compilación.KAREL-UAMI vewi6n2. Cada vez que se cargue un nuevo programa. ya que es el programa cargado por omisión al iniciar la sesión de Karel. con esto se regresa al ambiente principal y se dejan en la memoria del sistema las instrucciones necesarias para la ejecución del programa.

1 Capitulo 4 Karel - Programe UAMl 2.se encuentran la totalidad de los errores del sistema Karel-UAMI. incluyendo los errores ocurridos en la compilación.KAREL-UAhíl versi6112.1 = r Laberinto - - * Compilando Archivo: EJemplo.Kar Lineas Compiladas: 7 Memoria Disponible: 38450 K Presione una tcda II Figura 4-4. Ambiente mostrando la terminación de la compilación En el Apéndice B: Mensajes de Error. .

Capítulo 5 Ejecución de programas .

pero no es capaz de tomar decisiones por sí mismo a pesar de ser muy eficiente y rápido en su trabajo. Ver figura 5-1. interpretándose dentro del Último laberinto cargado. se inicia la ejecución del Último programa compilado previamente. Karel el robot sabe realizar un conjunto restringido de acciones. es decir un conjunto de acciones que Karel debe realizar para lograr algún objetivo específico.1 Capítulo I Ejecución de programas En los capítulos anteriores. sin duda se debe a una falla en el objetivo del programa. opcionalmente se puede in- . crear laberintos y compilación de programas) necesarias para la ejecución de un programa. Estas alternativas son de gran ayuda y ventaja para comprender el verdadero significado de una ejecución. además. La Única forma de hacer trabajar a Karel es por medio de las instrucciones de un programa. En este sentido el robot es por completo un esclavo y si no llegara a realizar el trabajo esperado. AI activar cualquiera de estas opciones. AI elegirla se despliega un submenú vertical donde se puede seleccionar alguna de las siguientes alternativas: Complefamenfe. La opción Ejecuta En el menú principal del sistema se encuentra la opción Ejecuta. se explicaron todas las partes del sistema (editar programas. Enseguida se muestra el funcionamiento de la opción íjecuta que realiza este proceso. Paso a paso y Hasta cursor. seleccionándolas con la letra en contraste o bien con la línea de opción y presionando [Enter]. El robot como un esclavo Como ya se explicó.

Ejecución total en el laberinto. Ejecución cb programas pagina 2 .1 Bmpilar Robot I Figura 5-2. hasta finalizar la ejecución o encontrar algún error. La opción Ejecuta.1 I Figura 5-1. Las diferencias entre cada opción de las encontradas en el submenú se indican a continuación. Karel UAMl 2.1 Capltub 5 dicar la posición y orientación inicial de Karel en el laberinto por medio de la opción Robot del menú principal. las coordenadas y la orientación de Karel. Ksrel UAMl Laberinto Laberinto 2. Completamente - El programa se ejecuta totalmente mostrando en la ventana del laberinto el recorrido que sigue Karel al interpretar las instrucciones del programa compilado. A cada momento se puede observar dentro de la ventana del laberinto. Ver figura 5-2.KARELUAMi renibn2.

A esta forma de ejecutar un programa se le llama depuración. que indica la línea a ejecutar. este es necesario para observar la ejecución de una instrucción dentro del laberinto. se le puede colocar en cualquier línea del programa. ayudando al usuario a moverse por todas las instrucciones.1 Capltulo 5 Paso a paso y Hasta cursor La ventaja de estas opciones es que el usuario puede darse cuenta de cómo se ejecuta cada instrucción del programa dentro del laberinto. Ambiente presentando la linea a ejecutar. Las funciones útiles para el manejo de estas opciones son: Figura 5-3. Dentro de estas opciones se incluyen los movimientos del cursor en el editor de programas. como se muestra en la figura 5-3.KARELUAMI reriiion2. mostrada por medio de la Iínea en contraste. no importando que se estén ejecutando. . Como Realiza el intercambio de ventanas del editor de texto y el laberinto. al presionar esta tecla ejecuta todas las instrucciones encontradas a su paso. pues se pueden observar los movimientos de Karel antes y después de ejecutar cada instrucción. el cursor puede moverse dentro del editor de programas mientras se ejecuta un programa. desde donde se encuentra la linea en contraste hasta llegar a la línea donde se encuentra el cursor. la ventana del laberinto queda bajo la ventana del editor de programas. mostrando las líneas editadas por el usuario y ejecutando la primera instrucción de la parte principal del programa. AI iniciar cualquiera de estas opciones.

Oculta y Despliega Oculta o despliega la ventana de información la cual contiene la posición. Ver figura 5 4 . pasando a la siguiente línea a ejecutar. Ejecuciónde programas -4 . orientación y algunos otros registros que Karel utiliza al ejecutar instrucciones. En caso de no haber ningún nombre de tarea.1 Capítulo 5 [F7] Ejecuta la instrucción de la línea en contraste. pasando a la siguiente línea a ejecutar. AI finalizar la tarea. Para aceptar y salir de estas opciónes es necesario oprimir la tecla [Enter].e166112. Esta ventana se coloca sobre la ventana del laberinto y tiene la finalidad de mostrar al usuario el manejo que Karel hace de la información para ejecutar instrucciones. desde el lugar donde fué llamada. la línea en contraste se coloca al inicio de la tarea.K A R E L U M .1 Cbmpilar Ejecutar -1 Figura 5-4. Si en la línea en contraste se encuentra el nombre de una tarea. La opción Robot. Si en la línea en contraste se encuentra el nombre de una tarea. mostrando así el seguimiento de cada instrucción dentro de ella. ésta se ejecuta por completo sin que el usuario pueda ver la ejecución de cada una de las instrucciones de la tarea. la linea en contraste continúa en la siguiente instrucción a ejecutar. pasa a la siguiente instrucción a ejecutar hasta terminar la ejecución del programa. La opción Robot En el ambiente principal existe una Última opción denominada Robot. Karel UAMl Laberinto 2. [F8] Ejecuta la instrucción de la línea en contraste. dentro de ella se encuntran 2 opciones Útiles en la ejecución de un programa. ahorrando tiempo de ejecución. Ver figura 5-5.

).) o por un error en las condiciones iniciales del programa (no haber compilado el programa deseado. Esta Última es una de las formas de cancelación más comunes en el sistema y es aquí donde el usuario debe poner más atención si desea tener éxito en la ejecución de un programa.Kafsl I UAMl Laberinto 2. como se muestra en la figura 5-6.. renglon 1 . Información utilizada por Karel en la ejecución de un programa. ya sea de ejecución (recoger trompos donde no hay. etc. tratar de caminar frente a una pared.Esto generalmente se utiliza cuando se observa al robot dentro de un ciclo infinito. [CW+C] Un programa podrá cancelarse si se desea. orientado hacia la derecha.r 17 KD: Arriba KN: 3 KL: Verdsdero I Figura 5-5. etc. Cancelación de la ejecución Existen varias formas por las cuales una ejecución puede cancelarse: Ermr encontrado Un programa puede cancelarse por haber encontrado un error al ejecutar un programa. pidiendo la dirección y coordenadas iniciales donde Karel se coloca al comenzar la ejecución de un programa. por omisión Karel comienza la ejecución en la columna 1 . . dejar trompos sin que Karel los tenga en su bolsa.1 a m ’KW . al instante de oprimir simultáneamente las teclas [Ctrl+C]. Posición Presenta en la pantalla una ventana. Si no se desea utilizar esta opción. Estas opciones son de gran ayuda si se quiere comenzar en una posición específica. pero sólo se pueden utilizar antes de la ejecución del programa. no haber cargado el laberinto para el programa a ejecutar.

La parte de ejecución de programas también cuenta con ayuda. Ventana para posicionar a Karel antes de comenzar la ejecución de un programa.U M r d ó a 2. dando una explicación breve de cada una de las teclas presentadas en éste capítulo. Ejecución de programas -6 . Terminación de un programa Sucede cuando se termina exitosamente la secuencia de instrucciones del programa.sin encontrar errores al ejecutarlo. Éstas cancelaciones pueden ayudar al usuario a facilitar el manejo de la ejecución de un programa y una mayor eficiencia de su tiempo.1 Laberinto Posición de Ksiel Figura 5-6.K A R E L .1 Capitulo 5 Karel UAMl 2.

UAMI versión 2.1 KAREL = Capítulo 6 Manejo de archivos Qmos Mar& Laura Santos Wes Teresa .

I Capítulo 6 Manejo de archivos Los archivos creados por el usuario. se puede ver el desplegado de un submenú cuyo contenido se muestra en la figura 6-1. pues almacena la estructura principal del programa.Éste archivo no debe ser eliminado. si se escribe un programa llamado Duplica.TXT. como programas fuentes y laberintos. pueden guardarse en algún tipo de almacenamiento secundario (como discos flexibles). Uso de la opción Archivos AI seleccionar la opción Archivos del menú principal. Las extensiones asignadas por el sistema son de 3 tipos: 0 O O KAR TXT LAB Para los archivos que guardan programas escritos para Karel. Elsistema Karel-UAMI le asocia a cada archivo una extensión especial si es que el usuario no lo hace. tendrá el nombre DuplicaLAB. Las opciones que contiene el submenú son: Manejo de archivos página 1 .KAR y automáticamente se guarda un archivo en código ASCII llamado Duplica. De esta manera los archivos tienen el mismo nombre pero se distinguen por su extensión. el nombre completo del archivo. Para los archivos que guardan laberintos. Por ejemplo. Los archivos almacenados se identifican con una extensión propia. Para los archivos que guardan los caracteres en código ASCII. Si se decide que el laberinto para ejecutar el programa tenga el mismo nombre y el archivo fue realizado en el ambiente Karel-UAMI. si éste contiene instrucciones de programa se llamará Dup/jca. utilizando la orden Guarda de los menús Programa y Laberinfo.

- Capltulo 6 KAREL-UAhíi r d 6 n 2 . CopiaProg Hace una copia de un programa en lenguaje karel a un nuevo archivo. donde ambos archivos contendrán la misma información.KAR. AI seleccionar esta opción se presenta una ventana en la cual se pide el nuevo nombre del archivo que contendrá una copia de su contenido. Fin Permite la salida total del sistema. Por ejemplo. teniendo las mismas ventajas e instrucciones antes mencionadas para la opción anterior de los programas fuentes. el nombre debe ser distinto. Algunas veces es necesario ya que por alguna razón la información se puede dañar o perder. Opciones de la orden Archivos CopiaProg Esta opción permite copiar en disco el Último programa fuente cargado en el editor de programas. una vez ingresado el nombre. si el Último archivo cargado en el editor de programas se llama Corre. Karel UAMl 2. pero con un nombre distinto al que originalmente tiene. y provocar pérdida de tiempo y trabajo invertido. Manejo de archivos Peina2 . CopiaLab Hace una copia de un laberinto a un archivo con nombre distinto. esta opción es útil para hacer copias exactas de los archivos y obtener respaldos. Ver figura 6-2. como por ejemplo AuxCorre.1 Figura 6-1. Directorio Proporciona los nombres de archivos almacenados en el directorio especificado.KAR. se debe buscar otro nombre para la copia del archivo. se copia automáticamente al oprimir la tecla [Enter]. CopiaLab En ella se copian laberintos.

Capltulo 6 Karal UAMl 2.1 -- Dar nombre a l nuevo archivo N o m b r e de1 archivo: Figura 6-2. Petición del nombre nuevo del archivo Directorio AI elegir esta opción aparece una ventana de petición de datos. el sistema siempre busca la información general del drive A.KARELUAMI rerpda2. Se puede cambiar cuaquiera de las opciones para facilitar el desplegado de información. B:\. Ver figura 6-3. conteniendo por omisión. en ella se puede contener la siguiente infmación ejemplificada en la siguiente gramática: Dirección -+ Unidad de Disco + Directorio -+ Información -+ Ejemplos: Unidad de Disco:\Directorioinformación Letra Nombre del directorio I [ \Directorio] *.iAB Indica que requiere todos los archivos con extensión . -3 Manejo de a r c h m II__ _I -” -- .*)*. Se entiende por dirección la unidad de disco y posiblemente el directorio de donde se desea leer.extension A:\MIDIREC\*. la dirección de donde se desea leer el directorio.extensionlnombre.*Jnombre. En caso de no especificarse la dirección.* Indica que requiere toda la información dentro del directorio M/D/R€C del disco insertado en la undidad A.LAB del directorio general del drive B.

1 UAMl - Directorio y nombre de Archivo - Figura 6-3. sin embargo. pues si no se han guardado archivos de nueva creación o modificados.PAS NOMBRE4. Petición del directorio Después de haber indicado la direccion en la ventana de petición. Capítulo 6 Karel 2. se perderán las modificaciones o creaciones al salir del sistema. Hay que tener precaución al utilizarla.1 Cbmp 7 Laberinto Directorio NOMBREl. se observan los archivos contenidos en la dirección actual. . Ver figura 64. - Karel UAMl Laberinto 1-' Programa 2.LAB NOMBRES. no se puede seleccionar ningún archivo.KARELUAMi r d 6 n 2 . Archivos contenidos en la dirección acutal Esta opción se utiliza para salir del sistema. pues el directorio sólo está presente para hacer saber o recordar al usuario la información almacenada en cierta dirección.KAR NOMBRES-TXT NOYBRE2.U NOMBREB-PA - d Fin Figura 6-4.LAB NOMBRES-KAR NOMBRELUB NOYBRE7.

1 Apéndices Q m o s Marh Lawa Santos !&yes Teresa .KAREL = UAMI versión 2.

Las definiciones alternativas.. Las subexpresiones opcionales están encerradas entre corchetes cuadrados ([ I). Los simbo/os terminales se escriben textualmente y serán todo lo que no sea un simbolo no terminal o los símbolos [ 1.. se utilizan los puntos suspensivos (.).I y +. El símbolo flecha derecha (-+) separa las partes de una regla de producción. La siguiente gramática conforma el lenguaje de alto nivel Karel: <Programa> + Programa <Nombre de Programa> [<Lista de Definiciones>] Comienza <Secuencia> Fin <Nombre de Programa>. se separan con el símbolo OR lógico (I) Para las secuencias sucesivas. de las cuales se debe tomar una u otra. <Lista de Definiciones>+ <Definición> I <DefiniciÓnxLista de Definicienes> página 1 Gramática del lenguaje de Alto Nivel Karel -- _ I _ I - 7 - - . O O O O O O Los símbolos no terminales se encierran entre símbolos mayor y menor que (c >).IApéndice A Gramática del lenguaje de alto nivel Karel Las siguientes convenciones se empléan para especificar la gramática del lenguaje de alto nivel Karel.

- _- I - .<Definición> + <Secuencia> + <Instrucción> I <Instrucción> <Secuencia> <Instrucción> + <Instrucción Elementab I <ciclo Mientras> I <Ciclo Repite> I <Selección> I <Nombre de Tarea> <Ciclo Mientras> + Mientras <Condición> Haz <Secuencia> Fin <Ciclo Repite> + Repite <Secuencia> Hasta <Condición> <Selección> + Si <Condición> Entonces <Secuencia> [Otro <Secuencia> ] Fin Aprende <Nombre de Tarea> = <Secuencia> Fin <Nombre de Tarea> <Instrucción Elemental>-+ Avanza I Vueltalzquierda I VueltaDerecha I Recogeobjeto 1 Dejaobjeto I Pideobjeto I DevuelveObjeto I <Condición> -+ ParedEnfrente I NadaEnfrente I Paredlzquierda I Nadalzquierda I ParedDerecha I NadaDerecha I Objetosuena I Nadasuena I AlgunObjeto I NingunObjeto I DireccionNorte I página 2 Gramática del lenguaje de Alto Nivel Ksrel - -- -_.

I 9 página 3 Gramática del lenguaje de Alto Nivel Karel P . ..--___.. . I ... I Z l a I b I .. KARELUAMi r d 6 n 2. ..1 Apéndice A <Nombre de Tarea> -+ <Identificadoo <Nombre de Programa>-+ <Identificadoo <Identificadoo + <Caracteres>I <Letra> <Caracteres> + <Caracteo<Caracteo<caracteres> <Caracteo -+ <Letra> I <Dígito> <Letra> -+ A l B I . I z <Dígito> -+ Ol1121 ._____.

Apéndice B Errores de funcionamiento No es posible crear/desplegarla ventana No es posible crear/desplegarla línea de ayuda La ventana del robot no se movió No hubo cambio de ventanas Este tipo de errores sucede cuando existen problemas de ejecución del sistema. Errores de directorio o al cargar y guardar archivos No es posible guardar/copiar e/archivo en disco Las razones por las que no es posible guardar un archivo en disco son: O O O O El disco ha sido dañado físicamente (rayón. La puerta de la unidad no se encuentra bien cerrada. etc. prroine 1 Mensajes de error 1 1 1 1 _. Directorio no encontrado El directorio que se desea hacer vigente no existe.-- - _ I - .)._ . No hay suficiente espacio en disco para guardar el archivo. El protector contra escritura del disco (pequeña etiqueta que se coloca sobre la ranura) esta puesto. Para solucionarlo es necesario ejecutar nuevamente el sistema. humedad.

Se encontró un identificador de programa o tarea que ya se había definido previamente. El archivo solicitado está protegido contra escritura. lo cual no permite la existencia de errores sintácticos. Mal funcionamiento de la unidad de disco. Errores de compilación Como se explicó en los capítulos anteriores. Mensajes de error página 2 . ésta debe definirse antes de la invocación. Karel quiere avanzar fuera del laberinto Karel se encuentra en los límites del laberinto y quiere avanzar teniendo el muro circundante frente a él. a diferencia de otros lenguajes.No fue posible abrir el archivo Las razones por las que no es posible abrir un archivo de disco son: O O O El archivo solicitado no se encuentra en la unidad y directorios actuales. Por ello el Único error de compilación que puede existir en el sistema es: ldentificador no declarado Para poder invocar una tarea. Karel contiene un editor guiado por sintáxis. Errores de ejecución Identificador doblemente declarado. Puede ser que se haya digitado mal el nombre o puede estar en otro disco o directorio. Karel está observando fuera del laberinto Karel se encuentra en los límites del laberinto y sólo observa el muro circundante. No existe el archivo El archivo que se ha solicitado no se encuentra en la unidad y directorios actuales.

fuera de los límites del laberinto.I__-- Apdndice B KARELUAMI rerridn 2. página 3 Mensajes de error _I-* -- _-_-- I _ I . No hay trompos para devolver Se le ordena a Karel devolver trompos a la nada. No se puede dejar trompos Karel no tiene trompos en su bolsa y por tanto no puede dejarlos en el laberinto. No hay trompo para recoger Karel trató de recoger un trompo de un sitio en que no lo hay. sin tener trompos en su bolsa Errores de posición del robot Karel Karel está colocado fuera del laberinto Se desea colocar a Karel para que inicie la ejecución de un programa.1 Existe un obstáculo enfrente Karel quiere moverse hacia donde se encuentra una pared.

es conveniente hacer la analogía con medios de audio bastante conocidos: el cassete._ . un disco flexible es mucho más eficiente que una cinta. a no ser con plumón de fieltro suave. Algunas recomendacionespara su cuidado son: O 0 O 0 No doblarlos ni sujetarlos con broches. humedad ni cualquier tipo de campo magnético o electrostático (como los que producen motores. Para entender lo que se quiere decir con un "medio de acceso aleatorio". televisores. etcétera). esto implica un tiempo mayor. Lo mismo sucede con el compact disk.Apéndice C I Uso de discos flexibles Los discos flexibles han significado un importante adelanto en los medios magnéticos de almacenamiento. Si se quiere escuchar la quinta melodía grabada en un disco de acetato. se programa el lente lector para posicionarse en el lugar adecuado. el bajo costo económico del disco tiene un costo en cuidados por ser dispositivos bastante frágiles. sólo se mueve el brazo del fonógrafo sobre la quinta banda y escuchar la melodía deseada. De la misma forma que los medios de audio. Nunca tocar las partes desprotegidas del material magnético. inevitablemente se tienen que recorrer las melodías anteriores hasta llegar a la melodía deseada y aún cuando se haga con el control de recorrido rápido. No exponerlos a altas temperaturas.han hecho posible que los computadores cuenten con un medio de acceso aleatorio a un costo muy bajo. página 1 Uso de discos flexibles -- -- . el compact disk y el disco de acetato. No escribir sobre ellos. grapas u otros objetos. sin embargo. s¡ se quiere escuchar una melodía. Si por el contrario se desea escuchar la quinta melodía de un cassete.

3. para localizar datos grabados en él. así como una estadística del número de caracteres (bytes) que pueden grabarse en disco: Format Complete. se digita: bFORMAT 6: /S [Enter] y en seguida se carga el programa format y se recibe como respuesta el siguiente mensaje: Insert new disk for drive B: and press enter when ready.K A R E L U M reiaióÚ2. que puede ser: Head:<n> Cylinder:an> varía entre 1y O. Asegurarse de que el sistema operativo tiene el control.1 Apéndice C O Jamás abrir o cerrar las puertas de las unidades de disco cuando se esté grabando informaciónen él. Este programa se llama format y se encuentra en el disco del sistema operativo DOS. Invocar el programa format. que le coloca una serie de marcas. solicitando que se inserte el disco virgen en la unidad indicada y se presione la tecla [Enter]. junto con el nombre de la unidad donde se colocará el disco al que se le dará formato. Esto sucede cuando en la pantalla aparece el interrogante de la siguiente forma (la letra A indica la unidad de disco vigente): 2. Uso de discos flexibles psaina 2 . si todo resulta normal. y an>se incrementa de O hasta 42. Colocar en la unidad de disco flexible el disco del sistema operativo o cualquier disco que contenga el programa format. Para dar formato a un disco virgen es necesario realizar los siguientes pasos: 1. Dar formato a un disco Para utilizar un disco flexible virgen (es decir nuevo) es necesario procesarlo primero con un programa del sistema operativo. A continuación aparece la asignación que muestra el formato. en donde a> AI terminar. Por ejemplo si se desea dar formato a un disco sobre la unidad B. aparece el siguiente mensaje.

Una especificación de archivo está copuesta por 4 elementos: <unidad>:###BOT_TEXT###lt;directorio>\aiombre>. ya que esta orden está permanentemente disponible en la memoria del computador.Karl se emplea la especifi- Uso de discos flexibles p6gina 3 . B o C. Por último aparece el mensaje: Format another (yh)? respondiendo con la letra Y (yes).<extensíón> la <unidad> puede ser A. asegurando que copió al disco el sistema operativo. se desea hacer referencia a todos aquellos archivos cuyo nombre inicie con K y su extensión sea . Para especificar un conjunto de archivos._n_ KAREL-UAMl verp6n2. En caso de que el disco se haya dividido en directorios y estos a su vez en subdirectorios. es posible utilizar la orden copy del sistema operativo. aiombre> es el nombre del archivo y <extensión> los 3 caracteres adicionales de la extensión del nombre del archivo. <directorio> especifica en cual de estos subdirectorios se encuentra el archivo deseado. uso de la orden Copy El disco al que se ha dado formato puede utilizarse para grabar laberintos o programas. si se desea dar formato a otro disco o N (no). si se ha terminado la operación. 4. pero el incluirlo da la ventaja de poder inicializar el computadorcon éste disco. de tal manera que si. Si se desea transferir el sistema Karel a éste. sin requerir del disco del sistema operativo. Éste elemento es opcional. por ejemplo. según el número de unidades de disco que contenga el equipo. solicitado con la opción /s.1 Apéndice C Enseguida aparece el mensaje: System Transfered. El formato general de la orden copy es: COPY <fuente><destino> donde <fuente> es la especificación del archivo o conjunto de archivos donde se quieren copiar y <destino> es la especificación del archivo o conjunto de archivos en donde se desea que se haga la copia. pueden emplearse los metacaracteres (todos aquellos) y 3 (sustitución de un caracter).

A> COPY Prog2.Kar. Ésta orden se utiliza para copiar el sistema Karel. Algunos elementos se pueden omitir.* B: copia todos los archivos cuyo nombre sea Karel. su contenido se destruye para ser sustituido por el de Prog1. al utilizarse como parámetro <destino>: O O La especificación LPTI (o PRN) hace que el destino de la copia del archivo sea a la impresora. si se desea emplear la unidad o directorio vigente. Existen además 2 especificaciones de archivos de especial interés.Kar existiera. desde la unidad A al directorio vigente de la unidad B.Kar CON muestra en la pantalla el contenido del archivo ProgtKar. se emplea la especificación ???.kar.Kar LPTI copia el contenido de Prog2. A> COPY Prog1. Los siguiente ejemplos muestran las características antes mensionadas: A> COPY Progl.ubicado en el subdirectorio h/# del directorio padre.1 Apéndice C cación KtKAR y si se desean los nombres de más de 3 caracteres con cualquier extensión. Uso de discos flexibles pégincl4 . pueden utilizarse las teclas [Ctrl+S] para detener el desplegado y presionar cualquier tecla para continuar o se pueden utilizar las teclas [Ctrl+C]si se desea interrumpir el desplegado. Como la salida es muy rápida. A> COPY A:Karel. colocando el disco que lo contiene en la unidad A y el disco en el que deseamos copiarlo en la unidad B.--KARELUAMI re. sin importar su extensión. Si Prog2. es decir lo imprime.Kar Prog2. de la unidad A a la 8. *. con las mismas caracteristicas que el archivo <fuente>. sobre la unidad y directoriio vigente.Kar1todo sucede en el directorio y unidad vigente.Kar copia el contenido de ProgM a r a Prog2. Si se omite el parámetro <destino>se asume que se desea copiar un archivo o conjunto de archivos. kar B: copia el archivo ejemp/o. La especificación CON hace que el destino sea la pantalla.Kar a la impresora..niói2. A> COPY A:\padre\hijo\ejemplo.

. Addison Wesley U. Guillermo lntroducción a la computación y a la programación estructurada Ed.A. Mc Graw-Hill México.. 1986 Bibiiografía PWM 1 .de Software Ed. AWI México. Compilers Principles. Ullman.S. Limusa México. A. 1985 Sommerville. J. 1988 Levine. Sethi. Mc Graw-Hill U.D Pattis.S.A. 1984 Jamsa. 1989 Aho. Lan lngeniería. Techniques and Tools Ed. R.. Kris Using DOS 4 Ed. lntroducción gradual a la programacidn Ed.. Richard El robot Karel.

1975 Vecfra MS-DOS. Holanda.W. AI Nuenen. E. EWD. 1 . 1987 IUREJPUAMI m i d i 2 . How do w tell truths that might hurt? Ed.Ap6ndics D Dijkstra. vdumen I & 2 M e t Packard.