Pregunta 1.a - Especificación de precondiciones · Prácticas de programación UOC Juny 2020
Tema: Especificación: precondiciones y postcondiciones · 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.
a. [10%] Especifica las precondiciones formales asociadas a la función, asumiendo que el campeonato cuenta como mínimo con una ronda disputada y que cada contrincante figura debidamente registrado en el torneo.

Solución
Según los criterios oficiales de corrección
a. [10%] Especifica las precondiciones formales asociadas a la función, asumiendo que el campeonato cuenta como mínimo con una ronda disputada y que cada contrincante figura debidamente registrado en el torneo.
Solución: Pre: {c = C ∧ 1 ≤ C.numRounds ≤ MAX_ROUNDS ∧ (∀i ∈ [1, C.numRounds] : 0 ≤ C.rounds[i].numPairings ≤ MAX_PAIRINGS) ∧ C.numPlayers > 0}
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.