Pregunta 1.a · Prácticas de programación UOC Juny 2020

Tema: Especificación: precondiciones y postcondiciones · Del examen Juny (2020)

Enunciado

Considerando la definición de datos de un torneo de ajedrez empleada a lo largo del curso:

const

MAX_PAIRINGS: integer:= 5;

MAX_ROUNDS: integer:= 9;

end const

type

tResult = {whiteWins, blackWins, draw};

tDate = record

day: integer;

month: integer;

year: integer;

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;

rounds: vector [MAX_ROUNDS] of tRound;

numRounds: integer;

end record

end type

Dada la cabecera de la función:

function winners_round (c: tChessTournament; num: integer): list(integer)

que debe retornar una lista con los identificadores de todos los participantes vencedores en la ronda num:

a.

[10%] Especifica las precondiciones que requiere la función, asumiendo que la ronda indicada por num existe.

Enunciado: Pregunta 1.a · Prácticas de programación UOC Juny 2020

Solución

Según los criterios oficiales de corrección

a. [10%] Especifica las precondiciones que requiere la función, asumiendo que la ronda indicada por num existe.

Solución: - `c.numRounds > 0` y `c.numRounds <= MAX_ROUNDS`. - `num > 0`. - Existe un índice `i` tal que 1≤i≤c.numRounds1 \le i \le c.numRounds con `c.rounds[i].number = num`. - Para dicha ronda, 0≤c.rounds[i].numPairings≤MAX_PAIRINGS0 \le c.rounds[i].numPairings \le MAX\_PAIRINGS.

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.a · 2021 · Pregunta 1.a - Especificación de precondiciones · Juny 2020 ›

Más ejercicios de Especificación: precondiciones y postcondiciones