Sunteți pe pagina 1din 4

Fundamentos de programacin

Canek vila Prez


Unidad 2. Diseo de algoritmos
Actividad 2. Diseo de un algoritmo con
estructuras selectivas
BERNARDO ROBERTO CRUZ HERNANDEZ

PROBLEMA I: La ardilla tiene que recoger una bellota y llevarla a la primer


casilla de la primera fila como se muestra en la figura 2.5 (ver archivo adjunto),
tomando en cuenta la siguiente informacin:
a) Al inicio la ardilla no tiene ninguna bellota en la boca.
b) En el tablero hay una sola bellota. Las casillas donde pueden estar se
representan con un crculo en la figura 2.5. (Archivo adjunto)
c) Existen una serie de casillas bloqueadas (las de color uniforme), en las
cuales la ardilla no puede avanzar de frente, en este caso debe girar hacia la
izquierda o derecha y posteriormente avanzar a fin de rodear dicha casilla. (Se
recomienda agregar estas acciones y es aqu donde se usar una estructura
selectiva para verificar la casilla y determinar el avance)
c) Es un error ordenar a la ardilla que recoja una bellota en una casilla cuando
esta no contiene nada pues la ardilla no sabr qu hacer (usar haybellota(),
que es una condicin lgica de una estructura selectiva).
d) En el algoritmo propuesto la ardilla busca y recoge la bellota utilizando
estructuras
selectivas
e) En el algoritmo propuesto la ardilla deja la bellota en la posicin inicial.
f) En el algoritmo propuesto la ardilla nunca recoge una bellota sin estar segura
de que en realidad est en la casilla actual.
Se requiere:

a) Realizar un algoritmo en pseudocdigo


b) Realizar un algoritmo en diagrama de flujo

Inicio
Avanza()
Giraizquierda()
Avanza()
Avanza()
Si haybellota() entonces
Recogebellota()
Giraderecha()
Giraderecha()
Avanza()
Avanza()
Giraderecha()
Avanza()
Dejabellota()
Fin
Si no
Giraizquierda()
Avanza()
Giraderecha()
Avanza()
Si haybellota() entonces
Recogebellota()
Giraderecha()
Giraderecha()
Avanza()
Giraizquierda()
Avanza()
Giraderecha()

Inicio
Avanza()
Avanza()
Giraderecha()
Avanza()
Dejabellota()
Fin
Si no
Avanza()
Giraderecha()
Avanza()
Giraizquierda()
Avanza()
Recogebellota()
Giraderecha()
Giraderecha()
Avanza()
Giraderecha()
Avanza()
recogebellot
Giraizquierda()
Avanza()
a()
Avanza()
Giraizquierda()
Giraderecha(
Avanza()
)Giraderecha()
Avanza()
Avanza()
Giraderecha(
Giraderecha()
)Avanza()
Dejabellota()
Avanza()
Fin

Avanza()
Giraizquierd
a()
Avanza()
Avanza()

Si
haybellota()entonc
es

Giraizquierd
a()
Avanza()

Giraderecha(
)
Avanza()

Avanza()
Giraderecha(
)

recogebellot
a()

Avanza()

Giraderecha(
)

dejabellota()

Giraderecha(
)
Avanza()

Fin

Si
haybellota()entonc
es
Avanza()

Giraderecha(
)
Avanza()

Giraizquierd
a()

Giraizquierd
a()

Avanza()

Avanza()

Giraderecha(
)

recogebellot
a()
Giraderecha(
)
Giraderecha(
)
Avanza()

Fin

Giraderecha(
)
Avanza()

Giraizquierd
a()
Avanza()

S-ar putea să vă placă și