#1 [C] ¿Alguien puede ayudarme?
Hola...
Tengo que realizar uno de esos programas que son inutiles pero algo divertidos, y me quede atrapado en el principio =(...
El programa es un proyecto del us de los ARREGLOS, aquie pongo la explicacion a ver si tienen idea de como se hace; de antemano MUCHAS GRACIAS.
Imaginen una carretera de autos que tiene solo un canal y va en un unico sentido, la carretera la representamos como un ARREGLO de numeros enteros, en cuyas casillas solo habran ceros ( 0 ) y unos ( 1 ); donde "1" significa que en esa posicion hay un carro, y "0" que esa posicion esta vacia.
Los carros se desplazan unicamente en el sentido en el que aumentan lus subindices del arreglo. Un carro puede avanzar un numero aleatorio de posiciones siempre y cuando el espacio indicado se encuentre vacio. Por ejemplo:
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Esa linea muestra un canal con 3 carros, la primera casilla de la izkierda corresponde a la primera casilla del arreglo y por lo tanto el desplazamiento se realiza de izkierda a derecha. Tanto el carro que esta mas a la izquierda como el que esta mas a la derecha tienen livertad de desplazamiento, mientras que el del medio solo puede avanzar a velocidad de una casilla por iteracion, puesto que no puede pasar por el vehiculo que esta adelante.
Para calcular el estado siguiente es preciso disponer del estado actual y de una descripcion de las velocidades individuales de cada carro; cada carro dispone de una velocidad variable de desplazamiento, la cual es generada aleatoriamente en cada iteracion. La velocidad del carro es el numero de casillas que el se movera, pero si adelante se encuentra otro carro, el solo podra avanzar hasta la casilla que se encuentra detras del carro; tal como pasa en la realidad cuando vamos en el carro y tenemos un camion delante y no lo podemos pasar, solo nos toca kedarnos alli atras y tener paciencia.
Se debe considerar que la casilla siguiente a la ultima es la primera, es decir el arrecglo forma un anillo.
Hay que simular el funcionamiento de esta carretera generando un estado inicial aleatorio. El parametro para generar el estado inicilal es una variable flotante llamada Densidad que indica cual es la proporcion de carros en el canal ( Densidad= Nº de carros / Nº de casillas ). La densidad la proporciona la persona que corre el programa, y la cantidad de casillas es el tamaño maximo de la pantalla ( 80 ). Calcular e imprimir una a una la evoluciòn del canal durante 30 iteraciones
La velocidad se selecciona de forma aleatoria en el rango ( 2 - 80 ) / 10 para el modo constante, y para el modo variable se utiliza el mismo rango pero para cada carro.
Es algo largo, pero es interesante, pero no encuentro como hacerlo =(.
=)
Tengo que realizar uno de esos programas que son inutiles pero algo divertidos, y me quede atrapado en el principio =(...
El programa es un proyecto del us de los ARREGLOS, aquie pongo la explicacion a ver si tienen idea de como se hace; de antemano MUCHAS GRACIAS.
Imaginen una carretera de autos que tiene solo un canal y va en un unico sentido, la carretera la representamos como un ARREGLO de numeros enteros, en cuyas casillas solo habran ceros ( 0 ) y unos ( 1 ); donde "1" significa que en esa posicion hay un carro, y "0" que esa posicion esta vacia.
Los carros se desplazan unicamente en el sentido en el que aumentan lus subindices del arreglo. Un carro puede avanzar un numero aleatorio de posiciones siempre y cuando el espacio indicado se encuentre vacio. Por ejemplo:
0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Esa linea muestra un canal con 3 carros, la primera casilla de la izkierda corresponde a la primera casilla del arreglo y por lo tanto el desplazamiento se realiza de izkierda a derecha. Tanto el carro que esta mas a la izquierda como el que esta mas a la derecha tienen livertad de desplazamiento, mientras que el del medio solo puede avanzar a velocidad de una casilla por iteracion, puesto que no puede pasar por el vehiculo que esta adelante.
Para calcular el estado siguiente es preciso disponer del estado actual y de una descripcion de las velocidades individuales de cada carro; cada carro dispone de una velocidad variable de desplazamiento, la cual es generada aleatoriamente en cada iteracion. La velocidad del carro es el numero de casillas que el se movera, pero si adelante se encuentra otro carro, el solo podra avanzar hasta la casilla que se encuentra detras del carro; tal como pasa en la realidad cuando vamos en el carro y tenemos un camion delante y no lo podemos pasar, solo nos toca kedarnos alli atras y tener paciencia.
Se debe considerar que la casilla siguiente a la ultima es la primera, es decir el arrecglo forma un anillo.
Hay que simular el funcionamiento de esta carretera generando un estado inicial aleatorio. El parametro para generar el estado inicilal es una variable flotante llamada Densidad que indica cual es la proporcion de carros en el canal ( Densidad= Nº de carros / Nº de casillas ). La densidad la proporciona la persona que corre el programa, y la cantidad de casillas es el tamaño maximo de la pantalla ( 80 ). Calcular e imprimir una a una la evoluciòn del canal durante 30 iteraciones
La velocidad se selecciona de forma aleatoria en el rango ( 2 - 80 ) / 10 para el modo constante, y para el modo variable se utiliza el mismo rango pero para cada carro.
Es algo largo, pero es interesante, pero no encuentro como hacerlo =(.
=)
0