C/Visual C - Calendario liguero

 
Vista:

Calendario liguero

Publicado por Jose Carlos (4 intervenciones) el 20/01/2003 17:07:15
Necesito saber el algoritmo para crear un calendario liguero, es decir, q metiendo por ejemplo 20 equipos me salieran las 38 jornadas correspondientes, muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Algoritmo para crear un calendario liguero con 20 equipos

Publicado por Alejandro (1153 intervenciones) el 28/04/2025 20:02:21
José, para crear un calendario liguero que genere 38 jornadas para 20 equipos, puedes seguir el siguiente algoritmo:

Algoritmo



1. Inicialización:
- Define el número de equipos `N = 20`.
- Crea una lista de equipos, por ejemplo: `equipos = [1, 2, ..., 20]`.
- Crea una matriz o lista para almacenar las jornadas.

2. Generación de jornadas:
- Para cada jornada `j` desde 1 hasta 38:
- Inicializa una lista vacía para la jornada actual.
- Para cada equipo `i` desde 1 hasta `N/2` (10 en este caso):
- Asigna el equipo `i` como local y el equipo `N-i+1` como visitante.
- Agrega el partido a la jornada actual en el formato `(local, visitante)`.
- Almacena la jornada actual en la lista de jornadas.

3. Rotación de equipos:
- Para las jornadas impares (1, 3, 5, ..., 37):
- Mantén el primer equipo fijo y rota los demás equipos.
- Para las jornadas pares (2, 4, 6, ..., 38):
- Mantén el primer equipo fijo y rota los demás equipos, pero invierte el local y visitante.

4. Impresión del calendario:
- Recorre la lista de jornadas y muestra los partidos de cada jornada.

Ejemplo de código en C



Aquí tienes un ejemplo básico de cómo podría verse este algoritmo en C:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
 
#define EQUIPOS 20
#define JORNADAS 38
 
void generarCalendario() {
    int partidos[JORNADAS][EQUIPOS / 2][2]; // Almacena los partidos por jornada
    int i, j;
 
    for (j = 0; j < JORNADAS; j++) {
        for (i = 0; i < EQUIPOS / 2; i++) {
            int local, visitante;
            if (j % 2 == 0) { // Jornadas impares
                local = i + 1;
                visitante = EQUIPOS - i;
            } else { // Jornadas pares
                local = EQUIPOS - i;
                visitante = i + 1;
            }
            partidos[j][i][0] = local;
            partidos[j][i][1] = visitante;
        }
    }
 
    // Imprimir el calendario
    for (j = 0; j < JORNADAS; j++) {
        printf("Jornada %d:\n", j + 1);
        for (i = 0; i < EQUIPOS / 2; i++) {
            printf("Equipo %d vs Equipo %d\n", partidos[j][i][0], partidos[j][i][1]);
        }
        printf("\n");
    }
}
 
int main() {
    generarCalendario();
    return 0;
}

Notas


- Este código es un punto de partida y puede requerir ajustes según tus necesidades específicas.
- Asegúrate de manejar adecuadamente los emparejamientos para que cada equipo juegue contra todos los demás en casa y fuera a lo largo de las 38 jornadas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar