Examen de Fundamentos de Programación I URV 2015 · Segunda Convocatoria 2015-2016
Examen de Fundamentos de Programación I de la URV (Grado en Ingeniería Informática) 2015, Segunda Convocatoria 2015-2016: 6 problemas con solución. Gratis.
Temas del examen: Esquema de cerca amb aturada anticipada · Subprogrames: accions, funcions i pas de paràmetres · Taules unidimensionals i bidimensionals · Tipus definits per l'usuari: registres i taules de registres · Disseny del programa principal i resolució integrada de problemes
Ejercicio 1.a - Tipus definits per l'usuari: regi… · Tipus definits per l'usuari: registres i taules de registres
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
a. Diseñar la definición formal de los tipos de datos necesarios para guardar íntegramente la información de las enfermedades del fichero en pseudocódigo.
Ejercicio 1.b - Subprogrames: accions, funcions i… · Subprogrames: accions, funcions i pas de paràmetres
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
b. Escribir exclusivamente la cabecera del subprograma encargado de leer las enfermedades desde el archivo y cargarlas en la estructura de datos definida, devolviendo el número real de patologías leídas (como mucho 100).
Ejercicio 1.c.1 - Esquema de cerca amb aturada an… · Esquema de cerca amb aturada anticipada
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.1. Subprograma que reciba el nombre de un síntoma y la tabla de síntomas, y localice y retorne su código asociado (o -1 si el síntoma no figura en el catálogo). Sin imprimir por pantalla nada en su interior.
Ejercicio 1.c.2-1.c.3 - Taules unidimensionals i… · Taules unidimensionals i bidimensionals
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.
Ejercicio 1.d - Disseny del programa principal i… · Disseny del programa principal i resolució integrada de problemes
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
d. Diseñar un algoritmo principal que, coordinando los subprogramas anteriores:
Cargue los datos de síntomas y de enfermedades.
Pida al usuario un año y muestre el mensaje con el formato: xx malalties posteriors a l'any aaaa.
Pida la denominación de un síntoma e imprima en pantalla su código correspondiente o bien notifique si no existe.
Ejercicio 2 - Disseny del programa principal i re… · Disseny del programa principal i resolució integrada de problemes
Ejercicio 2 (10 puntos). Procesamiento y diagnóstico de informes médicos
Se desea analizar informes clínicos recibidos secuencialmente por el teclado para predecir si un paciente padece determinadas enfermedades en función de los síntomas citados.
La entrada está compuesta por un número indeterminado de informes que concluyen con la palabra reservada "FINAL". A su vez, el final de cada informe individual viene marcado por la palabra clave "FIINFORME". Cada informe contiene ordenadamente:
Identificación del paciente: una única palabra que agrupa apellidos y nombre (de longitud no superior a MAX_P).
Fecha: día, mes y año separados mediante espacios.
Cuerpo del informe: una secuencia indeterminada de palabras (longitud máxima de cada una: MAX_P), delimitadas por un único espacio en blanco. El texto no contendrá signos ortográficos complejos, tildes ni apóstrofes (estos han sido sustituidos por espacios).
Ejemplo de entrada:
Rivera_Josep_Maria
11 02 2013
El paciente presenta una infeccion pulmonar y respiratoria Empezo con una tos inocente y se convirtio en una fiebre alta Siente fatiga y la fiebre y las nauseas le provocaba escalofrios Al subirle la fiebre empezaron a producirse alucinaciones FIINFORME FINAL
Condiciones del problema:
En un informe no se registrarán más de 25 síntomas válidos ( MAX_SIMP_INF = 25).
No es necesario contemplar errores en la entrada.
Los síntomas hallados en el informe pueden guardarse en una tabla de códigos enteros (pudiendo estar o no repetidos).
Una enfermedad se considerará probable si al menos el 70% de sus síntomas figuran en la lista de códigos del informe.
Al término del procesamiento global, se emitirá un resumen con el total de informes analizados y la media de enfermedades probables por informe (promedio = ).
Se solicita resolver mediante diseño descendente:
a)
[1 punto] Definir la estructura de datos (constantes y tipos en pseudocódigo) para contener la información precisa de los síntomas del informe.
b)
[9 puntos] Desarrollar el algoritmo completo estructurado en subprogramas (en pseudocódigo): extracción de síntomas, diagnóstico de enfermedades probables y algoritmo principal con bucle de control de la secuencia y estadísticas finales.
También puedes estudiar por temas
Practica un tema con ejercicios de los exámenes de todos los años, mezclados.
- Disseny del programa principal i resolució integrada de problemes · 7 problemas · 55 % de que salga
- Taules unidimensionals i bidimensionals · 3 problemas · 50 % de que salga
- Tipus definits per l'usuari: registres i taules de registres · 2 problemas · 50 % de que salga
- Esquema de cerca amb aturada anticipada · 5 problemas · 35 % de que salga
- Subprogrames: accions, funcions i pas de paràmetres · 2 problemas · 35 % de que salga
- Algorismes bàsics i esquema de recorregut de seqüències · 2 problemas · 35 % de que salga
Otras convocatorias de 2015
Examen Segundo Parcial. Evaluación Continua 2015-2016 (2015)