[ Foro de Pascal ]

Duda sobre registros en Pascal

27-Feb-2023 18:45
Invitado (Manuel)
1 Respuestas

Buenas tardes

Quisiera saber como hago para conseguir el equipo más ganador en una serie de juegos, me explico:

tengo un numero N de equipos y un numero M de juegos, ademas tengo el equipo A y el equipo B, los goles de A y los goles de B.

Mi pregunta es, teniendo estos datos, como consigo al equipo más ganador?

Muchas gracias


14-Mar-2023 23:12
Invitado (Alejandro Andrade)

Para encontrar al equipo más ganador en una serie de juegos, puedes usar un registro en Pascal para almacenar los datos de cada equipo, incluyendo el número de juegos ganados. Luego, puedes recorrer todos los juegos y actualizar el número de juegos ganados para cada equipo en función de los resultados del juego. Finalmente, puedes recorrer todos los equipos para encontrar el equipo con el mayor número de juegos ganados.

Aquí hay un ejemplo de código en Pascal para lograr esto:

program equipo_mas_ganador;

type
 Equipo = record
   nombre: string;
   juegos_ganados: integer;
 end;

var
 n, m, goles_a, goles_b, i, j: integer;
 equipo_a, equipo_b, equipo_mas_ganador: Equipo;
 equipos: array of Equipo;

begin
 // Pedir entrada de datos
 writeln('Ingrese el número de equipos: ');
 readln(n);

 SetLength(equipos, n); // asignar la longitud del arreglo de equipos

 // Pedir nombres de equipos
 for i := 0 to n-1 do
 begin
   write('Ingrese el nombre del equipo ', i+1, ': ');
   readln(equipos[i].nombre);
   equipos[i].juegos_ganados := 0; // inicializar juegos ganados a 0
 end;

 // Pedir entrada de datos de juegos y actualizar juegos ganados para cada equipo
 writeln('Ingrese los resultados de los juegos:');
 for j := 1 to m do
 begin
   write('Juego ', j, ': ');
   readln(equipo_a.nombre, goles_a, equipo_b.nombre, goles_b);

   // Actualizar juegos ganados para equipo A
   for i := 0 to n-1 do
   begin
     if equipos[i].nombre = equipo_a.nombre then
     begin
       if goles_a > goles_b then
         equipos[i].juegos_ganados := equipos[i].juegos_ganados + 1;
       break;
     end;
   end;

   // Actualizar juegos ganados para equipo B
   for i := 0 to n-1 do
   begin
     if equipos[i].nombre = equipo_b.nombre then
     begin
       if goles_b > goles_a then
         equipos[i].juegos_ganados := equipos[i].juegos_ganados + 1;
       break;
     end;
   end;
 end;

 // Encontrar equipo más ganador
 equipo_mas_ganador := equipos[0];
 for i := 1 to n-1 do
 begin
   if equipos[i].juegos_ganados > equipo_mas_ganador.juegos_ganados then
     equipo_mas_ganador := equipos[i];
 end;

 // Imprimir resultado
 writeln('El equipo más ganador es ', equipo_mas_ganador.nombre, ' con ', equipo_mas_ganador.juegos_ganados, ' juegos ganados.');
 
end.

En este ejemplo, se utiliza un arreglo dinámico de registros de equipo para almacenar los datos de cada equipo, incluyendo su nombre y el número de juegos ganados. Luego, se pide la entrada de datos para el número de equipos y sus nombres, así como para el número de juegos y los resultados de cada juego. Los resultados de los juegos se utilizan para actualizar el número de juegos ganados para cada equipo en función de los resultados del juego. inalmente, se recorre el arreglo de equipos para encontrar el equipo con el mayor número de juegos ganados y se almacena en la variable 'equipo_mas_ganador'. Si hay varios equipos con el mismo número máximo de juegos ganados, el código anterior solo devuelve el primer equipo encontrado en la lista.

Después de encontrar el equipo más ganador, el código simplemente lo imprime en la pantalla junto con el número de juegos ganados del equipo.

Espero que esto te ayude a entender cómo utilizar registros en Pascal para encontrar el equipo más ganador en una serie de juegos.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)