UNPKG

karel

Version:

Compilador y evaluador de Karel en javascript

80 lines (79 loc) 3.05 kB
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8" /> <title>La sentencia define-nueva-instruccion/como &nbsp;</title> </head> <body style="background-image: url(./workbook.gif);"> <center> <h2>Las funciones sucede y precede</h2> </center> <p> Ahora ya sabemos como mandarle un número a un procedimiento, y probablemente ya habrás intentado poner operaciones como suma, resta o multiplicación, sin embargo lamanto decirte que ninguna de estas operaciones están soportadas en Karel. </p> <p> Por otro lado, existen dos funciones que nos permiten sumarle 1 a un número y restarle 1. </p> <p> Pero... ¿qué es una función? Una función es una instrucción que devuelve un valor, es decir, reciben un parámetro (o más) que luego procesa, para al final regresar un valor; por ejemplo, la función booleana junto-a-zumbador devuelve verdadero si Karel está parado junto a un zumbador y falso si no lo está. En Karel no se pueden declarar funciones nuevas, pero se pueden usar las que ya existen. </p> <p> Las funciones sucede y precede son dos instrucciones que reciben un parámetro, posteriormente, devuelven un número más y un número menos (respectivamente) que el que le enviamos. </p> <p>La función sucede se escribe así:</p> <p>...</p> <p>sucede(xxx);</p> <p>...</p> <p> donde xxx es un número o un parámetro, y la función precede se escribe así: </p> <p>...</p> <p>precede(xxx);</p> <p>...</p> <p>donde xxx es un número o un parámetro.</p> <p> Debido a que devuelven un número, solo nos pueden servir poniendolas en alguna instrucción o sentencia que reciba un número, como repetir/veces, otro sucede o precede o una instrucción personal que reciba un parámetro. </p> <p> Por ejemplo, el siguiente trozo de código pone n + 1 zumbadores en donde Karel se encuentra: </p> <p>...</p> <p>repetir sucede(n) veces inicio</p> <p>&nbsp;&nbsp;&nbsp;deja-zumbador;</p> <p>fin;</p> <p>...</p> <p> nota que n se "incrementa" (se le suma uno). Si en vez de sucede, pusieramos precede, Karel dejaría n - 1 zumbadores, porque la n se "decrementa" (se le quita uno) cuando se pone dentro de una función precede. </p> <p> <strong>Ejercicio 10</strong>: Escribe una nueva instrucción que reciba un número n y mueva a Karel n + 2 veces (validando el choque contra paredes), y posteriormente, coloque n - 2 zumbadores en la posición en donde está. PISTA: Usa un repetir/veces para mover a Karel y otro para colocar los zumbadores. NO se vale colocar instrucciones fuera de los ciclos repetir/veces. </p> <center> <h2>Las funciones sucede y precede</h2> <h2 align="left"><a href="Karel.html">Regresar</a></h2> </center> </body> </html>