Instrucciones cíclicas en Karel

Seguramente ya te has imaginado lo tedioso que resultaría hacer caminar 100 veces a Karel con lo que hasta ahora sabemos, pues habría que escribir 100 veces el comando avanza; | move();, cosa que resulta además poco práctico. Para hacer una o varias acciones una determinada cantidad de veces, utilizamos instrucciones repetitivas o cíclicas.

Sentencia mientras

Tomemos en cuenta primeramente que existen varios tipos de repeticiones, es decir, que las realizamos bajo diferentes circunstancias, por ejemplo, cuando llueve usamos un paraguas, pero sólo mientras llueve, pues una vez que ya terminó de llover, deja de ser necesario. Para Karel, esta idea queda muy clara y de hecho estructura muy bien este tipo de repeticiones.

Imaginemos que Karel está en algún lugar desconocido del mundo y que queremos llevarlo hasta la pared que tenga a su frente, como no sabemos qué tan lejos está la pared de Karel, tampoco podemos saber cuántas veces debemos avanzar; puede que pongamos de menos y no llegue o puede que pongamos de más y choque contra la pared. Entonces, ¿cómo saber cuántas veces avanzar? Es ahí donde llega la sentencia “mientras” a auxiliarnos. Tiene la siguiente estructura:

PascalJava

Comienza con la palabra de control mientras | while que le dice al compilador que sigue una sentencia repetitiva, seguido de una condición, luego en Pascal la palabra de control hacer y finalmente las acciones a realizar. ¿Recuerdas las condiciones que Karel puede evaluar? Pues aquí las volvemos a usar, para decirnos que mientras esa condición se cumpla, Karel realizará las acciones dichas. Por ejemplo:

PascalJava

Con la línea anterior nos aseguramos de que Karel se oriente al norte, pues estará girando mientras no tenga esa orientación (muy útil, ¿verdad?). A estas alturas seguramente has deducido cómo resolver el problema inicial:

PascalJava

¿Y qué hay de las condiciones agrupadas? Las podemos utilizar de la misma manera que con la sentencia si | if, utilizando una clausula o, u, ||, una clausula y, e, &&, e incluso también la clausula no | ! según nos convenga.

Sentencia repetir

Ahora pensemos la situación en la que conocemos exactamente la cantidad de veces que hay que realizar algo, pero son demasiadas veces como para poner las acciones esa cantidad de veces. Es entonces cuando usamos la sentencia repetir en Pascal o iterate en Java..

PascalJava

Si diseccionamos la instrucción también, encontraremos varias partes. La palabra de control repetir | iterate. La cantidad de veces que se repetirán las acciones (indicado arriba como número). Esa cantidad puede ser cualquier número mayor a \(0\). La palabra de control veces si estamos usando Pascal y las acciones a realizar. Viéndolo en un ejemplo quedaría como sigue.

PascalJava

Con el código anterior Karel tomará exactamente 12 zumbadores de la posición sobre la que está. ¿Y qué pasaría si no hay tal cantidad de zumbadores ahí? En ese caso se mostraría un mensaje de error pues Karel no puede tomar zumbadores de donde no hay. Es por eso que hay que ser muy cuidadosos con el uso de la sentencia repetir | iterate.

Ejemplos

mientras sencillo

PascalJava

repetir sencillo:

PascalJava

mientras compuesto:

PascalJava

mientras con bloque:

PascalJava

repetir con bloque:

PascalJava

Problemas sugeridos

Cita esta página

Include Poetry - Code. (2020, 4 de enero). Instrucciones cíclicas en Karel. Obtenido de https://www.include-poetry.com/Code/Karel/Instrucciones/Ciclicas/

/* Comentarios */