Vous êtes sur la page 1sur 2

Fundamentos de Computación ICM00794 Escuela Superior Politécnica del Litoral

Solucionario Instituto de Ciencias Matemáticas

1ra Evaluación II Término 2007-2008. Diciembre 04, 2007


Tema 1 (30 puntos) En un plano cartesiano se encuentran una
hormiga y un grano de arroz.
En cada instante de tiempo, la hormiga de manera aleatoria
intuye la dirección donde ir (arriba, abajo, derecha, izquierda), y
cuantas unidades desplazarse (entre 1 a 3) en la anterior
dirección.

Implemente un algoritmo que simule 100 instantes de tiempo


con desplazamientos de la hormiga que inicialmente se
encuentra en las coordenadas (-2,2) y un grano de arroz en las
coordenadas (10,8)
Al final indique las respuestas a las siguientes preguntas:

a. ¿La hormiga llegó al grano de arroz? d ( P1 , P2 )  ( x2  x1 ) 2  ( y2  y1 ) 2


b. Si la respuesta a la pregunta anterior es “Si”, entonces
mostrar: cuántos pasos fueron necesarios.
c. ¿La distancia más lejana en la que estuvo la hormiga
del grano de arroz?

Rúbrica: Manejo de aleatorios (5 puntos), Control de movimiento y a) (10 puntos), b) (5 puntos) y c (5 puntos). Solución integral (5
puntos)

Propuesta de Solución:
Se puede ingresar la posición inicial de la hormiga en (xh,yh) , mientras que la posición del arroz podría ser
fija (xa,ya). Como hipótesis inicial, la distancia inicial es la distancia mayor, la hormiga no ha encontrado el
grano de arroz. Se genera aleatoriamente la dirección del movimiento de la hormiga, así como la cantidad de
pasos, usando los valores para cambiar las coordenadas de la hormiga, simulando el movimiento. Luego de
cada movimiento, se revisa si las coordenadas de la hormiga y el grano de arroz son iguales, o si la nueva
distancia es la mayor de todas, para contar un turno completo, y repitiendo todo hasta que se completen los
100 turnos o se haya encontrado el grano de arroz. Se muestran los resultados.
Tarea: Realizar las modificaciones para mostrar la cantidad de pasos, no los turnos como en el ejemplo.
Descripción DIAGRAMA DE FLUJO MATLAB ver 6.5
Inicio Inicio % 1ra Evaluacion II Termino 2007
Ingreso % T1. Hormiga y arroz
Coordenada x de la
xh
hormiga xh=input('coordenada x hormiga: ');

Coordenada y de la yh yh=input('coordenada y hormiga: ');


hormiga Procedimiento
xa=10;
xa←10
Posicion del grano de
arroz en x ya=8;
Posición del grano de ya←10
arroz en y
dmayor←√(xh-xa)2+(yh-ya)2 dmayor=sqrt((xh-xa)^2+(yh-ya)^2);
La mayor distancia inicial
encontrado←0 encontrado=0;
No se ha encontrado
todavía el grano de arroz
turno←0 turno=0;
Contador de turnos
1

1Eva_IIT2007_T1_Solucion.Docx edelros@espol.edu.ec Página 1


Fundamentos de Computación ICM00794 Escuela Superior Politécnica del Litoral
Solucionario Instituto de Ciencias Matemáticas

1
Repita while ~(turno>=100 | encontrado==1)
dir←entero(aleatorio*4)+1
Aleatorio para dirección dir=fix(rand*4)+1;

Aleatorio para pasos pasos←entero(aleatorio*3)+1 pasos=fix(rand*3)+1;

Movimiento arriba V if dir==1;


dir=1
yh←yh+pasos yh=yh+pasos;
F

end
Movimiento abajo V
dir=2 if dir==2
yh←yh-pasos yh=yh-pasos;
F

end
Movimiento derecha V
dir=3 if dir==3

F xh←xh+pasos xh=xh+pasos;

end
Movimiento izquierda V
dir=4 if dir==4
F xh←xh-pasos
xh=xh-pasos;
end
Prueba hipótesis si se V
xh=xa ˄
encontró el arroz yh=ya if xh==xa & yh==ya
encontrado←1 encontrado=1;
F

end
Calculo de distancia entre
hormiga y arroz d←√(xh-xa)2+(yh-ya)2 d=sqrt((xh-xa)^2+(yh-ya)^2);

Prueba de hipótesis si la V if d>dmayor


distancia resulto mayor d>dmayor dmayor=d;
que lo anteriormente dmayor←d
F
conocido end

Cuenta turnos turno←turno+1 turno=turno+1;

F
Hasta que se completen turno>=100 v end
los turnos o se encuentre encontrado=1
el arroz V
Salida disp('estado encontrado: ');
Muestra si lo encontró encontrado disp(encontrado);

Muestra los turnos turno disp('turnos simulados: ');


disp(turno);
Muestra la distancia dmayor
mayor disp('distancia más lejana: ');
Fin disp(dmayor);
Fin
Ejecución del algoritmo: hormiga.m
>> hormiga >> hormiga
coordenada x hormiga: -2 coordenada x hormiga: -2
coordenada y hormiga: 2 coordenada y hormiga: 2
estado encontrado: 1 estado encontrado: 0
turnos simulados: 70 turnos simulados: 100
distancia más lejana: 26.2488 distancia más lejana: 43.4626

1Eva_IIT2007_T1_Solucion.Docx edelros@espol.edu.ec Página 2

Vous aimerez peut-être aussi