Vous êtes sur la page 1sur 72

ICAREL

- UAMI

versin 2.1

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

Proyecto terminal

Contenido

Introduccin
Computadoras PC y compatibles ................................
......................................
Conceptos bsicos sobre Karel ..........................................................................
Elsistema Karel-UAMI.......................................................................................
Puesta en operacin del sistema Karel-UAMI ....................................................
Conduccin por mens ......................................................................................

1
3
5
6
7

Programas
Caractersticas del lenguaje...............................................................................
Diseo de programas.........................................................................................
La opcin pfogrema ..........................................................................................
Teclas de uso en el editor ................................................................................
Movimientos del cuTsor ....................................................................................
Manejo de instrucciones ..................................................................................
Teclas de uso general......................................................................................
Ayuda y gramtica...........................................................................................

1
6
9
12

14

16
18
19

Laberintos
La opcin Laberinto ...........................................................................................
Modos de edicin...............................................................................................
rdenes para bloques........................................................................................

Contenido

2
5
6

p6gins 1

.._I.__1.

KAREL-UAMI rersidP 2.1

I Captulo4 I
Compilacin de programas
&Que es compilar? ............................................................................................
La opcin Compilar............................................................................................

7
2

Ejecucin de programas
El robot como un esclavo ..................................................................................
7
La opcin Ejecuta .............................................................................................. 1
La opcin Robot ................................................................................................
4
Cancelacin de la ejecucin ............................................................................. . 5
Terminacin de un programa ............................................................................. 6

I Captulo6 I
Manejo de archivos
Uso de la opcin Archivos..................................................................................

Gramtica del lenguaje de alto nivel Karel

[Apndice B
Mensajes de error
EKOreS de funcionamiento .....................................
.................. ..........................
Errores de directorio o al cargar y guardar archivos ...........................................
Errores de compilacin ......................................................................................
Errores de ejecucin ..........................................................................................
Errores de posicin del robot Karel ....................................................................

1
I
2

IApndice C I
Uso de discos flexibles
Dar formato a un disco ......................................................................................
Eluso de la orden Copy.....................................................................................

2
3

IApndice D I
Bibliografa

Contenido

pgina 3

KAREL

- UAMI

versin 2.1

Captulo 7

Introuccin

@unos Ma*

Laura

I Captulo I

1
Introduccin
El sistema Karel-UAMI pretende introducir al usuario a diversos conceptos fundamentales de la computacin como son: lenguaje de alto nivel,
programa, compilacin, depuracin, etc., y por otra parte familiarizarlo
con el manejo de herramientas disponibles en los computadores, como
editores de texto, administradores de disco, informacin de ayuda y conduccin por mens, a fin de facilitar el trabajo.
La presente gua detalla las caractersticas del sistema, ofreciendo una
breve explicacin de los conceptos presentados en cada una de las secciones. Tratndose de un manual, se evita profundizar en los temas presentados; sin embargo se menciona alguna bibliografa que sea til para
aquellos que deseen ampliar los conocimientos.
Este sistema fu desarrollado para equipos IBM-PC y compatibles, por lo
cual la primera seccin dedica una rpida introduccin a dichos equipos,
presentando los puntos principales que el usuario debe tomar en cuenta
en su desempeo con el sistema Karel- UAMI. En las otras secciones de
este captulo se d una perspectiva sobre los conceptos generales referentes a Karel y el uso de este sistema.

Computadoras PC y compatibles
Con la introduccin de los microprocesadores en el mercado, las computadoras dedicadas a la investigacin o a las grandes empresas empezaron a convertirse en una herramienta de uso comn (Microcornputadoras
o Computadoras personales).

pBgina 1

IntroducciOn

- - ,

I
-

KARELUAMI v e d a 2.1

Capitulo 1

La caracterstica ms 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. Adems, el teclado, el medio
fundamental de comunicacin usuario-maquinal ha conservado casi las
mismas teclas, permitiendo estandarizar las funciones con otras PCs y
reduciendo la necesidad de recordar diversas combinaciones para la
operacin de los programas empleados.

Existen diferentes modelos de PCs, entre los cuales se encuentran:


XT

(Extended Technology)
Tienen un procesador 8086/8088, con velocidades desde 4MHz a
12MHz y en este momento es tecnologa prxima a desaparecer.

AT

(Advanced Technology)

Tienen un procesador 80286 y 80386, su velocidad llega hasta los


l6MHz y tienen capacidad de direccionar hasta 1Mb de memoria
RAM de manera directa.

Para poder manejar el sistema Karel-UAMI se debe conocer, por lo


menos los siguientes elementos de una PC, distinguibles en 2 mdulos:
O

La unidad de procesamiento: constituida por el procesador y la


memoria central. La memoria cenfrales el rea donde se encuentran
todos los datos utilizados por el procesador y donde se cargan los
programas a ejecutar. Un hecho importante es que la memoria central
es voltil, esto es, su contenido slo existe mientras el equipo se
encuentra encendido; si se desea conservar el contenido de alguna
parte de la memoria, es necesario guardarlo en una unidad de almacenamiento secundario.
Unidades de almacenamiento secundario: Se encuentran de 2
formas:
a) Unidades de disco flexible. Estas unidades utilizan los denominados diskettes o discos flexibles, almacenando hasta 1.2Mb
para discos de 5%" o 1.44Mb para discos de 3%"; pueden cambiarse fcilmente insertndolos en las unidades, siendo capaces
de leer o escribir sobre un disco en forma magntica.
b) Unidades de disco rgido. En estas unidades el medio de almacenamiento no es removible o intercambiable sino fijo, pero tiene a
cambio una gran capacidad (los hay desde 40 Mb hasta varios Gb)
y una mayor velocidad de le-ctura y escritura.

Introduccin

pagina 2

_ I

K A R E L U M versin 2.1

CepMul0 1

Algunos equipos cuentan adems con impresora. Este es un medio de


comunicacin usuario-mquina utilizado para obtener copias permanentes y legibles de la informacin introducida al computador.
Los equipos no son autnomos, es decir, un equipo no hace nada "por s
mismo". Si un equipo puede realizar alguna funcin es por un programa
bsico que lo coordina como a los dems programas y debe cargarse en
la memoria al momento de encender el equipo, pues sin l no es posible
solicitar la ejecucin de ninguna instruccin o programa. Este coordinador
recibe el nombre de Sisfema operativo.

Para utilizar un disco flexible virgen, es decir sin formato, este se procesa
antes por un programa que coloca marcas al disco para localizar los datos a grabarse en l; este proceso se conoce como formafeo y para explicarlo ms ampliamente se ha includo el Apndice C: Uso de discos
flexibles.

Conceptos bsicos sobre Karel


Karel es un robot con un conjunto de habilidades elementales para desenvolverse en su universo, el cual est constitudo por un laberinto delimitado por un muro circundante y compuesto por un espacio libre; en l
se pueden crear, borrar o mover paredes de cualquier forma y longitud
que Karel no puede penetrar; stas se utilizan para representar obstculos que Karel debe evitar. Tambin existen pequeos objetos que emiten
un sonido suave llamados Trompos Zumbadores.
Las habilidades elementales de karel son:
Avanzar
Hacia adelante en la direccin en la que esta orientado, con un paso de
longitud unitaria. Para evitar daarse a s mismo, Karel no avanza si detecta una pared frente a l.

Girar
Sobre su propio eje. Se limita a rotaciones en ngulo recto, respecto a la
posicin y orientacin actual.
Ver
Las paredes encontradas a sus cuatro costados; sin embargo su visin
es muy restringida y slo es capaz de ver una pared, si se encuentra a un
paso de lla.

KARELUAMI reisli2.1

Capitulo 1

Oir
El sonido emitido por un trompo zumbador, siempre y cuando se encuentre en la misma posicin del trompo.
Recoger

Un trompo zumbador para guardarlo en su bolsa.


Dejar
En alguna posicin del laberinto un trompo zumbador de los contenidos
en la bolsa.
Pedir

Un trompo a su universo. No debe confundirse esta habilidad con la de


tratar de recoger un trompo, pues un trompo pedido surge de la nada, se
almacena en la bolsa de Karel y no se requiere de su presencia en el laberinto, en cambio un trompo recogido debe existir en el laberinto para
guardarse en la bolsa.
Devolver

Un trompo al universo de la misma manera que puede pedrselo. No debe


confundirse esta habilidad con dejar el trompo en el piso del laberinto,
pues un trompo devuelto no aparece ni en el laberinto, ni en la bolsa.
Contar
El nmero de trompos zumbadores llevados en la bolsa, ya sean
recogidos o pedidos al universo; no existe una distincin cuando los
trompos han llegado a su bolsa.

Orientarse
Lo cual significa revisar si se encuentra apuntando o no, en direccin
norte.
La situacin actual del robot se puede obtener observando la colocacin
de Karel en el laberinto y de algunos registros internos utilizados como
medio de informacin. Todo esto se presenta en el Estado del robot,
Karel depende de esta informacin para la ejecucin de un programa.
Hasta ahora se ha visto al robot Karel, su universo y como se desenvuelve en el. Enseguida se ve el manejo del sistema Karel-UAMI, para un fcil
desempeo de los dems programas.

introduccin

pesina 4

KARELUAMI r e d o 2.1

Capitulo 1

El sistema KareI-UAMI
El sistema Karel-UAMI es un ambiente integrado para programar al robot
Karel. Con ambiente integrado se quiere decir que todas las actividades
relacionadas con la creacin, compilacin, ejecucin, depuracin y almacenamiento de programas para Karel pueden realizarse sin abandonar el
sistema.

El sistema Karel-UAMI est dividido en 6 partes, detalladas en cada uno


de los siguientes captulos. A continuacin 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, mediante el editor de programas y laberintos, mediante el editor de laberintos), son almacenados en archivos. Los
archivos son unidades lgicas a las que se les asocia un nombre especfico, normalmente designado por el usuario. En esta parte se pueden
utilizar dichos archivos para hacer una copia, tanto de los programas como de los laberintos, y mostrar al usuario los archivos contenidos en diversos directorios. Tambin en esta parte se encuentra la opcin para
salir del sistema.

Programas
Karel cuenta con un lenguaje propio para comprender las instrucciones
ordenadas por el usuario; este lenguaje se denomina de alto nivel por ser
ms expresivo y entendible para el ser humano; en esta parte se pueden
escribir los programas que utilizan dicho lenguaje; para ello la opcin
Programas consta de un editor de textos, similar al de otros sistemas
donde es posible crear, modificar y almacenar programas en lenguaje de
alto nivel para efectuar ciertas tareas con Karel. Dentro del editor tambin
se pueden agregar, eliminar o intercambiar caracteres, lneas y bloques,
los cuales son partes conformantes del texto de un programa.

