karel
Version:
Compilador y evaluador de Karel en javascript
80 lines (79 loc) • 3.05 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 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> 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>