Hack x Crack - Comunidad de Seguridad informática

Programación => C / C++ => Mensaje iniciado por: $i$tr0 en Junio 13, 2013, 08:42:39 pm

Título: fixture
Publicado por: $i$tr0 en Junio 13, 2013, 08:42:39 pm
hola foro hice este programita para ver que tal cualquier consejo  para mejorarlo  es bien recibido
gracias
Código: [Seleccionar]
#include<stdio.h>

//definicion de funciones
void  listaEquipos(int,int,int[], int[],int[]);
void imprimirFecha(int , int [], int [],int );
void intercambio(int, int[],int[]);
void fijarEquipos(int, int[],int[]);
void fechasPares(int, int[],int[]);
void fechasImpares(int, int[],int[]);

int main(){

int num,modulo,partidosFecha,fechas,fecha;

printf("ingrese el numero de equipos : ");
scanf("%d",&num);
while(num<=2){
           system("clear");
          printf("El fixture debe realizarse para tres equipos o mas\n");
          printf("ingrese el numero de equipos : ");
          scanf("%d",&num);   
}
modulo=num % 2;
if(modulo!=0){
     num=num+1;
}

partidosFecha=num/2;
         fechas=num-1;
        int numEquipos[num];
        int locales[partidosFecha];
        int visitantes[partidosFecha];
        system("clear");       
        fecha=1;
        while( fecha<=fechas){
                  modulo=fecha%2;
                  if(fecha==1){
                         listaEquipos(num,partidosFecha,numEquipos,locales,visitantes);
                       imprimirFecha(partidosFecha,locales, visitantes,fecha);
                  }   
                 if(fecha>1 && modulo ==0){
                     intercambio(partidosFecha,locales,visitantes);
                     fechasPares(partidosFecha,locales,visitantes);
                    imprimirFecha(partidosFecha,locales, visitantes,fecha);
                }
                 if(fecha>1 && modulo !=0){
                      intercambio(partidosFecha,locales,visitantes);
                      fijarEquipos(partidosFecha,locales,visitantes);
                      fechasImpares(partidosFecha,locales,visitantes);
                     imprimirFecha(partidosFecha,locales, visitantes,fecha);
                }
                 fecha++;               
        }
printf("\n");
return 0;
}

                            //**funciones
void  listaEquipos(int num, int partidosFecha,int numEquipos[partidosFecha], int locales[partidosFecha],int visitantes[partidosFecha]){
         int i;
         for(i=0; i<num;i++){
              numEquipos[i]=i+1;
        }
         
         for(i=0; i <partidosFecha;i++){
              locales[i]=numEquipos[i];
              visitantes[i]=numEquipos[i+partidosFecha];
        }
}

void intercambio(int partidosFecha, int locales[partidosFecha], int  visitantes[partidosFecha] ){
        int i, aux;
        for(i=0; i<partidosFecha; i++){
               aux=locales[i];
              locales[i]=visitantes[i];
              visitantes[i]=aux;
       }
}
void fijarEquipos(int partidosFecha, int locales[partidosFecha], int  visitantes[partidosFecha] ){
        int i ,aux;
         for(i=partidosFecha; i==partidosFecha; i--){
             aux=locales[i-1];
            locales[i-1]=visitantes[i-2],
            visitantes[i-2]=aux;
      }
}
void fechasPares(int partidosFecha, int locales[],int visitantes[]){
        int i,j,aux;
        for(i=1; i<partidosFecha; i++){
                for(j=0;  j<partidosFecha-i; j++ ){
                       aux=locales[j],
                       locales[j]=locales[j+1],
                       locales[j+1]=aux;
               }
       }
        for(i=2; i<partidosFecha; i++){
               for(j=0; j<partidosFecha-i; j++ ){
                     aux=visitantes[j],
                     visitantes[j]=visitantes[j+1],
                     visitantes[j+1]=aux;
              }
      }             
}
void fechasImpares(int partidosFecha, int locales[],int visitantes[]){
        int i,j,aux;
        for(i=1; i<partidosFecha-1; i++){
                for(j=0;  j<partidosFecha-i; j++ ){
                       aux=locales[j],
                       locales[j]=locales[j+1],
                       locales[j+1]=aux;
               }
       }
        for(i=2; i<partidosFecha; i++){
               for(j=0; j<partidosFecha-i; j++ ){
                     aux=visitantes[j],
                     visitantes[j]=visitantes[j+1],
                     visitantes[j+1]=aux;
              }
      }         
}
void imprimirFecha(int  partidosFecha, int locales[partidosFecha], int  visitantes[partidosFecha],int fecha ){
         int i;
         printf(" Fecha %d\n",fecha);
         for(i=0; i<partidosFecha; i++){
               printf("[%d",locales[i]);
               printf("] vs [");
                printf("%d]",visitantes[i]);
                printf("\n");
         }
        printf("\n");
}

Título: Re:fixture
Publicado por: Prow en Junio 13, 2013, 08:57:05 pm
Buen aporte. ¿Qué es lo que supone que hace exactamente?

Saludos
Título: Re:fixture
Publicado por: $i$tr0 en Junio 13, 2013, 08:58:51 pm
es un fixture para hacer torneos round robin o todos contra todos
Título: Re:fixture
Publicado por: Prow en Junio 13, 2013, 09:17:29 pm
es un fixture para hacer torneos round robin o todos contra todos
Supuse que era para algo similar.

Gracias
Título: Re:fixture
Publicado por: SirValkennor_ en Junio 14, 2013, 11:05:31 pm
bastante útil, se agradece
Título: Re:fixture
Publicado por: k133 en Junio 20, 2013, 03:42:51 pm
Se agradecería que al inicio del programa se ponga una pequeña cabecera con la descripción, autor, parámetros de entrada/salida, para así saber lo que hace ;).
Título: Re:fixture
Publicado por: ravenheart en Junio 20, 2013, 09:17:00 pm
Se agradecería que en algún sitio hubiera algún comentario, para así saber lo que hace ;).

FTFY