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

Tema: Especificación: precondiciones y postcondiciones · Del examen Prueba de síntesis. Enero de 2021 (2021)

Enunciado

Pregunta 1. Gestión de espacios de coworking mediante diseño descendente

Tomando como base el sistema de administración de un centro de trabajo compartido ( coworking), se definen los siguientes tipos de datos y constantes:

// Valores límite y tarifas base

constante

MAX_SPACES: entero = 50;

MAX_ANNEXES: entero = 3;

PRICE_TABLEFLEX: real = 50.00;

PRICE_TABLEFIX: real = 80.00;

PRICE_OFFICEFIX: real = 140.00;

fin constante

tipo

tRate = {tableFlex, tableFix, officeFix};

tWorkSpace = registro

id: entero;

area: real;

rate: tRate;

fin registro

tContractAnnex = registro

idWorkSpace: entero;

price: real;

fin registro

tContract = registro

idPartner: entero;

month: entero;

year: entero;

annexesSet: vector [1..MAX_ANNEXES] de tContractAnnex;

numAnnex: entero;

fin registro

tCoworking = registro

workSpaceSet: vector [1..MAX_SPACES] de tWorkSpace;

numWorkSpaces: entero;

contractsSet: puntero a tContract;

numContracts: entero;

fin registro

fin tipo

Se dispone del encabezado del siguiente subprograma:

function useless_workspaces (c: tCoworking): integer

El propósito de esta función consiste en computar la cantidad total de puestos de trabajo ( workspaces) que jamás han sido objeto de contratación.

a.

[10%] Detalla las precondiciones pertinentes para la función useless_workspaces, teniendo en cuenta que se asume que la entidad dispone como mínimo de un espacio dado de alta. Acompaña la respuesta con una justificación concisa (una o dos líneas).

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

Solución

Según los criterios oficiales de corrección

Precondición formal:

Solución: {c≠NIL∧c.numWorkSpaces>0}\{c \neq \mathrm{NIL} \wedge c.\mathrm{numWorkSpaces} > 0\}

Justificación:

Solución: Se exige que la estructura contenedora apunte a datos válidos inicializados y que el contador de puestos de trabajo registre al menos una unidad (c.numWorkSpaces≥1c.\mathrm{numWorkSpaces} \ge 1), cumpliendo la premisa planteada en el enunciado.

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 · Juny 2020 ›

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