karel
Version:
Compilador y evaluador de Karel en javascript
77 lines (76 loc) • 2.97 kB
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8" />
<title>La sentencia define-nueva-instruccion/como </title>
</head>
<body style="background-image: url(./workbook.gif);">
<center>
<h2>Las funciones succ y pred</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 succ y pred 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 succ se escribe así:</p>
<p>...</p>
<p>succ(xxx);</p>
<p>...</p>
<p>
donde xxx es un número o un parámetro, y la función pred se escribe así:
</p>
<p>...</p>
<p>pred(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 iterate, otro
succ o pred 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>iterate( succ(n) ) {</p>
<p> putbeeper();</p>
<p>}</p>
<p>...</p>
<p>
nota que n se "incrementa" (se le suma uno). Si en vez de succ, pusieramos
pred, Karel dejaría n - 1 zumbadores, porque la n se "decrementa" (se le
quita uno) cuando se pone dentro de una función pred.
</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 iterate para mover a Karel y otro para colocar los
zumbadores. NO se vale colocar instrucciones fuera de los ciclos iterate.
</p>
<center>
<h2>Las funciones succ y pred</h2>
<h2 align="left"><a href="KarelJAVA.html">Regresar</a></h2>
</center>
</body>
</html>