Académique Documents
Professionnel Documents
Culture Documents
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: ');
1
Repita while ~(turno>=100 | encontrado==1)
dir←entero(aleatorio*4)+1
Aleatorio para dirección dir=fix(rand*4)+1;
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);
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);