Pregunta 1.a - Especificación: precondiciones y p… · Prácticas de programación UOC 2023

Tema: Especificación: precondiciones y postcondiciones · Del examen Examen Prueba de síntesis enero 2023 (2023)

Enunciado

En el marco de un software para administrar organizaciones no gubernamentales (ONGs), se dispone de las siguientes definiciones de tipos y constantes:

const

MAX_PEOPLE: integer = 100;

end const

type

tMail = record

name: string;

surname: string;

email: string;

end record

tMailList = record

elems: vector [MAX_PEOPLE] of tMail;

count: integer;

end record

tDate = record

day: integer;

month: integer;

year: integer;

end record

tPerson = record

document: string;

name: string;

surname: string;

email: string;

address: string;

city: string;

birthday: tDate;

end record

tStaff = record

elems: vector [MAX_PEOPLE] of tPerson;

count: integer;

end record

tONG = record

code: string;

name: string;

projects: tProjectData;

staff: tStaff;

campaigns: tCampaignData;

staffAvailability: tAvailabilityData;

end record

end type

Se plantea la siguiente función de cabecera:

function staff_birthdays (ong: tONG, date: tDate): tMailList

Devuelve la lista con los correos, nombres y apellidos de aquellos trabajadores o voluntarios de la organización que celebran su aniversario en la fecha especificada (en la variable date solo contienen datos significativos los campos day y month).

a)

[10%] Detalla las precondiciones formales que debe satisfacer esta función, asumiendo que al menos un miembro del equipo cumple años en dicha fecha y sin necesidad de verificar la validez intrínseca del día y mes. Acompaña con una explicación de 1 o 2 líneas.

Enunciado: Pregunta 1.a - Especificación: precondiciones y p… · Prácticas de programación UOC 2023

Solución

Según los criterios oficiales de corrección

a) Detalla las precondiciones formales que debe satisfacer esta función

Solución: ```pseudocode { ong=ONG and date=DATE and ∃i : 0 < i ≤ ONG.staff.count : ONG.staff.elems[i].birthday.month = DATE.month and ONG.staff.elems[i].birthday.day = DATE.day } ```

Acompaña con una explicación de 1 o 2 líneas.

Solución: Garantiza que al menos una persona dentro del personal activo de la organización coincide en día y mes de nacimiento con la fecha recibida por parámetro.

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 · 2023 · Pregunta 1.a · 2023 ›

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