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.

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 ›