Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

[C] ¿Alguien puede ayudarme?

Participa en el tema [C] ¿Alguien puede ayudarme? en el foro Programación.
Hola... Tengo que realizar uno de esos programas que son inutiles pero algo divertidos, y ...

Buscar en este tema:
 
  •  
    #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 =(.

    =)
    +
     
    0
    Me gusta
     
    | Más
  • #2 Re: ¿Alguien puede ayudarme?

    bueno ante nada la funcion en C para generar numeros aleatorios es
    iVar = (rand() % (3)); //esto genera un numero entre 0 y 2 al azar. (0,1,2) son 3 numeros

    Te recomiendo que hagas un arreglo de registros

    typedef struct{
    int iCoche ; //es un 0 si no es coche 1 si es coche
    int iVelocidad; //la velocidad de casilleros por iteracion
    //algun indicador mas..

    }regCoche;

    Bueno por iteracion vas a buscar autos en el arreglo y los vas a hacer mover a la velocidad que indican cada uno... haciendolos avanzar siempre y cuando no haya un auto llendo mas lento.

    Espero q te sirva como ayuda basica esto. Es mi rapida persepción del problema. Si lo que apunta el ejercicio este es simular la planificacion de procesos de un sistema operativo, yo tengo hecho un simulador pero basado en otra planificacion,, pero te podria servir.. Sino cualquier cosa pregunta...

    suerte
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 1 RESPUESTA
  • 409 VISTAS
  • 2 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB