Alumnos esta unidad requiere de mucha disciplina y concentración, tiene
dos partes esenciales que es la resolución de problemas usando una computadora
y el aprender a programar en un lenguaje de computadoras de alto nivel.
ACLARACIONES PARA ESTE TAREA.
Para esta Tarea con UN SOLO programa deben de ejecutar todos los
mundos.
A) ESCOGER UN SOLO MUNDO
B) EJECUTAR Y
C) CAPTURAR LA PANTALLA DE UN SOLO MUNDO.
(Pero prueben o mejor dicho Comprueben que sirve para todos los mundos)
UN ERROR común es hacer un programa para cada mundo y eso es
INCORRECTO. La idea de hacer un programa es, que, con un solo programa, se
resuelvan casos de la misma índole.
Capturen la pantalla de la ejecución con la tecla "Impr Pant"
como les enseñe y "peguénla en su tarea".
Actividad I.
Transcribir en el cuaderno de Informática con Tinta de color AZUL
MARINO, con letra pequeña que se ajuste al cuadro chico para que sean menos
páginas y a renglón seguido las siguientes explicaciones:
En la tarea anterior pudimos observar que Karel tiene que realizar
acciones de una en una, a esa estructura en programación se le conoce como
"SECUENCIA". Sin embargo, si nosotros requerimos que una misma
instrucción se repita podremos usar una estructura de repetición, la cual
además de ayudar a repetir nos ayudará a realizar algunas preguntas que en
programación se llaman "CONDICIONES"
RECORDEMOS QUE EN KAREL-JAVA Hay cinco comandos básicos:
move()
(avanza)
turnleft() (gira
a la izquierda)
pickbeeper() (recoge
un zumbador)
putbeeper() (deja un
zumbador)
turnoff()
(Apágate o desconéctate)
En este ejercicio incorporaremos una ESTRUCTURA DE REPETICIÓN que es el
MIENTRAS (WHILE)
La sentencia while nos permite repetir pasos mientras se cumple una
condición, y esto nos va a permitir programar a Karel para que repita varias
instrucciones.
La sentencia while tiene la forma siguiente:
|
Algoritmo
|
Código
|
|
Mientras (la Cond sea verdadera) {
Instrucciones;
}
|
while ( Cond) {
Instrucciones;
}
|
donde Cond debe ser una condición (una de las funciones booleanas
listadas abajo y escritas en la presentación), y las Instrucciones representan
cualquier número de sentencias de Karel.
Condiciones o funciones booleanas
|
"frontIsClear"
"frontIsBlocked"
"leftIsClear"
"leftIsBlocked"
"rightIsClear"
"rightIsBlocked"
|
"nextToABeeper"
"notNextToABeeper"
"anyBeepersInBeeperBag"
"noBeepersInBeeperBag" "facingNorth"
"facingSouth"
|
"facingEast"
"facingWest"
"notFacingNorth"
"notFacingSouth"
"notFacingEast"
"notFacingWest”
|
ACTIVIDAD II:
1.Transcribir Completa con Tinta de color AZUL MARINO en el Cuaderno la
Metodología de Solución de Problemas que se presenta a continuación, usar regla
para dibujar el diagrama de flujo.
2. Hacer en tu computadora, dentro de la carpeta de Karel, una carpeta
llamada "Pared" y dentro del compilador hacer 5 mundos posibles para
este problema y guardarlos en esa carpeta.
3. Hacer el programa para Karel y guardarlo también en dicha carpeta.
Actividad III. HACER LOS PROGRAMAS Y MUNDOS En el compilador de Karel .
1.En la pestaña MUNDO, Hacer un mundo y guardarlo en la carpeta que corresponda, repetir para cada mundo posible.
2. En la pestaña de PROGRAMA, transcribir el programa del ejercicio anterior, agregando sus datos en la parte superior como se explica a continuación:
En cada programa agregar en la parte superior entre COMENTARIOS válidos para Karel-Java sus datos:
class program {
(*AP_PATERNO AP_MATERNO NOMBRE*)
(*GRUPO*)
(*DESCRIPCIÓN DEL PROGRAMA*)
program() {
...
turnoff();
}
}
3. Guardar el programa terminado en la carpeta que corresponda.
4. Compilar el programa para verificar que no tenga errores, si los hay corregirlos
5. Si el programa esta correcto y compilado ir a la pestaña EJECUTAR
6. EN EJECUTAR, verificar que se tiene un mundo posible y "CORRER" el programa. Si este es correcto aparecerá una ventana de"Terminación normal"
Proceso
de razonamiento lógico
Si
ahora se desea que ayudes al Robot a caminar hasta que se encuentre en su
camino recto con un zumbador...
v ¿Que harías?
v ¿En
qué se parece este problema al anterior?
v ¿En
qué se diferencia al problema anterior?
v
¿Podrías resolverlo usando las mismas
similitudes encontradas?