Está en la página 1de 2

Departamento de Fundamentos de

Lenguajes y
Ciencias de la Informática
Computación Grados en Ingenierías
Industriales
18 de enero de 2024

Notas
• Se valorará el correcto uso de los conceptos tratados en la asignatura: modularización, claridad, etc.
• No está permitido el uso de elementos, tanto de bibliotecas como del lenguaje, que no hayan sido tratados en la
asignatura.
• Solo puede usarse el entorno de desarrollo, y el navegador para acceder al campus virtual. No se pueden usar apuntes,
ni acceder a ninguna otra aplicación, ni página web (incluyendo, por supuesto el correo electrónico), ni dispositivos
externos (PenDrive, almacenamiento en la nube…), ni teléfonos móviles.
• Incluya en cada fichero fuente un comentario con su nombre y el código del equipo.

EJERCICIO 1 (5.5 puntos): En este ejercicio se exige que el programa no tenga errores de compilación, y se
valorará mucho que el programa se ejecute correctamente.
Se desea desarrollar un programa para trabajar con una estructura de datos con información sobre los
investigadores galardonados con un Premio Turing. De cada premio se almacena el nombre del
investigador, el año de concesión, el país de origen y la rama de la informática donde ha trabajado. Se
sabe que no hay más de 100 premios y que en ciertos años el premio ha sido compartido por más de un
investigador.
• Defina el tipo de datos ListaPremios para almacenar la información descrita. En el campus
virtual se proporciona un esqueleto con la inicialización de una variable que contiene datos de prueba
para comprobar el correcto funcionamiento de los apartados del ejercicio.
• Desarrolle un subprograma, seleccionar_por_rama, que reciba como entrada una lista de
premios y una rama y devuelva otra lista con todos los datos de los premios de esa rama. Incluya en
el main lo necesario para probar el subprograma y mostrar por pantalla la lista de los premios de
“Lenguajes de programacion” (la cadena debe ser exactamente igual, sin acentos y con las mismas
mayúsculas y minúsculas). El resultado de la ejecución, para los datos de prueba proporcionados
debería ser:
Edsger Dijkstra, 1972, Holanda, Lenguajes de programacion
John Backus, 1977, EEUU, Lenguajes de programacion
Kenneth E. Iverson, 1979, Canada, Lenguajes de programacion
C A.R. Hoare, 1980, Reino Unido, Lenguajes de programacion
Niklaus Wirth, 1984, Suiza, Lenguajes de programacion
Peter Naur, 2005, Dinamarca, Lenguajes de programacion
Barbara Liskov, 2008, EEUU, Lenguajes de programacion

• Implemente un subprograma, nacion_mas_galardonada, que reciba como entrada una lista de


premios y devuelva el país más galardonado. Incluya en el main lo necesario para probar el
subprograma y mostrar por pantalla el país más galardonado en toda la historia de los premios Turing.
El resultado de la ejecución, para los datos de prueba proporcionados debería ser:
La nación con más premios es EEUU

EJERCICIO 2 (1 punto)
Desarrolle un programa que defina un tipo array de 10 valores enteros, y un tipo array de 10 valores
booleanos. Después de inicializar un array de cada tipo, escriba un subprograma que determine el valor
medio de los números que no están enmascarados con un valor false en la misma posición del array de
booleanos. Escriba la salida del programa como en el siguiente ejemplo (la media de 7, 3, 0, 7, 7 es 4.8):

Números: 7 3 0 4 3 0 2 7 7 0
Máscara: T F F F T T F T T F
La media de los números no enmascarados vale 4.8
EJERCICIO 3 (3.5 puntos)
En este ejercicio, una matriz cuadrada de booleanos representará un crucigrama, donde un true en la
matriz representará una celda blanca del crucigrama y un false una celda negra (véase la Figura 1).

𝑇𝑇 𝑇𝑇 𝐹𝐹 𝑇𝑇 𝑇𝑇
⎛𝑇𝑇 𝐹𝐹 𝑇𝑇 𝑇𝑇 𝑇𝑇⎞
⎜𝑇𝑇 𝑇𝑇 𝑇𝑇 𝑇𝑇 𝑇𝑇⎟
𝑇𝑇 𝑇𝑇 𝐹𝐹 𝐹𝐹 𝑇𝑇
⎝ 𝐹𝐹 𝑇𝑇 𝑇𝑇 𝑇𝑇 𝑇𝑇⎠

La matriz de la izquierda representa el crucigrama de la derecha.


Figura 1

Se pide escribir un programa que, dada una matriz que representa un crucigrama, lea de teclado una
longitud k, y muestre en pantalla cuántas palabras horizontales de longitud k hay en el crucigrama. Por
ejemplo, para la matriz de la Figura 1, algunos ejemplos de ejecución del programa serían:

Introduzca una longitud: 2


Hay 3 palabras horizontales de longitud 2

Introduzca una longitud: 3


Hay 1 palabras horizontales de longitud 3

Introduzca una longitud: 4


Hay 1 palabras horizontales de longitud 4

También podría gustarte