Programa para hacer sorteos!

Ver el tema anterior Ver el tema siguiente Ir abajo

Programa para hacer sorteos!

Mensaje  neolukas el Dom Jun 01, 2008 12:10 am

He encontrao por fin una buena web con un sistema de sorteo para hacer calendarios deportivos, el algoritmo que utiliza es el de round robin que es un algoritmo usado para la planificacion de la CPU (que estudie en Sistemas Operativos por cierto xD), la web es esta: http://www.teamopolis.com/tools/round-robin-generator.aspx

Y ya que estoy, para quien sepa algo de programación, dejo un fichero fuente en C que serviria simplemente para generar una ronda de enfrentamientos entre una serie de equipos (siempre que sean par), el programa no tiene ningún misterio y está hecho en un momento Embarassed , pero estaba estudiando LabSSOO y preferi hacer otra cosa más facilita aunque sea del año pasado xD.

Spoiler:

Código:

#include <stdio.h>
#include <time.h>

#define NUM_EQUIPOS 20

// ---- Estructuras ----
typedef struct eq
{
    char equip[12];
}equipos;

// ----- MAIN -----
int main(int argc,char* argv[])
{
    equipos eqS[NUM_EQUIPOS];
    int numero;
    int i,n,m;
    int* vector;
    FILE* fichero;
    FILE* fich2;
   
   
    if(argc!=3)
    {
        printf("numero incorrecto de argumentos.\n");
        return 1;
    }
   
    fichero=fopen(argv[1],"r+");
    fich2=fopen(argv[2],"w");

    if(fichero==NULL)
    {
        printf("No se pudo abrir el fichero.\n");
        return 1;
    }
   
    srand(time(NULL));
   
    vector=(int *)malloc(numero*sizeof(int));
   
    for(i=0;i<numero;i++)
    {
        vector[i]=0;
    }

    for(i=0;fscanf(fichero,"%s",eqS[i].equip)!=EOF;i++);
 
    numero=i;
     
    fclose(fichero); 
   
    for(i=0;i<numero/2;i++)
    {
        do
        {
          n = rand() % numero;
        }while(vector[n]);
       
        vector[n]=1;
       
        do
        {
          m = rand() % numero;
        }while(vector[m]);
       
        vector[m]=1;   
       
        fprintf(fich2,"%s - %s\n",eqS[n].equip,eqS[m].equip);
        fflush(stdout);
    }
    free(vector);
    fclose(fich2);
}



El programa lo que hace es abrir un fichero en el que están escritos los equipos (colocados por lineas), y hace un sorteo y escribe los enfrentamientos en otro fichero de texto, el primer parametro que se le pasa es el archivo a leer y el segundo en el que se escribe, sé que es una bobada pero quizas para quien este empezando a programar le interese.

neolukas
Juvenil

Cantidad de envíos: 84
Edad: 25
Localización: Salamanca
Fecha de inscripción: 25/04/2008

Ver perfil de usuario

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

Permiso de este foro:
No puedes responder a temas en este foro.