Laberintos
En ella es posible crear, modificar o almacenar laberintos, donde Karel
ejecuta los programas escritos para l. Cuenta con rdenes que permiten
trazar y borrar paredes, copiar, mover o borrar bloques de paredes y
dejar o levantar los trompos zumbadores en sitios especficos, de
acuerdo a la meta que Karel debe alcanzar.

lntroduccidn

pesina 5

KAREGUAMI versin 2.1

Capltulo 1

Compilacin
Para que Karel pueda entender los programas escritos en lenguaje de
alto nivel, se traducen a un lenguaje de bajo nivel, menos expresivo para
las personas pero no para Karel; a este proceso, en computacin se le
denomina Compilacin. En esta parte se compilan los programas escritos
para Karel, quedando las instrucciones traducidas en la memoria del
sistema.

Ejecucin
La ejecucin de programas corresponde a interpretar o simular los programas escritos para Karel en un laberinto. Existen 2 tipos de ejecucin:
una automtica, que interpreta totalmente un programa en un laberinto y
otra manipulada, observndose paso a paso, tanto en el laberinto corno
en el editor de programas, la interpretacin de cada instruccin ejecutada
por Karel.

Robot
En esta parte se activan 2 opciones:
a)
b)

observar los registros utilizados por d r e l en la ejecucin I e un programa.


establecer la posicin y direccin inicial que Karel tiene al comenzar
a ejecutar un programa.

Puesta en operacin del sistema Karel-UAMI.


De acuerdo a lo explicado en la primera seccin, el usuario debe cargar
el sistema operativo, ya sea de un disco flexible o de uno rgido, y
encender el equipo. Si en el equipo existe ms de una unidad de disco
flexible, la unidad para insertar el disco es: la superior, si se encuentran
horizontales o la izquierda si se encuentran verticales. A esta unidad se
le llama la unidad A y a la otra, la unidad B. Si el equipo cuenta con disco
rgido ste se designa como unidad C. El disco con el sistema KarelUAMl contiene una copia del sistema operativo, por tanto la forma ms
simple de inicializacin es insertando el disco en la unidad de disco A y
encendiendo el equipo. Por esta alternativoa, el sistema Karel-UAMI se
ejecuta inmediatamente despus de la carga del sistema operativo.
Si ya se cuenta con el sistema operativo, en la pantalla se observa un
guin intermitente denominado cursor, para indicar la posicin dentro de

Introduccin

PdgiM 6

__
KARELUAMI versin 2.1

Capltulo 1

la pantalla y el interrogante, un mensaje para la espera de datos. La


forma como se observa es:

El interrogante indica cul es la unidad de la que se espera leer (en el


ejemplo, la unidad es la A). Si se desea cambiar la unidad de la cual se
va a leer, basta digitar adelante del interrogante la letra de la unidad deseada seguida por dos puntos y luego pulsar la tecla [Enter]. S se est
referido en la unidad C y se quiere cambiar a la A entonces se teclea:

C>A: [Enter]
con esta instruccin, el interrogante cambia a la unidad deseada. En este
momento se puede colocar el disco en dicha unidad y proceder a digitar:
A> KAREL [Enter]
para introducirse al sistema Karel-UAMI, presentndose el ambiente
principal del sistema.

Conduccin por mens


El sistema Karel-UAMI se maneja por medio de mens. Un men es una
lista de opciones a escoger. La opcin seleccionada puede realizar algn
proceso, proporcionar cierta informacin o conducir a otro men.
El sistema Karel-UAMI consta de un men principal, dentro del cual se
pueden observar las 6 partes descritas anteriormente (Achivos, Programas, Laberintos, Compilacin, Ejecutar y Robof). Cada una de ellas, con
excepcin del compilador, manda al usuario a un submen, con la posibilidad de ejecutar las distintas opciones encontradas en l eligiendo una
opcin por medio de la lnea de opcin, una franja con color distinto al del
men. La opcin elegida donde se encuentra posicionada la lnea de opcion se le denomina opci6n vigente.
Para seleccionar una opcin se requiere de las teclas de flechas encontradas en el grupo del extremo derecho del teclado; estas permiten mover
la lnea de opcin hacia arriba, hacia abajo, hacia la izquierda o hacia la
derecha para cambiar de opcin vigente. En este mismo grupo de teclas
se encuentran las teclas [Home] y [End], utilizadas para enviar el cursor
de opciones a la primera y ltima opcin del men, respectivamente.

KARELUAMi versin 2.1

Captulo 1

Una vez colocada la lnea de opcin en la orden deseada, se oprime la


tecla [Enter] (la tecla con una flecha que baja y regresa) conocida como
regreso de carro por la analoga con la mquina de escribir. Esta tecla
indica el trmino de una instruccin para poder ejecutarse.
Cuando no se quiere seleccionar ninguna opcin o si se desea regresar
al men previo, se debe oprimir la tecla [Esc], localizada en la esquina
superior izquierda o arriba del grupo del extremo derecho.
Por ltimo, existe una tecla que durante toda la ejecucin del sistema proporciona informacin relacionada con la parte donde se encuentra el
usuario; esta es la tecla [Fl], encontrada en el extremo superior izquierdo
del teclado; en el caso de los mens proporciona informacin sobre el
significado de cada opcin.
La forma del ambiente principal del sistema Karel-UAMI es la siguiente:
Li

Ksrel

UAMl

21

Figura 1-1. Ambiente principal del sistema Karel-UAMI

Introduccin

@gins 8

_I__

_--

l
_
l
_

--

.I

KAREL

UAMI
versin 2.1
*

Captulo 2

Programas

I Captulo I
L

Programas
AI escribir programas para Karel, se emplea un lenguaje diseado para
l.En este captulo la primera seccin es dedicada a describir las caractersticas del lenguaje, dando algunas sugerencias para el diseo de programas; el resto se dedica a explicar la forma de uso del editor de programas, as como el manejo de las teclas utilizadas dentro ste.

Caractersticas del lenguaje


El lenguaje de alto nivel Karel es un medio de comunicacin entre el
usuario, quien escribe el programa y el robot, quien ejecuta las instrucciones; stas son imperativas, pues ordenan al robot ejecutar una accin
especfica. Las estructuras de control se basan en los modelos tericos
de programacin estructurada, ya que son los mismos que sirvieron para
construir lenguajes como Algol, Pascaly Modula-2 entre otros.
Este tipo de estructura, aunado a la posibilidad de construir mdulos o
procedimientos especficos para resolver determinada tarea, promueven
en la persona diseadora de programas hbitos con metas cada vez ms
exigentes en su programacin pero sin llegar a problemas irresolubles,
pues la filosofa fundamental de esta forma de construccin de programas
es la misma del anlisis aristotlico: "divide y vencers"; as, los bloques
o mdulos elementales de instrucciones son correctos y su funcionamiento por complejo que sea, tendr solucin. La tabla 2-1 presenta las
instrucciones elementales de Karel, asociadas directamente con su
habilidad de movimiento:

KARELUAMi ved611 2.1

Capitulo 2

Instruccion

Avanza
Vueltalzquierda
VueitaDerecha
Recogeobjeto
Dejaobjeto
Pideobjeto
DevuelveObjeto

Significado

Avanza una posicin en la direccin de su


orientacin.
Gira 90' a su izquierda, sobre la posicin en
que se encuentre.
Gira 90' a su derecha, sobre la posicin en que
se encuentre.
Recoge un trompo en el lugar de su posicin.
Deja un trompo en el lugar de su posicin.
Pide un trompo de la nada.
Devuelve un trompo a la nada.

Tabla 2-1. Instrucciones elementales de lenguaje Karel.


El lenguaje Karel cuenta tambin con un grupo de condiciones bsicas
(ver tabla 2-2) para verificar el estado de su medio ambiente, permitiendo
a sus sentidos de.la vista, oido y tacto estar alerta para cada consulta.
Condicin

ParedEnfrente
NadaEnfrente
Paredlzquierda
Nadalzquierda
ParedDerecha
NadaDerecha
Objetosuena
Nadasuena
AlgunObjeto
NingunObjeto
DireccionNorte

La condicin es cierta si :
Karel observa una pared al frente.
Karel no observa una pared al frente.
Karel observa una pared a su izquierda.
Karel no observa una pared a su izquierda.
Karel observa una pared a su derecha.
Karel no observa una pared a su derecha.
Karel escucha el zumbido de un trompo en la
posicin donde se encuentra.
Karel no escucha el zumbido de un trompo
en la posicin donde se encuentra.
Karel tiene al menos un trompo en su bolsa.
Karel no tiene trompos en su bolsa.
Karel se encuentra orientado hacia el norte.

Tabla 2-2. Condiciones bsicas de lenguaje Karel.


Obsrvese que los objetos del ambiente son trompos zumbadores y que
la direccin norte siempre es hacia arriba, como se utiliza en un mapa.
Adems de las instrucciones bsicas y las condiciones elementales del
lenguaje, se cuenta con un conjunto de estructuras de control. Para una
mayor comprensin de esto, se har uso del concepto de gramtica,
mensionandoslo lo fundamental para comprender el tema.
Una gramtica es el estudio sistemtico de los elementos de un lenguaje,
describindose por medio de una notacin especfica. La gramtica de un

Programas

peaina 2

KARELUAMi reiba 2.1

Capitulo 2

lenguaje est constituida por reglas de produccin. Una regla de produccin tiene 2 partes: el simbolo a definir y la definicin del simbolo colocados en el siguiente orden:
simbolo a definir

(no terminal)

definicin del smbolo


(terminal o no terminal)

En cualquier gramtica existen 2 tipos de smbolos: ferminales y no ferminales. En las reglas de produccin, el smbolo a definir siempre es no
terminal y en la definicin del smbolo pueden intervenir los dos. Las expresiones del lenguaje definidas en la gramtica estn constitudas nicamente por smbolos terminales.
Las convenciones para especificar la gramtica del lenguaje Karel son:
O
0

Los smbolos no terminales se cierran entre llaves ({ }).


El smbolo flecha derecha (+) separa las partes de una regla de
produccin.
Las subexpresiones opcionales estarn encerradas entre corchetes
cuadrados ([ I).
Las definiciones alternativas, de las cuales se debe tomar una u otra,
se separan con una barra (I).
Para el caso de secuencias sucesivas, se utilizan los puntos suspensivos (...).
Los smbolos terminales se escriben textualmente y sern todo lo
que no sea un smbolo no terminal o los smbolos [ 1,Iy +.

Figura 2-1. Diagrama de flujo de la secuencia de instrucciones

Definidas las convenciones, se detallan las estructuras de control utilizando las reglas de produccin correspondientes. La primera estructura
de control es la Secuencia de lnsfrucciones y su regla de produccin es:
<Secuencia>

<Instruccin> I <Instruccin> <Secuencia>

Captulo 2

KARELUAM rer86o 2.1

Es importante notar como en esta regla, la parte de definicin contiene


nicamente smbolos no terminales; adems en el contenido del smbolo
por definir se encuentra la misma definicin, es decir la <Secuencia>. A
una definicin de este tipo se le llama recursjwa, es decir, es una regla
definida en trminos de s misma. La recursividad sirve para expresar de
manera formal, que a una instruccin le puede seguir una secuencia, la
cual es una instruccin seguida de una secuencia, ..., la cual es una instruccin seguida de una secuencia, seguida por una instruccin. Sin embargo una secuencia puede estar Constituida por una sola instruccin. El
diagrama de la <Instruccin> se muestra en la figura 2-1 y su regla de
produccin es :
<Instruccin>

<Instruccin Elementab I
<ciclo Mientras> I
<Ciclo Repite> I
<Seleccin> I
<Nombre de Tarea>

La segunda estructura de control es el Ciclo Mienfras y tiene la siguiente


regla de produccin :
<Ciclo Mientras>

Mientras <Condicin> Haz


<Secuencia>
Fin

El ciclo mientras es utilizado para llevar a cabo la ejecucin repetitiva de


una <Secuencia>, siempre y cuando se cumpla la <Condicin>, realizndose de la siguiente manera:
1.
2.
3.

Se evala la <Condicin>.
Si se cumple, se ejecuta la <Secuencia> y se regresa al paso 1; en
otro caso va al paso 3.
El ciclo termina.

El ciclo no se interrumpe si durante la ejecucin de la <Secuencia> cambia la condicin, pero si al evaluar nuevamente la <Condicin>. La figura
2-2 muestra el diagrama de flujo de esta estructura. ste debe usarse
siempre que existan acciones que se deseen ejecutar una o ms veces, si
se cumple una condicin que se evale al entrar al ciclo.

Juy

i
i
o

KARELUAMI rw86a2.1

Capltulo 2

Figura 2-2.Diagrama de flujo del ciclo mientras


La tercera estructura de control es el Ciclo Repite y tiene la siguiente regla de produccin:
<Ciclo Repite>

Repite
<Secuencia>
Hasta <Condicin>

Este ciclo se utiliza para ordenar la ejecucin repetitiva de una <Secuencia> por lo menos una vez y hasta que se cumpla la <Condicin>, entendindose de la siguiente forma:
1. Se ejecuta la <Secuencia>

2. Se evala la <Condicin>
3.

Si no se cumple, se regresa al paso 1;en otro caso el ciclo termina

La utilidad de este ciclo se da cuando el grupo de acciones debe ejecutarse al menos una vez, independientemente de si la condicin se cumple
o no. Si no se cumple la condicin, la secuencia es repetida hasta cumplirse. El diagrama de flujo se muestra en la figura 2-3.
La ltima estructura es la Seleccin y su regla de produccin es la
siguiente:
<Seleccin>

Si <Condicin> Entonces
<Secuencia>
[Otro <Secuencia>]
Fin

Obsrvese que la parte Otro <Secuencia> se encuentra encerrada entre


corchetes, indicando una subexpresin opcional.

KARELUAMI vemin2.1

Capltulo 2

I+-7

Secuencia

No

Figura 2-3. Diagrama de flujo del ciclo repite


La estructura <Seleccin>es de gran utilidad para elegir una de 2 alternativas de acciones a tomar, dependiendo del cuplimiento de cierta condicin. Cuando no se utiliza la subexpresin opcional, nicamente se especifica la <Secuencia> a ejecutarse cuando se cumpla la <Condicin> y
si no se cumple, simplemente no se ejecuta la <Secuencia>.
Si se desea especificar una accin a realizar cuando la <Condicin> no
se cumpla, es necesario usar la subexpresin de Otro, especificando una
nueva <Secuencia>a realizar. En la figura 2-4aparecen los diagramas de
flujo correspondientes a la <Seleccin>; en el diagrama de la derecha se
incluye la subexpresin opcional.
Adems de las estructuras de control, el lenguaje Karel cuenta con un
mecanismo de definjcjn de tareas. Su regla de produccin es:
<Definicin>

Aprende <Nombre de Tarea> =


<Secuencia>
Fin <Nombre de Tarea>

Como se ha explicado, la posibilidad de construir tareas por mdulos o


procedimientos especficos da mayores posibilidades de accin y flexibilidad, pues el robot con un conjunto de apenas 7 instrucciones elementales y 11condiciones bsicas, se vuelve poderoso y capaz de aprender
infinidad de tareas, que una vez aprendidas pueden ser ejecutadas tal
como si se tratara de una de sus habilidades elementales.
En la regla de produccin de una <Instruccin> se puede observar entre
sus definiciones de alternativa, el <Nombre de Tarea>; esto significa que
una vez establecida la definicin de una tarea, su ejecucin puede ser
ordenada como cualquier otra instruccin.
Conociendo ahora cada uno de los elementos integrantes del lenguaje,
se presenta la regla de produccin de un programa:

Programas

-6

KAELUAMI vert46112.1

Capltulo 2

<Programa>

-+

Programa <Nombre de Programa>


[<Lista de Definiciones>]
Comienza
<Secuencia>
Fin <Nombre de Programa>.

Es importante hacer notar que el final de esta regla de produccin es un


punto. Otra observacin relevante es el elemento opcional: <Lista de Definiciones>, cuya regla de produccin es:
<Lista de Definiciones> -+ <Definicin> I
<Definicin><Lista de Definiciones>
indicando que pueden aparecer ninguna, una o cualquier nmero de definiciones antes del bloque del programa principal:
Comienza
<Secuencia>
Fin

y en la secuencia de cada definicin, pueden aparecer invocaciones a


cualquier tarea, definida previamente en el programa. En el bloque del
programa principal es posble que aparezcan invocaciones a cualquiera
de las tareas definidas en la lista.
Las reglas de produccin para el <Nombre de Tarea> y <Nombre de
Programa> se pueden generar de las siguientes reglas de produccin:
<Nombre de Tarea>
<Nombre de Programa>
<Identificadoo
<Caracteres>
<Caracteo
<Letra>
<Digito>

-+

-+
-+
-+
-+

+
-+

<Identificador>
<Identificador>
<Caracteres> <Letra>
<Caracteol<CaracteocCaracteres>
<Letra> I <Dgito>
A ( 6 I...I Z l a I b I...I z
011 121 ...I9

Analizar estas reglas permite familiarizarse con la utilizacin de cualquier


regla de produccin. En stas se especifica que los identificadores de
tareas y programas son una secuencia de caracteres, siendo el primero
de ellos una letra y los siguientes letras o nmeros. Las reglas de produccin presentadas en esta seccin constituyen la gramtica de Karel y
se presentan resumidas en el Apndice A: Gramtica del lenguaje Karel.

Programas

PIBina 7

KAREL-UAMl veraibii2.1

Capitulo 2

1
Figura 2 4 . Diagrama de flujo de la seleccin

Diseo de programas
El diseo de programas no es una actividad ligada al computador.

Cuando se concibe un problema, se trata de alcanzar una meta para dar


solucin o se identifica el requerimiento de la informacin necesaria.
El proceso del anlisis del problema y bosquejo de la solucin es, primero
que nada, un proceso mental y posiblemente las nicas herramientas necesarias sean papel y lpiz. Hasta el momento en que el problema ha
sido entendido y se realice un programa, al menos a nivel de bloques de
instrucciones, vale la pena acercarse al computador a escribir lineas de
cdigo. El diseo de programas involucra varias etapas, las cuales se
describen brevemente a continuacin.

Planteamiento del problema


Para el caso del ambiente Karel-UAMI, esta etapa se lleva a cabo al
disear el laberinto y bosquejar la meta que se pretende alcanzar en el
recorrido.

Divisin del problema en tareas


Una vez planteado el problema, se identifican las tareas fundamentales.
Si son a su vez de tal tamao que plantean por s mismas un problema
considerable, se aplica a cada una de ellas el mismo criterio, dividindolas en tareas de un segundo nivel de complejidad, y as hasta llegar a
tareas muy faciles, planteadas en trminos de acciones elementales.

pgina 8

Programas

_
I
_

-~

" I

--

7--

KAREL-UAMl vaaih2.1

Capitulo 2

Compendio de las tareas involucradas


Este punto puede omitirse, pero en general produce programas ms
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 slo una tarea o si
las diferencias entre 2 o ms de ellas son tan pequeas 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 atensin especifica de las instrucciones requeridas.

Instrumentacin de las tareas


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

La opcin Programa
Si un programa ya fue construido, debe introducirse al sistema para hacer
posible su compilacin y ejecucin, auxilindose del editor de programas.
Para esto, se debe seleccionar del men principal la opcin Programa,
utilizando las teclas de flechas hasta llegar a la opcin u oprimiendo la
tecla bajo contraste de la palabra (P), desplegndose el submen como
se muestra en la figura 2-5.

1 Archivos

Laberinto

Chmpilar

Ejecutar

Robot

Figura 2-5. Opcin Programa del men principal


Dentro de este submen, existen 4 opciones, las cuales se analizan
enseguida con detenimiento.

KARELUAMl r d 2 . 1

Captulo 2

Creacin de un programa nuevo


Si durante la sesin no se ha creado algn programa y se desea hacerlo,
se debe elegir la opcin 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 creacin.
Karel

UAMl

2.1

Laberinto

a m

Programas
ngidn 1

PROGRAMA <lDENT>
COMIENZA
FIN <IDENT>.

.
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 opcin Programa y seleccionar la opcin Guardar, auxilindose de las teclas de flechas o presionando directamente la tecla que
corresponde a la letra en contraste. Despus 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
automticamente;si es nuevo, aparece una ventana preguntando el nombre. Esto se muestra en la figura 2-8.
Una observacin importante es que slo se guardar un programa fuente
si el usuario lo desea, pues el sistema no guarda programas automticamente.

K A R E G U M reni112.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

Edicin de un programa ya existente


Si se desea editar un programa previamente guardado en disco, se debe
elegir la opcin Cargar del men de la figura 2-5,utilizando el mismo procedimiento indicado anteriormente. AI seleccionar esta opcin 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 extensn 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, tratndose de programas editados en lenguaje Karel; entonces
se puede posicionar la lnea de opcin sobre el nombre del archivo a edi-

Programas

- - ~

pdgina 11

KARELUAMI renin2.1

Captulo 2

tar, auxilindose de las teclas de flechas o si se desea avanzar con


mayor rapidez, se puede presionar la primera letra del nombre del archivo
o utilizar saltos de pgina.

I Archivos
c

Karel

UAMl

I
Laberinto

2.1

Cbrnpilax

Ejecutar

Laberinto

~~

Robot

Figura 2-9. Ingresando el nombre del archivo a editar


Karel UAMl
Laberinto

Archivos

2.1
Cbmpilax

Ejecutar

Robot

I
I

Laberinto

RE2.M

NOMBRE21.W

NOUBRE22.KAR

NOM

NOMBRE23.M NOMBRE24.KAR

Figura 2-10. Muestra del directorio en la unidad de disco acutal

Uso de la opcin Editar


AI elegir la opcin Editar del men de la figura 2-5, se cargar en el editor

el ltimo programa que recidi en l;si durante la sesin no se ha editado


ninguno, se crear un programa nuevo utilizando el nombre auxiliar
SinNombre.Kar,como se muestra en la figura 2-6.

Teclas de uso en el editor


AI ingresar al editor de programas, se pueden observar 3 partes importantes: el Encabezado de control, el Area de trabajo y la Linea de ayuda.

KAREL-UAMI raidn2.1

Capltuio 2

El Area de trabajo es el espacio en el que se puede hacer la edicin de

progamas; en el Encabezado de control se observa el nmero de columna


y rengln, correspondientes a la posicin del cursor en el rea de trabajo
y el nombre del programa editado. Por ltimo, la Lnea de ayuda muestra
un conjunto de teclas tiles que indican, de manera general, el uso y funcionamento del editor. El funcionamiento de stas teclas en el editor es:

[Fl] AI presionar esta tecla, se obtiene en todo momento la ayuda esperada, de acuerdo a la instruccin en la cual se encuentre posicionado el cursor. Por ejemplo, si el cursor se encuentra en la
palabra PROGRAMA y se presiona la tecla [Fl], aparece una
ventana, como se muestra en la figura 2-1 1, jndicando que lo nico
que puede contener el nodo de PROGRAMA son comentarios.
Karel

Columna 1
Rengldn
PROGRAMA <DENT>
COMIENZA
FIN <IDENT>.

UAMl

2.1

1
Wm-[cJ: Comentarios
Documcntscidn
[ESC] -> Salk

Figura 2-1 1. Ayuda del editor de programas


[F5] AI presionar esta tecla se borra una instruccion o un conjunto de
instrucciones segn se desee; por ejemplo, si se desea borrar la
instruccin MIENTRAS de la figura 2-12, al oprimir la tecla [F5]
todo el cuerpo de la instruccin MIENTRAS que se encuentra
sombreado, desaparecer de ambiente. Es necesario tener cuidado de lo que se va a borrar y por ello es til el cambio de color en
la ventana de edicin de programas.
[Esc] AI oprimir esta tecla se termina la edicin de progamas, colocando
al usuario nuevamente en le men principal.

VAB] Esta tecla junto con la tecla [F4], permiten cambiar o modificar alguna instruccin. Como no existe ningn error de escritura en las

_..

_.I-

...

... .,. .

.-

KARELUAMJ venin2.l

Capltulo 2

instrucciones, slo se pueden cambiar las condiciones e instrucciones elementales en su totalidad.


Laberinto

ampila

Ejecutar

Robot

m O Q R A M A ElemDlO

COMIENZA
FIN Ejemplo.

Figura 2-12. Sombreado de una instruccin a borrar

Movimientos del cursor


Flecha arriba

Esta tecla slo permite movimientos ascendentes sobre las instrucciones


de ms a la izquierda; por ejemplo, si el cursor se encuentra posicionado
en una instruccin, slo permite moverse a la instruccin del siguiente
bloque, pero no se le permite ascender ms si no existen ms bloques
arriba de l y en caso de intentarlo nuevamente, manda un mensaje de
error.
Flecha abajo

Funciona de similar forma a la tecla de flecha arriba, pero en lugar de


permitir ascender, desciende slo en las instrucciones de ms a la
izquierda.
Flecha derecha

Esta tecla permite moverse a niveles interiores, tomando como primer


nivel las instrucciones de ms a la izquierda; por ejemplo en la figura 213, el cursor se encuentra en la instruccin PROGRAMA y al presionar la
flecha derecha el cursor se desplaza un nivel inmediato interior; en caso
de no existir un nivel interior al que se encuentra el cursor, ste no se
mueve de su posicin actual.
Flecha izquierda

Esta tecla funciona de igual forma que la flecha derecha y semejante a la


tecla de flecha arriba, pues si el cursor se encuentra en el tercer nivel, se

KAREL-UAhU renin 2.1

Capltulo 2

puede ascender al segundo nivel con slo pulsarla. AI momento de ya no


haber instruccines superiores, como es el caso de la instruccin
PROGRAMA, se manda un mensaje de error.

Archivos

Karel

UAMl

Laberinto

21 *
ampilax

Ejecutar

Robot

Figura 2-13a. Posicin inicial en el editor de programas

1Archivos

Laberinto

(ampilar

Ejecutar

Robot

COMIENZA
FIN Ejemplo.

Figura 2-13b. Posicin final al mover el cursos con la flecha derecha


En resumen, el movimiento de las teclas de flechas se realiza dentro de
un rbol de derivacin llamado rbol de usuario, reflejado en la pantalla,
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, movindose sobre los padres de los nodos en los
que se encuentra el cursor en un mismo nivel. En el caso de querer cambiar de nivel es necesario pulsar la teclas de flecha derecha o flecha
izquierda segn corresponda.

KARELUAMi reda2.1

Capitulo 2

Manejo de instrucciones
A diferencia de otros lenguajes, Kam/ contiene un editor guiado por sintaxis, es decir, el usuario puede indicar el flujo de control deseado tan
slo con oprimir ciertas teclas para llenar un programa con la rden correcta.
En este tipo de sistemas los errores sintcticos no existen debido a que la
estructura del lenguaje aparece en la pantalla de edicin. Por elk, al
usuario no se le olvidar teclear el punto final al concluir un programa,
como ocurra frecuentemente con la versin anterior o bien no olvidar
colocar el signo igual (=) frente al identificador de una instruccin
APRENDE, ya que el mismo sistema coloca la sintaxis correcta.

Estructuras de control
El lenguaje Karel cuenta con un conjunto de estructuras de control explicadas con anterioridad, las cuales se muestran en el editor de programas
con las siguientes teclas de uso:
[Alt+S] Coloca en la ventana de edicin de programas, la instruccin
completa de una Sdeccin, si el cursor se encuentra posicionado
en el lugar correcto. Por ejemplo si el cursor se encuentra en la
instruccin COMIENZA y se presionan estas teclas, marca un
error pues una seleccin no puede ir antes de la instruccin de
este tipo; por el contrario si se encuentra en cualquier instruccin
FIN y se presionan estas teclas, aparece inmediatamente la
funcin completa, como se mustra en la figura 2-14.
[Alt+O] Imprime la instruccin Otro cuando en la Seleccin es necesario
su uso.
[Alt+M] Coloca en la ventana de edicin de programas la instruccin
completa de un ciclo mientras. Trabaja de igual manera que las
teclas [Alt+S].

[Alt+R] Coloca en la ventana de edicin de programas la instruccin


completa de un ciclo repite. Trabaja de igual manera que [Alt+S].
[Alt+L] Coloca en la ventana de edicin de programas la instruccin
APRENDE, slo cuando el cursor se encuentra posicionado en la
instruccin COMIENZA o en otro APRENDE.

Programas

W
n
a 16

KAREL-UAMl v e d n 2.1

Capltulo 2

[Alt+T] Coloca en la ventana de edicin de programas la instruccin <


Idenb, utilizada para realizar llamadas a los procedimientos que
se encuentran en la parte superior de donde se deseen llamar.
[Alt+C] Coloca en la ventana de edicin de programas los comentarios
que necesite el usuario. Para salir de la edicin 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.

Figura 2-14a. Funcin Seleccin sobre la orden PROGRAMA


Karol

UAMl

21

PROGRAMA Ejemplo

Figura 2-14b. Funcin Seleccin sobre la orden SI

Instrucciones elementales
Las instrucciones elementales de Karel pueden mostrarse en cualquier
lugar del editor, excepto cuando el cursor se encuentra posicionado en
alguna instruccin COMIENZA o APRENDE; estas se presentan con las
siguientes teclas de uso:

[Alt+A]
[Alt+DJ
[Alt+l]
[Alt+B]
[Alt+J]
[Alt+PI
[Alt+V]

Imprime la instruccinAvanza
Imprime la instruccinVueltaDerecha
Imprime la instruccinVueltalzquierda
Imprime la instruccin Recogeobjeto
Imprime la instruccin Dejaobjeto
Imprime la instruccin Pideobjeto
Imprime la instruccin DevuelveObjeto

Condiciones elementales
El grupo de condiciones elementales para Karel se utilizan como una
consulta a sus sentidos del odo, tacto y vista; stas se incluyen nicamente en las estructuras de seleccin, cid0 mientras y ciclo repite, por ser
sentecias de flujo y de iteracin; en ellas se toman decisiones para seguir
el flujo del programa en cierta direccin o repetir una secuencia de instrucciones una y otra vez, dependiendo del resultado de la condicin.
Estas condiciones se presentan en la ventana de edicin 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 instruccin ParedEnfrente.


Imprime la instruccin NadaEnfrente.
Imprime la instruccin Paredlzquierda.
Imprime la instruccin Nadalzquierda.
Imprime la instruccin ParedDerecha.
imprime la instruccin NadaDerecha.
imprime la instruccinObjetosuena.
Imprime la instruccin Nadasuena.
Imprime la instruccinAlgnObjeto.
Imprime la instruccin NingnObjeto.
Imprime la instruccin DireccinNorte.

Telas de uso general


Como se ha mencionado, en el sistema Karel-UAMI, el usuario puede indicar el flujo de control deseado tan slo 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; esto slo se usa cuando se
trabaja con comentarios dentro de un programa o al asignar un nombre
para algn identificador; en tal caso se insertan los caracteres digitndolos tal como se hara en una mquina de escribir. A continuacin se
muestran las teclas tiles en el manejo de caracteres:

146231
Programas

plglir 18

KARELUAh4I red6112.1

Capitulo 2

[Enter]

Se emplea para insertar una nueva lnea, cuando el cursor


se encuentra en un comentario o cuando se desea aceptar
un identificador en alguna estructura de control.
Se utiliza para borrar el carcter que se encuentra en la
posicin del cursor, ya sea en un comentario o en un identificador.

[BkSpace]

Situada en la parte superior derecha del grupo alfabtico del


teclado (en algunos teclados est marcada con una flecha (
4))y tiene como funcin borrar el caracter precedido por el
cursor, ya sea en un comentario o en un identificador.

[E=]

Se utiliza para la terminacin de la edicin de un programa,


colocando ai usuario nuevamente en el men principal del
sistema Karel-UAMI.

Ayuda y gramtica
Existen 2 teclas que ayudan al usuario a obtener informacin rpida del
manejo de las funciones ms elementales del sistema:

[Fl] AI presionar esta tecla se obtiene una breve explicacin de las


funciones de todas las teclas involucradas en el editor.
[FZ]

AI presionar esta tecla, se presenta una versin condensada de la


gramtica del lenguaje de alto nivel de Karei, para no recwir al
manual, si es que se desea consultar la regla de produccin de algn elemento del lenguaje directamente.

KAREL

- UAMl

versin 2.1

Captulo 3

Laberintos

mmos Ma* Laura


Santos Beves Tiesa

I Captulo I

3
Laberintos
La variedad de tareas que karel puede desempear las lleva a cabo dentro de su mundo, el cual est limitado por una pared circundante, impidindole 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 tamao


y grosor para ser colocadas en alguna posicin especfica; para karel
es imposible atravezar alguna seccin de pared; stas se utilizan slo
para representar obstculos que karel debe evitar.

Trompos zumbadores: Son pequeos trompos que al girar emiten


cierto sonido; Karel puede escucharlo slo si se encuentra parado en
la misma posicin del trompo. stos no constituyen un obstculo para
karel, ya que puede pasar por encima de ellos sin percibirlos.

Todos estos elementos vistos en conjunto constituyen un Labetinfo (ver


figura 3-1). Como un programa tiene el objetivo primordial de controlar y
mover a Karel en el interior de un laberinto, entonces el buen funcionamiento de un programa depende en cierto modo, de la forma en que est
constitudo el laberinto.
t
Trompo

Pard

Karol

Zumbador

Figura 3-1. Elementos de un Laberinto.

KARELUM d n 2 . 1

Capltulo 3

La opcin Laberinto
En el men principal del sistema Karel-UAMI se encuentra la opcin Laberinto. Si se decide seleccionar esta opcin con la tecla [Enter], se pasa
a un submen con 4 opciones mas para el manejo de los laberintos. Ver
figura 3-2.Estas opciones son:
Ksrel

UAMl 2.1

' *

Figura 3-2.Submen de la opcin Laberinto.

Cargar
Esta opcin carga en el sistema Karel-UAMI algn laberinto para trabajar
sobre l; al elegir esta opcin aparece una ventana para introducir el
nombre del laberinto sobre el cual se desea trabajar. Ver figura 3-3.
Por omisin, en la ventana se presenta la instruccin:
A:\*.Lab
A:\ indica la unidad de disco de la cual se quiere cargar el laberinto y
*.Lab indica que se desea ver todos los archivos con extensin .AB encontrados en la unidad de disco indicada. Se pueden borrar estas instrucciones y poner el nombre de algn laberinto especfico.

Cuando se designa el nombre de un laberinto no existente, se crea un


nuevo laberinto con dicho nombre, o en su caso con el nombre auxiliar
SinNombreLab, al cual se le asigna un nuevo nombre cuando se guarda
en disco. Si no se recuerda el nombre del archivo puede oprimirse la tecla [Enter] con lo cual aparece una nueva ventana, como en la figura 3-4,
presentando los laberintos encontrados en el disco ledo de la unidad de

KAJlELUAMI rdn2.1

Cspltulo 3

disco indicada; se puede elegir cualquiera de ellos tan slo con posicionar la linea de opcin encima del nombre del laberinto y oprimir [Enter].

Figura 39. Ambiente para cargar un Laberinto.

Como se ha explicado con anterioridad, se puede regresar de cualquiera


de las ventanas sin efectuar ninguna tarea, presionando la tecla (Esc].

Nuevo
Esta opcin crea un nuevo laberinto con el nombre auxiliar
SinNombre.Lab. y presenta un laberinto sin nada dentro de l. Ver figura
3-5. Cuando se quiera guardar el laberinto en disco se deber asignar algn nombre diferente a ste. Es importante hacer notar que si se est
trabajando con algn laberinto y deseamos cargar o crear uno nuevo, se
debe guardar el laberinto actual antes de traer uno nuevo al editor, para
no perder las modificaciones hechas en el laberinto actual.
Karel

I ,

Dire&orio

NOYBRE21.M

UAMl 2.1

NOYBRE2.W
NOYBRE6.LAR

N0YBREB.W

___

NOYBRE4.W

NOYBRE22AAB

NOMBRE23.UB

NOYBREPCLAB

II

Figura 3-4. Laberintos encontrados en la unidad de disco actual.

Labarhitlm

prrah3

Captulo 3

Karel
Archivos

Pzograma

UAMl

KAREL-UAMl r e d & 2.1

2.1
8

Figura 3-5. Creacin de un nuevo laberinto,

Guardar
Esta opcin guarda el laberinto actual en un archivo en disco, preguntando por medio de una ventana como en la figura 3-6,si se desea o no
guardar el laberinto acutal. Si el laberinto tiene un nombre asignado, se
guarda con el mismo nombre; si el laberinto tiene asignado el nombre
auxiliar SinNombreLab, entonces se presenta una ventana para la
peticin de un nuevo nombre del laberinto y se guarda en disco. Ver
figura 3-7.

Figura 3-6. Se verifica si se desea guardar un laberinto en disco.


Como se sabe, un nombre no puede tener espacios, ni ms de 8 caracteres; debe comenzar con letra y la extensin no podr pasar de 3 caracteres, comenzando con letra tambin. Si el nombre no tiene extensin, se le
asignar por omisin la extensin .LAB correspondiente a los archivos
que almacenan laberintos.

Laberintos

&na 4

-KARELUAMJ reisibnf.1

Capitulo 3

Una observacin importante es que, slo se guarda un laberinto si el


usuario lo desea, pues el sistema no guarda laberintos automticamente
o bien al cambiar por otro laberinto.

Editar
Muestra el ltimo laberinto cargado o creado en el editor de laberintos,
incluyendo sus modificaciones realizadas. Seguir editando el mismo laberinto, a menos que se desee cargar o crear uno nuevo.
Karel

UAMl 2.1

Renombrar Archivo

Figura 3-7. Ambiente para renombrar un archivo que se desea guardar.

Modos de edicin
Dentro del editor de laberintos existen 3 modos con los cuales el cursor
se puede mover:
0

0
0

Mueve: Desplaza el cursor, sin modificar el laberinto.


Traza: Desplaza el cursor dibujando secciones de pared.
Borra: Desplaza el cursor borrando las paredes y trompos encontrados a su paso.

Las teclas para su manipulacinson:


[F9] Cambia el modo de edicin cclicamente, comenzando por mueve,
fraza y por ltimo borra, regresando al modo mueve si se oprime
nuevamente la misma tecla (al inicio de la edicin, el modo es
mueve).
[F8] Deja trompos en la posicin donde se encuentre el cursor.

KAREL-UAMI v d 6 n 2.1

Capitulo 3
-

Movimiento del cursor


Para controlar el cursor dentro del editor de laberintos, se utilizan las
siguientes teclas:

[Flechas]

Mueven el cursor una posicin en la direccin a la que


apuntan.

[PgDnl

Mueve el cursor 5 posiciones hacia abajo desde la posicin


donde se encuentre el cursor.

[PgUpI

Mueve el cursor 5 posiciones hacia arriba desde la posicin


donde se encuentre el cursor.

W
3
1

Mueve el cursor 5 posiciones hacia la derecha, desde la


posicin en donde se encuentre el cursor.

[Shit+Tab] Mueve el cursor 5 posiciones hacia la izquierda, desde la


posicin en donde se encuentre el cursor.

[Home]

Mueve el cursor a la esquina superior izquierda.

[Endl

Mueve el cursor a la esquina inferior derecha.

tE=I

Termina la edicin de un laberinto y regresa al men


principal.

IF11

Muestra la ayuda para el editor de laberintos.

Ordenes para bloques


Un bloque es un rea rectangular formada por trompos, paredes y/o
espacios vacos, el cual se puede mover, copiar o borrar slo si el bloque
se encuentra activado (es decir sombreado). Las instrucciones para manipular bloques son:

[F3]

Marca el inicio de un bloque, es decir su esquina superior


izquierda, con respecto a las coordenadas actuales del cursor.

[F4]

Marca el final de un bloque, es decir su esquina inferior derecha,


con respecto a las coordenadas actuales del cursor.

KAREGUAMI rdn2.1

Capltub 3

Cuando se marca un bloque (es decir se sombrea como en la figura 3-8)


se puede utilizar para:
Karel

AMl

2.1

Figura 3-8. Ambiente mostrando un bloque marcado.


[F5]

Copiar un bloque, colocando la esquina superior izquierda del blo-

que en la posicin actual del cursor. Si al tratar de copiar un bloque este se sale de los lmites del laberinto, se truncar. Ver figura
3-9.

Archivos

Programa

Ksrel

UAMl

2.1
Campiicu

Ejecutar

Robot

Figura 3-9. Bloque copiado.


[F6]

Labefntos

Mueve un bloque, colocando la esquina superior izquierda del bloque en la posicin actual del cursor, actualizando las coordenadas
del bloque a la nueva posicin del cursor. Si al tratar de mover un
bloque ste se sale de los limites del laberinto, se truncar. Ver
figura 3-10.

PegiM 7

Capltulo 3

Karol
Archivos

Propama

UAMl

KAREGUAMI reis(ki2.1

2.1
Cam

Figura 3-10. Movimiento de un bloque.


[F7] Borra un bloque colocando espacios en blanco en la posicin
donde se encuentra el bloque. Ver figura 3-1 1 .
Ksrsl

UAMl

2.1

Figura 3-1 1. Ambiente despus de borrar un bloque.

146231

ICAREL UAMI
versin 2.1

Captulo 4

Compilacin de programas
mmos Marn Laura
Santos *es Tresa

--

I Captulo 1
I

Compilacin de
programas
La compilacin de los programas escritos en lenguaje Karel es un
proceso muy simple de activar, pero de gran importancia para
posteriormente ejecutarlos.

Qu es compilar?
El compilador es un programa que transforma un programa escrito en
lenguaje de alto nivel, como Karel, a una serie de instrucciones en lenguaje bsico de mquina, es decir lenguaje binario.

Existen compiladores para la mayora de los lenguajes utilizados por una


computadora, pues son pocas las computadoras capaces de ejecutar
rdenes en algn lenguaje de alto nivel; de hecho las existentes hasta la
fecha slo saben manipular y ejecutar rdenes por medio de nmeros binarios; por tanto los compiladores existen debido a lo difcil que podra
resultar hacer programas como secuencias de nmeros, sin ningn significado real en el lenguaje humano.
Aunque en el sentido ms formal, la palabra compilar se refiere a agrupar
informacin de igual contexto o de naturaleza semejante, desde el enfoque cornputacional su significado es el antes mencionado: traducir
automticamente un programa escrito en lenguaje de alto nivel, a lenguaje de mquina. Lo transformacin se ejemplifica en la figura 4-1.

KAREL-UAMI rei8n2.1

Capitulo 4

LENGUAJE DE

LENGUAJE

ALTO NIVEL

MAOUINA

=b

Figura 4-1. La transformacin que provoca el compilador


Dado que un compilador conoce el lenguaje de alto nivel en trminos de
su gramtica, cualquier construccin fuera de este esquema ser
desconocida por l.A esto se le llama Error de Compi/aci&n.

Como se dijo, Karel es un robot y como tal slo puede interpretar instrucciones en lenguaje de mquina, para ello recurre al compilador, quien
traduce las instrucciones definidas en su vocabulario, es decir en su
gramtica.

La opcin Compilar
La tercera opcin del men principal del sistema Karel-UAMI es precisamente la que invoca al compilador. Si se decide seleccionar esta opcin
con la tecla [Enter],se compila el programa fuente cargado por ltima vez
en el editor de textos, mostrando una pantalla como la de la figura 4-2,
dentro de la cual se observa el nombre del programa y el nmero de
lnea que se est compilando o traduciendo.

Liness Compiladse:
7
Memoria Disponible: 38450 K

Figura 4-2. Ambiente que presenta la ventana de compilacin.


Cuando un programa se est compilando, es posible cancelar su
ejecucin oprimiendo las teclas: [Ctrl+C],provocando su terminacin .

Compilacinde progmmas

peaina 2

KAREL-UAMI vewi6n2.1

Capitulo 4

Si existe algn error en la gramtica del programa, el compilador se


detiene y lo muestra en una ventana como la de la figura 4-3, donde se
despliega una breve explicacin del error ocurrido y termina el proceso
de compilacin. Por medio del nmero de lnea compilada, mostrada durante el proceso de compilacin se puede localizar rapidamente en el
editor de textos la linea que caus problema, detectar el error y corregir-

lo.

Karel

UAMl

2.1

Laberinto

Lineas Compiladas:
7
Memoris Disponible: 38450 K

Figura 4-3. Ambiente que muestra un error de compilacin.


Si durante la sesin no se ha editado ningn programa, el compilador
tomar el programa auxiliar SinNombreXar para compilarlo, ya que es el
programa cargado por omisin al iniciar la sesin de Karel.
Cada vez que se cargue un nuevo programa, se deber compilar antes
de ejecutarse, pues en la memoria de Karel se encuentra el cdigo traducido del ltimo programa compilado o del programa SinNombre.Kar
(programa cargado por omisin) con que inicia el sistema.
El cdigo generado en la compilacin de un programa, se guarda en la
memoria de sistema y como sta existe mientras el sistema se encuentra
activo, al finalizar la sesin se elimina cualquier programa compilado
dentro del l. Por tanto es necesario compilar cada programa antes de
ejecutarse.
AI conclur la compilacin, ya sea por error, cancelacin o por una
ejecucin exitosa, se pedir al usuario presionar cualquier tecla (ver
figura 4-4); con esto se regresa al ambiente principal y se dejan en la
memoria del sistema las instrucciones necesarias para la ejecucin del
programa.

KAREL-UAhl versi6112.1

Capitulo 4

Karel

Programe

UAMl

2.1

=
r
Laberinto

Compilando
Archivo: EJemplo.Kar

Lineas Compiladas:
7
Memoria Disponible: 38450 K
Presione una tcda
II

Figura 4-4. Ambiente mostrando la terminacin de la compilacin


En el Apndice B: Mensajes de Error,se encuentran la totalidad de los
errores del sistema Karel-UAMI, incluyendo los errores ocurridos en la
compilacin.

Captulo 5

Ejecucin de programas

1 Captulo I
Ejecucin de programas
En los captulos anteriores, se explicaron todas las partes del sistema
(editar programas, crear laberintos y compilacin de programas) necesarias para la ejecucin de un programa. Enseguida se muestra el funcionamiento de la opcin jecuta que realiza este proceso.

El robot como un esclavo


Como ya se explic, Karel el robot sabe realizar un conjunto restringido
de acciones, pero no es capaz de tomar decisiones por s mismo a pesar
de ser muy eficiente y rpido en su trabajo. La nica forma de hacer trabajar a Karel es por medio de las instrucciones de un programa, es decir
un conjunto de acciones que Karel debe realizar para lograr algn objetivo especfico. En este sentido el robot es por completo un esclavo y si no
llegara a realizar el trabajo esperado, sin duda se debe a una falla en el
objetivo del programa.

La opcin Ejecuta
En el men principal del sistema se encuentra la opcin Ejecuta. AI
elegirla se despliega un submen vertical donde se puede seleccionar alguna de las siguientes alternativas: Complefamenfe, Paso a paso y Hasta
cursor. Ver figura 5-1. Estas alternativas son de gran ayuda y ventaja
para comprender el verdadero significado de una ejecucin.

AI activar cualquiera de estas opciones, seleccionndolas con la letra en

contraste o bien con la lnea de opcin y presionando [Enter], se inicia la


ejecucin del ltimo programa compilado previamente, interpretndose
dentro del ltimo laberinto cargado; adems, opcionalmente se puede in-

KARELUAMi renibn2.1

Capltub 5

dicar la posicin y orientacin inicial de Karel en el laberinto por medio de


la opcin Robot del men principal. Las diferencias entre cada opcin de
las encontradas en el submen se indican a continuacin.
Karel

UAMl

2.1

I
Figura 5-1. La opcin Ejecuta.

Completamente

El programa se ejecuta totalmente mostrando en la ventana del laberinto


el recorrido que sigue Karel al interpretar las instrucciones del programa
compilado. Ver figura 5-2. A cada momento se puede observar dentro de
la ventana del laberinto, las coordenadas y la orientacin de Karel, hasta
finalizar la ejecucin o encontrar algn error.
Ksrel

UAMl

Laberinto
Laberinto

2.1

Bmpilar

Robot

I
Figura 5-2. Ejecucin total en el laberinto.

Ejecucin cb programas

pagina 2

KARELUAMI reriiion2.1

Capltulo 5

Paso a paso y Hasta cursor


La ventaja de estas opciones es que el usuario puede darse cuenta de
cmo se ejecuta cada instruccin del programa dentro del laberinto, pues
se pueden observar los movimientos de Karel antes y despus de ejecutar cada instruccin. A esta forma de ejecutar un programa se le llama
depuracin.

AI iniciar cualquiera de estas opciones, la ventana del laberinto queda

bajo la ventana del editor de programas, mostrando las lneas editadas


por el usuario y ejecutando la primera instruccin de la parte principal del
programa, mostrada por medio de la Inea en contraste, que indica la
lnea a ejecutar, como se muestra en la figura 5-3.
Dentro de estas opciones se incluyen los movimientos del cursor en el
editor de programas, ayudando al usuario a moverse por todas las instrucciones, no importando que se estn ejecutando. Las funciones tiles
para el manejo de estas opciones son:

Figura 5-3. Ambiente presentando la linea a ejecutar.


el cursor puede moverse dentro del editor de programas
mientras se ejecuta un programa, se le puede colocar en cualquier
lnea del programa; al presionar esta tecla ejecuta todas las instrucciones encontradas a su paso, desde donde se encuentra la
linea en contraste hasta llegar a la lnea donde se encuentra el
cursor.

Como

Realiza el intercambio de ventanas del editor de texto y el laberinto; este es necesario para observar la ejecucin de una instruccin
dentro del laberinto.

K A R E L U M .e166112.1

Captulo 5

[F7] Ejecuta la instruccin de la lnea en contraste, pasando a la

siguiente lnea a ejecutar. Si en la lnea en contraste se encuentra


el nombre de una tarea, la lnea en contraste se coloca al inicio de
la tarea, mostrando as el seguimiento de cada instruccin dentro
de ella. AI finalizar la tarea, la linea en contraste contina en la
siguiente instruccin a ejecutar, desde el lugar donde fu llamada.
En caso de no haber ningn nombre de tarea, pasa a la siguiente
instruccin a ejecutar hasta terminar la ejecucin del programa.

[F8] Ejecuta la instruccin de la lnea en contraste, pasando a la


siguiente lnea a ejecutar. Si en la lnea en contraste se encuentra
el nombre de una tarea, sta se ejecuta por completo sin que el
usuario pueda ver la ejecucin de cada una de las instrucciones de
la tarea, ahorrando tiempo de ejecucin.

La opcin Robot
En el ambiente principal existe una ltima opcin denominada Robot;
dentro de ella se encuntran 2 opciones tiles en la ejecucin de un programa. Ver figura 5 4 .
Karel

UAMl

Laberinto

2.1

Cbmpilar

Ejecutar

-1

Figura 5-4. La opcin Robot.

Oculta y Despliega
Oculta o despliega la ventana de informacin la cual contiene la posicin,
orientacin y algunos otros registros que Karel utiliza al ejecutar instrucciones. Ver figura 5-5. Esta ventana se coloca sobre la ventana del laberinto y tiene la finalidad de mostrar al usuario el manejo que Karel hace
de la informacin para ejecutar instrucciones. Para aceptar y salir de estas opcines es necesario oprimir la tecla [Enter].

Ejecucinde programas

-4

Kafsl

UAMl

Laberinto

2.1

a m

KW

..r

17

KD:

Arriba

KN:

KL:

Verdsdero

Figura 5-5. Informacin utilizada por Karel en la ejecucin de un


programa.

Posicin
Presenta en la pantalla una ventana, como se muestra en la figura 5-6,
pidiendo la direccin y coordenadas iniciales donde Karel se coloca al
comenzar la ejecucin de un programa. Si no se desea utilizar esta opcin, por omisin Karel comienza la ejecucin en la columna 1 , renglon 1 ,
orientado hacia la derecha. Estas opciones son de gran ayuda si se
quiere comenzar en una posicin especfica, pero slo se pueden utilizar
antes de la ejecucin del programa.

Cancelacin de la ejecucin
Existen varias formas por las cuales una ejecucin puede cancelarse:

Ermr encontrado
Un programa puede cancelarse por haber encontrado un error al ejecutar
un programa, ya sea de ejecucin (recoger trompos donde no hay, dejar
trompos sin que Karel los tenga en su bolsa, tratar de caminar frente a
una pared, etc.) o por un error en las condiciones iniciales del programa
(no haber compilado el programa deseado, no haber cargado el laberinto
para el programa a ejecutar, etc.). Esta ltima es una de las formas de
cancelacin ms comunes en el sistema y es aqu donde el usuario debe
poner ms atencin si desea tener xito en la ejecucin de un programa.

[CW+C]
Un programa podr cancelarse si se desea, al instante de oprimir
simultneamente las teclas [Ctrl+C].Esto generalmente se utiliza cuando
se observa al robot dentro de un ciclo infinito.

K A R E L - U M r d a 2.1

Capitulo 5

Karel

UAMl

2.1

Laberinto
Posicin de Ksiel

Figura 5-6. Ventana para posicionar a Karel antes de comenzar la


ejecucin de un programa.
stas cancelaciones pueden ayudar al usuario a facilitar el manejo de la
ejecucin de un programa y una mayor eficiencia de su tiempo.

Terminacin de un programa
Sucede cuando se termina exitosamente la secuencia de instrucciones
del programa,sin encontrar errores al ejecutarlo.
La parte de ejecucin de programas tambin cuenta con ayuda, dando
una explicacin breve de cada una de las teclas presentadas en ste
captulo.

Ejecucin de programas

-6

UAMI
versin 2.1

KAREL

Captulo 6

Manejo de archivos

Qmos Mar& Laura

Santos

Wes Teresa

I Captulo

6
Manejo de archivos
Los archivos creados por el usuario, como programas fuentes y laberintos, pueden guardarse en algn tipo de almacenamiento secundario (como discos flexibles), utilizando la orden Guarda de los mens Programa y
Laberinfo. Los archivos almacenados se identifican con una extensin
propia. Elsistema Karel-UAMI le asocia a cada archivo una extensin especial si es que el usuario no lo hace. Las extensiones asignadas por el
sistema son de 3 tipos:
0

KAR
TXT
LAB

Para los archivos que guardan programas escritos para Karel.


Para los archivos que guardan los caracteres en cdigo ASCII.
Para los archivos que guardan laberintos.

Por ejemplo, si se escribe un programa llamado Duplica, el nombre completo del archivo, si ste contiene instrucciones de programa se llamar
Dup/jca.KAR y automticamente se guarda un archivo en cdigo ASCII
llamado Duplica.TXT.ste archivo no debe ser eliminado, pues almacena
la estructura principal del programa. Si se decide que el laberinto para
ejecutar el programa tenga el mismo nombre y el archivo fue realizado en
el ambiente Karel-UAMI, tendr el nombre DuplicaLAB. De esta manera
los archivos tienen el mismo nombre pero se distinguen por su extensin.

Uso de la opcin Archivos


AI seleccionar la opcin Archivos del men principal, se puede ver el
desplegado de un submen cuyo contenido se muestra en la figura 6-1.
Las opciones que contiene el submen son:

Manejo de archivos

pgina 1

Capltulo 6

KAREL-UAhi r d 6 n 2 .

CopiaProg Hace una copia de un programa en lenguaje karel a un


nuevo archivo; el nombre debe ser distinto.
CopiaLab Hace una copia de un laberinto a un archivo con nombre
distinto.
Directorio Proporciona los nombres de archivos almacenados en el directorio especificado.
Fin
Permite la salida total del sistema.
Karel

UAMl

2.1

Figura 6-1. Opciones de la orden Archivos

CopiaProg
Esta opcin permite copiar en disco el ltimo programa fuente cargado en
el editor de programas, pero con un nombre distinto al que originalmente
tiene; esta opcin es til para hacer copias exactas de los archivos y obtener respaldos. Algunas veces es necesario ya que por alguna razn la
informacin se puede daar o perder, y provocar prdida de tiempo y
trabajo invertido.
AI seleccionar esta opcin se presenta una ventana en la cual se pide el
nuevo nombre del archivo que contendr una copia de su contenido. Ver
figura 6-2; una vez ingresado el nombre, se copia automticamente al
oprimir la tecla [Enter]. Por ejemplo, si el ltimo archivo cargado en el
editor de programas se llama Corre.KAR, se debe buscar otro nombre
para la copia del archivo, como por ejemplo AuxCorre.KAR, donde ambos
archivos contendrn la misma informacin.

CopiaLab
En ella se copian laberintos, teniendo las mismas ventajas e instrucciones
antes mencionadas para la opcin anterior de los programas fuentes.

Manejo de archivos

Peina2

KARELUAMI rerpda2.

Capltulo 6

Karal

UAMl

2.1

--

Dar nombre a l nuevo archivo


N o m b r e de1 archivo:

Figura 6-2. Peticin del nombre nuevo del archivo

Directorio
AI elegir esta opcin aparece una ventana de peticin de datos, conteniendo por omisin, la direccin de donde se desea leer el directorio. Ver
figura 6-3. Se puede cambiar cuaquiera de las opciones para facilitar el
desplegado de informacin.

Se entiende por direccin la unidad de disco y posiblemente el directorio


de donde se desea leer; en ella se puede contener la siguiente infmacin ejemplificada en la siguiente gramtica:
Direccin
-+
Unidad de Disco +
Directorio
-+
Informacin
-+
Ejemplos:

Unidad de Disco:\Directorioinformacin
Letra
Nombre del directorio I [ \Directorio]
*.*)*.extensionlnombre.*Jnombre.extension

A:\MIDIREC\*.*

Indica que requiere toda la informacin dentro del directorio M/D/RC del
disco insertado en la undidad A.

B:\.iAB
Indica que requiere todos los archivos con extensin .LAB del directorio
general del drive B. En caso de no especificarse la direccin, el sistema
siempre busca la informacin general del drive A.

-3

Manejo de a r c h m

II__

_I

--

KARELUAMi r d 6 n 2 .

Captulo 6

Karel

2.1

UAMl

Directorio y nombre de Archivo

Figura 6-3. Peticin del directorio

Despus de haber indicado la direccion en la ventana de peticin, se observan los archivos contenidos en la direccin actual. Ver figura 64; sin
embargo, no se puede seleccionar ningn archivo, pues el directorio slo
est presente para hacer saber o recordar al usuario la informacin almacenada en cierta direccin.

Karel UAMl
Laberinto

1-'

Programa

2.1

Cbmp

7 Laberinto
Directorio

NOMBREl.LAB
NOMBRES.KAR
NOMBRES-TXT

NOYBRE2.LAB
NOMBRES-KAR

NOMBRELUB
NOYBRE7.PAS

NOMBRE4.U
NOMBREB-PA

d
Fin

Figura 6-4. Archivos contenidos en la direccin acutal

Esta opcin se utiliza para salir del sistema. Hay que tener precaucin al
utilizarla, pues si no se han guardado archivos de nueva creacin o modificados, se perdern las modificaciones o creaciones al salir del sistema.

KAREL = UAMI
versin 2.1

Apndices

Q m o s Marh Lawa
Santos !&yes Teresa

IApndice

Gramtica del lenguaje


de alto nivel Karel
Las siguientes convenciones se emplan para especificar la gramtica
del lenguaje de alto nivel Karel.
O

O
O

Los smbolos no terminales se encierran entre smbolos mayor y


menor que (c >).
El smbolo flecha derecha (-+) separa las partes de una regla de produccin.
Las subexpresiones opcionales estn encerradas entre corchetes
cuadrados ([ I).
Las definiciones alternativas, de las cuales se debe tomar una u otra,
se separan con el smbolo OR lgico (I)
Para las secuencias sucesivas, se utilizan los puntos suspensivos (...).
Los simbo/os terminales se escriben textualmente y sern todo lo que
no sea un simbolo no terminal o los smbolos [ 1,I y +.

La siguiente gramtica conforma el lenguaje de alto nivel Karel:


<Programa>

Programa <Nombre de Programa>


[<Lista de Definiciones>]
Comienza
<Secuencia>
Fin <Nombre de Programa>.

<Lista de Definiciones>+ <Definicin> I


<DefinicinxLista de Definicienes>

pgina 1

Gramtica del lenguaje de Alto Nivel Karel

--

_
I _
I
-

<Definicin>

<Secuencia>

+ <Instruccin> I <Instruccin> <Secuencia>

<Instruccin>

<Instruccin Elementab I
<ciclo Mientras> I
<Ciclo Repite> I
<Seleccin> I <Nombre de Tarea>

<Ciclo Mientras>

Mientras <Condicin> Haz


<Secuencia>
Fin

<Ciclo Repite>

Repite
<Secuencia>
Hasta <Condicin>

<Seleccin>

Si <Condicin> Entonces
<Secuencia>
[Otro <Secuencia> ]
Fin

Aprende <Nombre de Tarea> =


<Secuencia>
Fin <Nombre de Tarea>

<Instruccin Elemental>-+ Avanza I


Vueltalzquierda I
VueltaDerecha I
Recogeobjeto 1
Dejaobjeto I
Pideobjeto I
DevuelveObjeto I
<Condicin>

-+

ParedEnfrente I
NadaEnfrente I
Paredlzquierda I
Nadalzquierda I
ParedDerecha I
NadaDerecha I
Objetosuena I
Nadasuena I
AlgunObjeto I
NingunObjeto I
DireccionNorte I

pgina 2

Gramtica del lenguaje de Alto Nivel Ksrel

--

-_- -

_-

I -

--___.

KARELUAMi r d 6 n 2.1

Apndice A

<Nombre de Tarea> -+ <Identificadoo


<Nombre de Programa>-+ <Identificadoo
<Identificadoo

<Caracteres>I <Letra>

<Caracteres>

<Caracteo<Caracteo<caracteres>

<Caracteo

-+

<Letra> I <Dgito>

<Letra> -+ A l B I ... I Z l a I b I ... I z


<Dgito> -+ Ol1121 ...I 9

pgina 3

Gramtica del lenguaje de Alto Nivel Karel

P
.
.
.

- _____.
I

Apndice

B
Errores de funcionamiento
No es posible crear/desplegarla ventana
No es posible crear/desplegarla lnea de ayuda
La ventana del robot no se movi
No hubo cambio de ventanas

Este tipo de errores sucede cuando existen problemas de ejecucin


del sistema. Para solucionarlo es necesario ejecutar nuevamente el
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

El disco ha sido daado fsicamente (rayn, humedad, etc.).


La puerta de la unidad no se encuentra bien cerrada.
El protector contra escritura del disco (pequea etiqueta que se
coloca sobre la ranura) esta puesto.
No hay suficiente espacio en disco para guardar el archivo.

Directorio no encontrado

El directorio que se desea hacer vigente no existe.

prroine 1

Mensajes de error

1
1
1
1

_.--

_
I
-

._

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.
El archivo solicitado est protegido contra escritura.
Mal funcionamiento de la unidad de disco.

No existe el archivo
El archivo que se ha solicitado no se encuentra en la unidad y directorios actuales. Puede ser que se haya digitado mal el nombre o
puede estar en otro disco o directorio.

Errores de compilacin
Como se explic en los captulos anteriores, a diferencia de otros lenguajes, Karel contiene un editor guiado por sintxis, lo cual no permite
la existencia de errores sintcticos. Por ello el nico error de compilacin que puede existir en el sistema es:

ldentificador no declarado
Para poder invocar una tarea, sta debe definirse antes de la invocacin.

Errores de ejecucin
Identificador doblemente declarado.
Se encontr un identificador de programa o tarea que ya se haba definido previamente.

Karel quiere avanzar fuera del laberinto


Karel se encuentra en los lmites del laberinto y quiere avanzar
teniendo el muro circundante frente a l.

Karel est observando fuera del laberinto


Karel se encuentra en los lmites del laberinto y slo observa el muro
circundante.

Mensajes de error

pgina 2

I__--

Apdndice B

KARELUAMI rerridn 2.1

Existe un obstculo enfrente

Karel quiere moverse hacia donde se encuentra una pared.

No hay trompo para recoger


Karel trat de recoger un trompo de un sitio en que no lo hay.
No se puede dejar trompos
Karel no tiene trompos en su bolsa y por tanto no puede dejarlos en el
laberinto.
No hay trompos para devolver

Se le ordena a Karel devolver trompos a la nada, sin tener trompos en


su bolsa

Errores de posicin del robot Karel


Karel est colocado fuera del laberinto

Se desea colocar a Karel para que inicie la ejecucin de un programa,


fuera de los lmites del laberinto.

pgina 3

Mensajes de error

_I-*

--

_-_--

I
_

Apndice

C
I

Uso de discos flexibles


Los discos flexibles han significado un importante adelanto en los medios
magnticos de almacenamiento;han hecho posible que los computadores
cuenten con un medio de acceso aleatorio a un costo muy bajo.
Para entender lo que se quiere decir con un "medio de acceso aleatorio",
es conveniente hacer la analoga con medios de audio bastante conocidos: el cassete, el compact disk y el disco de acetato. Si se quiere escuchar la quinta meloda grabada en un disco de acetato, slo se mueve el
brazo del fongrafo sobre la quinta banda y escuchar la meloda deseada. Lo mismo sucede con el compact disk; s se quiere escuchar una
meloda, se programa el lente lector para posicionarse en el lugar
adecuado. Si por el contrario se desea escuchar la quinta meloda de un
cassete, inevitablemente se tienen que recorrer las melodas anteriores
hasta llegar a la meloda deseada y an cuando se haga con el control de
recorrido rpido, esto implica un tiempo mayor.
De la misma forma que los medios de audio, un disco flexible es mucho
ms eficiente que una cinta; sin embargo, el bajo costo econmico del
disco tiene un costo en cuidados por ser dispositivos bastante frgiles.
Algunas recomendacionespara su cuidado son:
O

0
O

No doblarlos ni sujetarlos con broches, grapas u otros objetos.


No escribir sobre ellos, a no ser con plumn de fieltro suave.
No exponerlos a altas temperaturas, humedad ni cualquier tipo de
campo magntico o electrosttico (como los que producen motores,
televisores, etctera).
Nunca tocar las partes desprotegidas del material magntico.

pgina 1

Uso de discos flexibles

--

--

- _

K A R E L U M reiai2.1

Apndice C

Jams abrir o cerrar las puertas de las unidades de disco cuando se


est grabando informacinen l.

Dar formato a un disco


Para utilizar un disco flexible virgen (es decir nuevo) es necesario procesarlo primero con un programa del sistema operativo, que le coloca una
serie de marcas, para localizar datos grabados en l. Este programa se
llama format y se encuentra en el disco del sistema operativo DOS. Para
dar formato a un disco virgen es necesario realizar los siguientes pasos:
1. Asegurarse de que el sistema operativo tiene el control. Esto sucede
cuando en la pantalla aparece el interrogante de la siguiente forma (la
letra A indica la unidad de disco vigente):

2. Colocar en la unidad de disco flexible el disco del sistema operativo


o cualquier disco que contenga el programa format.
3. Invocar el programa format, junto con el nombre de la unidad donde
se colocar el disco al que se le dar formato. Por ejemplo si se desea dar formato a un disco sobre la unidad B, 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.
solicitando que se inserte el disco virgen en la unidad indicada y se
presione la tecla [Enter]. A continuacin aparece la asignacin que
muestra el formato, que puede ser:
Head:<n> Cylinder:an>
vara entre 1y O, y an>se incrementa de O hasta 42.
en donde a>
AI terminar, si todo resulta normal, aparece el siguiente mensaje, as
como una estadstica del nmero de caracteres (bytes) que pueden
grabarse en disco:
Format Complete.

Uso de discos flexibles

psaina 2

_n_

KAREL-UAMl verp6n2.1

Apndice C

Enseguida aparece el mensaje:


System Transfered.
asegurando que copi al disco el sistema operativo, solicitado con la
opcin /s. ste elemento es opcional, pero el incluirlo da la ventaja
de poder inicializar el computadorcon ste disco.

4.

Por ltimo aparece el mensaje:


Format another (yh)?
respondiendo con la letra Y (yes), si se desea dar formato a otro
disco o N (no), si se ha terminado la operacin.

uso de la orden Copy


El disco al que se ha dado formato puede utilizarse para grabar laberintos
o programas. Si se desea transferir el sistema Karel a ste, es posible
utilizar la orden copy del sistema operativo, sin requerir del disco del
sistema operativo, ya que esta orden est permanentemente disponible
en la memoria del computador. El formato general de la orden copy es:

COPY <fuente><destino>
donde <fuente> es la especificacin del archivo o conjunto de archivos
donde se quieren copiar y <destino> es la especificacin del archivo o
conjunto de archivos en donde se desea que se haga la copia. Una especificacin de archivo est copuesta por 4 elementos:

<unidad>:\<directorio>\aiombre>.<extensn>
la <unidad> puede ser A, B o C, segn el nmero de unidades de disco
que contenga el equipo. En caso de que el disco se haya dividido en directorios y estos a su vez en subdirectorios, <directorio> especifica en
cual de estos subdirectorios se encuentra el archivo deseado, aiombre>
es el nombre del archivo y <extensin> los 3 caracteres adicionales de la
extensin del nombre del archivo.
Para especificar un conjunto de archivos, pueden emplearse los metacaracteres (todos aquellos) y 3 (sustitucin de un caracter), de tal manera
que si, por ejemplo, se desea hacer referencia a todos aquellos archivos
cuyo nombre inicie con K y su extensin sea .Karl se emplea la especifi-

Uso de discos flexibles

p6gina 3

--KARELUAMI re.nii2.1

Apndice C

cacin KtKAR y si se desean los nombres de ms de 3 caracteres con


cualquier extensin, se emplea la especificacin ???. *.
Algunos elementos se pueden omitir, si se desea emplear la unidad o directorio vigente. Si se omite el parmetro <destino>se asume que se desea copiar un archivo o conjunto de archivos, con las mismas caracteristicas que el archivo <fuente>, sobre la unidad y directoriio vigente.
Existen adems 2 especificaciones de archivos de especial inters, al
utilizarse como parmetro <destino>:
O

La especificacin LPTI (o PRN) hace que el destino de la copia del


archivo sea a la impresora.
La especificacin CON hace que el destino sea la pantalla.

Los siguiente ejemplos muestran las caractersticas antes mensionadas:


A> COPY Progl.Kar Prog2.Kar

copia el contenido de ProgM a r a Prog2.Kar1todo sucede en el directorio


y unidad vigente. Si Prog2.Kar existiera, su contenido se destruye para
ser sustituido por el de Prog1.Kar.
A> COPY A:Karel.* B:

copia todos los archivos cuyo nombre sea Karel, sin importar su extensin, de la unidad A a la 8. sta orden se utiliza para copiar el sistema
Karel, colocando el disco que lo contiene en la unidad A y el disco en el
que deseamos copiarlo en la unidad B..
A> COPY A:\padre\hijo\ejemplo.
kar B:

copia el archivo ejemp/o.kar,ubicado en el subdirectorio h/# del directorio


padre, desde la unidad A al directorio vigente de la unidad B.
A> COPY Prog1.Kar CON

muestra en la pantalla el contenido del archivo ProgtKar. Como la salida


es muy rpida, 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.
A> COPY Prog2.Kar LPTI

copia el contenido de Prog2.Kar a la impresora, es decir lo imprime.

Uso de discos flexibles

pgincl4

D
Pattis, Richard

El robot Karel, lntroduccin gradual a la programacidn


Ed. Limusa

Mxico, 1985

Sommerville, Lan

lngeniera.de Software
Ed. AWI

Mxico, 1988

Levine, Guillermo

lntroduccin a la computacin y a la programacin estructurada


Ed. Mc Graw-Hill

Mxico, 1984

Jamsa, Kris

Using DOS 4
Ed. Mc Graw-Hill
U.S.A., 1989

Aho, A., Sethi, R., Ullman, J.

Compilers Principles, Techniques and Tools


Ed. Addison Wesley
U.S.A., 1986

Bibiiografa

PWM 1

Ap6ndics D

Dijkstra, E.W.

How do w tell truths that might hurt?


Ed. EWD,

AI Nuenen, Holanda, 1975


Vecfra MS-DOS, vdumen I & 2
M e t Packard, 1987

IUREJPUAMI m i d i 2 . 1

Vous aimerez peut-être aussi