Pregunta 1.b - Diseño descendente · Prácticas de programación UOC Juny 2020
Tema: Diseño descendente sobre vectores de registros en lenguaje algorítmico · Del examen Juny (2020)
Enunciado
A partir del modelado de datos de un torneo de ajedrez, considérense las siguientes definiciones de tipos y constantes en lenguaje algorítmico:
const
MAX_PAIRINGS: integer:= 5;
MAX_ROUNDS: integer:= 9;
end const
type
tLevel = {master, advanced, medium, novice};
tResult = {whiteWins, blackWins, draw};
tDate = record
day: integer;
month: integer;
year: integer;
end record
tPlayer = record
id: integer;
name: string;
age: integer;
nacionality: string;
elo: integer;
level: tLevel;
end record
tPairing = record
idPairing: integer;
idWhitePlayer: integer;
idBlackPlayer: integer;
result: tResult;
end record
tRound = record
number: integer;
pairings: vector [MAX_PAIRINGS] of tPairing;
numPairings: integer;
numWhiteWins: integer;
numBlackWins: integer;
numDraws: integer;
end record
tChessTournament = record
name: string;
location: string;
date: tDate;
players: pointer to tPlayer;
numPlayers: integer;
rounds: vector [MAX_ROUNDS] of tRound;
numRounds: integer;
end record
end type
Se dispone de la cabecera de la función:
function level_loosers (c: tChessTournament): integer
Su propósito es computar y devolver el número total de partidas en las que el participante derrotado poseía un nivel estrictamente superior al vencedor.
b. [30%] Realiza la implementación de la función utilizando pseudocódigo algorítmico conforme a la metodología de diseño descendente. Deberán desarrollarse además todas aquellas subrutinas auxiliares que resulten necesarias en los distintos niveles de abstracción.

Solución
Según los criterios oficiales de corrección
b. [30%] Realiza la implementación de la función utilizando pseudocódigo algorítmico conforme a la metodología de diseño descendente. Deberán desarrollarse además todas aquellas subrutinas auxiliares que resulten necesarias en los distintos niveles de abstracción.
Solución: ```pseudocode function level_loosers (c: tChessTournament) : integer var i : integer; total : integer; end var total := 0; for i := 1 to c.numRounds do total := total + countRoundSurprises(c.rounds[i], c); end for; return total; end function ```
La explicación paso a paso, hecha con IA, es Premium. Premium
Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.