Ejercicio 1.c.2-1.c.3 - Taules unidimensionals i… · Fundamentos de Programación I URV 2015
Tema: Taules unidimensionals i bidimensionals · Del examen Examen Segunda Convocatoria 2015-2016 (2015)
Enunciado
Subprogramas de soporte predefinidos (disponibles)
acció llegir_cadena (var c1: taula de caràcters, dim: enter, sentinella: caràcter): efectúa la lectura por teclado de una cadena hasta hallar el centinela o alcanzar la capacidad máxima dim, añadiendo el terminador '\0'.
acció copiar_cadena (c_ori: taula de caràcter, var c_destí: taula de caràcter): copia el contenido de la cadena origen en la de destino.
acció escriure_cadena (cadena: taula de caràcters): imprime la cadena indicada por el canal estándar.
funció comparar_cadenes (c1, c2: taula de caràcters) retorna booleà: evalúa la igualdad léxica sin distinguir entre mayúsculas y minúsculas (insensible a la capitalización).
Ejercicio 1. Enfermedades y síntomas
Un centro hospitalario requiere una aplicación informática para extraer estadísticas y asociar informes médicos con patologías concretas.
En primer término se dispone del catálogo de síntomas clínicos (máximo MAX_TAULA_SIMP = 1000 síntomas), caracterizados cada uno por su identificador numérico (código entero) y su denominación textual (de tamaño máximo MAX_P = 60 caracteres). Se cuenta ya con la siguiente declaración y función de lectura implementada:
constant
MAX_P:= 60;
MAX_TAULA_SIMP:= 1000;
fconst
tipus
registre simptoma_tipus és
codi: enter;
nom: taula [MAX_P] de caràcters;
fregistre
ftipus
funció llegir_simptomes (var simptomes: taula de simptoma_tipus, dim: enter) retorna enter; Por otra parte, se proporciona un archivo secundario con los registros de patologías (hasta un máximo de 100 enfermedades). Cada entrada contiene: nombre de la enfermedad (hasta MAX_P caracteres), fecha de alta o inclusión (día, mes y año), cantidad de síntomas vinculados a la patología y la relación de identificadores enteros de dichos síntomas (como máximo 10 síntomas por enfermedad). Ejemplo de formato en fichero:
PULMONIA 10/2/2013 5: 2034, 5764, 1911, 1002, 1001
MALARIA 5/5/2005 10: 1001, 994, 303, 17, 452, 987, 1023, 98, 987, 32
c.2. Subprograma que reciba un año natural y la tabla con las enfermedades almacenadas, y determine el recuento de enfermedades cuya fecha de inclusión sea estrictamente posterior al año facilitado.
c.3. Subprograma que reciba el registro de una enfermedad concreta y una lista/tabla de códigos de síntomas, y devuelva el porcentaje (sobre el total de síntomas de la enfermedad) de aquellos que se encuentran presentes en dicha tabla de códigos.

Solución
Según los criterios oficiales de corrección
c.2. Subprograma que reciba un año natural y la tabla con las enfermedades almacenadas, y determine el recuento de enfermedades cuya fecha de inclusión sea estrictamente posterior al año facilitado.
Solución: ```pseudocode funció comptar_enfermetats (e: taula_enfermetats_tipus, dim: enter, any_ref: enter) retorna enter és var i, tot: enter; fvar inici tot := 0; per (i := 0; i < dim; i := i + 1) fer si (e[i].data.any > any_ref) llavors tot := tot + 1; fsi fper retorna tot; ffunció ```
c.3. Subprograma que reciba el registro de una enfermedad concreta y una lista/tabla de códigos de síntomas, y devuelva el porcentaje (sobre el total de síntomas de la enfermedad) de aquellos que se encuentran presentes en dicha tabla de códigos.
Solución: ```pseudocode funció percentatge_simptomes (enf: enfermetat_tipus, codis_obs: taula de enters, num_obs: enter) retorna real és var i, j, coincidents: enter; trobat: booleà; fvar inici coincidents := 0; si enf.num_simptomes = 0 llavors retorna 0.0; fsi per (i := 0; i < enf.num_simptomes; i := i + 1) fer j := 0; trobat := fals; mentre (j < num_obs) i (no trobat) fer si enf.simptomes[i] = codis_obs[j] llavors trobat := cert; sino j := j + 1; fsi fmentre si trobat llavors coincidents := coincidents + 1; fsi fper retorna (coincidents * 100.0) / enf.num_simptomes; ffunció ```
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.
‹ Exercici 2 - Apartats a i b · 2023 · Exercici 1 · Examen Final. Fonaments de Programació I ›