[ Foro de Pascal ]

simular movimiento

05-Mar-2014 20:35
oscar gomez
3 Respuestas

Buenas noches profesor nacho.
profesor queria pedir tu ayuda en un programa que estoy realizando a traves de pascal , de simulacion, por el momento solo necesito ayuda puntual a traves de cualquier orientacion o sugerencias que puedan ayudarme.

tengo un circulo de radio R ingresado por el usuario y centrado en el origen, necesito saber cuantos movimientos realiza una particula ubicada en el origen inicialmente y que se mueve aleatoriamente, antes de salirse del circulo, me podrias orientar en como puedo controlar los movimientos aletorios y las ideas que creas convenientes para poder continuar con el programa, de momento solo me interesa un solo experimento , gracias por toda la ayuda que puedan briindarme.


06-Mar-2014 11:39
Nacho Cabanes (+31)

No acabo de entender...

¿Tienes que dibujarlo en pantalla o sólo calcularlo?  ¿Cuánto es el incremento en cada movimiento y cuánto es el radio del círculo?

En principio, basta con que en cada iteración (cada "pasada" de un bucle "for" o "while") incrementes sus coordenadas X e Y con valores aleatorios y después calcules la distancia que hay desde esas nuevas coordenadas hasta el origen (0,0), usando el teorema de Pitágoras. Si esa distancia es mayor que el radio del círculo, quiere decir que ya se habría salido de él. Y la cantidad de "pasadas" que ha dado tu bucle hasta ese momento es la cantidad de movimientos que han sido necesarios.


06-Mar-2014 15:06
oscar gomez

gracias profesor por tu atencion a mi post.
efectivamente necesito las dos cosas dibujarlo en pantalla y hacer el calculo.
como puedo decir en terminos de programacion que la particula se ha movido a la posicion(0+1,0+1)=(1,1) y luego porejemplo despues a la posicion (0,1) , luego en el tercer movimiento a la posicion(-1,1) y fnalmente a la posicion(-2,2) el cual llevaria a la perticula fuera del circulo en un caso en que el radio en este caso de mi ejemplo fuera de 2, por lo tanto se habrian necesitado tres movimientos en total.

como puedo llevar estoa  codigo profesor, si puedes hecharme una mano en seudocodigo te lo agradezco, es parte de un largo ejercicio y esta es la parte que me tiene frenado, se que es la inicial pero es que el resto ya son calculos mas faciles de programar,ademas de la parte grafica tengo tambien muchas dudas de como hacerlo si me puedes extender un poco mas tu siempre generosa y genial ayuda te lo agradezco inmensamente


15-Mar-2014 11:56
Nacho Cabanes (+31)

Con lo que tú mismo has dicho, ya tienes creado el pseudocódigo:

 
contadorMovimientos = 0
mientras x^2 + y^2 < r^2  // Si no sale del circulo
    x = x + azar(-1 a 1)
    y = y + azar(-1 a 1)
    borrar pantalla
    dibujar punto en (x,y)
    incrementar contadorMovimientos
 







(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)