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.

Enunciado: Pregunta 1.b - Diseño descendente · Prácticas de programación UOC Juny 2020

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.

‹ Pregunta 1.b · Juny 2020

Más ejercicios de Diseño descendente sobre vectores de registros en lenguaje algorítmico