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.

Enunciado: Ejercicio 1.c.2-1.c.3 - Taules unidimensionals i… · Fundamentos de Programación I URV 2015

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 ›

Más ejercicios de Taules unidimensionals i bidimensionals