Escolar Documentos
Profissional Documentos
Cultura Documentos
necesarios. Esto es muy semejante a lo que ocurra cuando definamos una instruccin que usaba otra instruccin definida antes.
El primer ejemplo anida dos instrucciones iterate para
Sembrando B
El Dr. Karelov desea colocar 10 beepers en 5 esquinas a
lo largo de una calle. Para ello, Karel debe ser programado para hacer el trabajo por l.
posicin en la que se encuentra karel y repetir esa instruccin 5 veces a travs de un iterate. Sin embargo, tambin es posible colocar un iterate . De este modo nuestr o cdigo queara como:
program() { Iterate(5) { iterate(10) putbeeper(); move(); } turnoff(); }
Cosechando C
El Dr. Karelov est complacido por el trabajo de Karel.
Por ello, le he pedido que recoja los tornillos que hay en el suelo. Hay 5 tornillos por esquina a lo largo de un cuadrado de 6 avenidas por 4 calles.
Tornillos en el cuarto.
siguiente anlisis.
Requerimos recorrer 6 avenidas para recoger los beepers
en cada avenida. Por lo tanto emplearemos un iterate, quedando nuestra primera parte del programa: program() { iterate(6) { <recogemos una avenida> } turnoff(); }
veces (una por cada esquina), en dicho ciclo debemos recoger los beepers (por ahora nos concentraremos en recorrer las avenidas unicamente) . Adems debemos emplear otro ciclo que retorne a Karel a la calle inicial y por ltimo necesitamos que Karel se coloque en una posicin similar a la inicial, solo que en la siguiente avenida.
Iterate(4) { <recogemos los beepers de la esquina correspondiente> move(); } halfturn(); iterate(4) move(); leftmove(); turnleft();
contienen beepers), es necesario que Karel de media vuelta (halfturn) se desplace 4 esquinas (iterate con las instrucciones move) y por ltimo mover a Karel a la siguiente avenida y mirando al norte.
Ya solo nos queda recoger los beepers de cada esquina,
program() { iterate(6) { iterate(4) { iterate(5) pickbepper(); move(); } halfturn(); iterate(4) move(); leftmove(); turnleft(); } turnoff(): }