Fundamentos de Informática
Enero 22-23, Python
Aclaraciones:
- Puedes utilizar cualquier material de soporte que no implique conexión a Internet:
apuntes físicos, contenido de un USB…
- Durante el examen, queda terminantemente prohibido:
o Acceder a Internet durante el examen sin la autorización del profesor.
o Hacer uso del teléfono móvil.
o Comunicarse con el resto de estudiantes haciendo el examen.
Si se detecta a un alumno incumpliendo alguna de estas normas, su calificación en el
examen será de 0.
Instrucciones:
- Llama py_enero_dni.py a tu archivo Python, donde “dni” es tu número de
DNI/pasaporte.
- Implementa las funciones/programas indicados en los diferentes ejercicios siguiendo
estrictamente las instrucciones proporcionadas. Asegúrate en todo caso de que las
funciones reciben el nombre indicado, tienen exactamente el número y nombre de
parámetros pedido y se comportan como se indica en el enunciado.
- Se considerará error grave entregar código que no pueda ser ejecutado, es decir, código
que provoque un error sin siquiera permitir al usuario interaccionar con la consola/ver
resultados.
- Cuando quieras entregar el examen avisa a tu profesor para que él restablezca la
conexión a Internet en tu ordenador. NO enchufes el cable Ethernet ni accedas al CV
sin la supervisión del profesor.
Ejercicio 1 (1.5 puntos) – Escribe una función llamada numeros_aleatorios que reciba dos
parámetros: tamanho (de tipo entero) y limite (de tipo entero). La función debe devolver una
lista de números enteros con el número de posiciones marcado por tamahno. Estos enteros
deben ser números aleatorios comprendidos entre -limite y limite.
Ejemplo, si la función recibe tamahno == 6 y limite == 4, un posible retorno sería:
[-4, 3,4,0,1,-2]. Esta lista tiene 6 posiciones y todos sus números están comprendidos
entre -4 y 4.
Ejercicio 2 (2 puntos) – Escribe una función llamada transponer_nombres que reciba un
parámetro llamado lista_nombres (de tipo lista) que contendrá una serie de strings, cada uno
con un nombre, unos apellidos y una edad, con la siguiente estructura: “edad, nombre,
apellidos”. Esta función debe retornar una nueva lista que reordene los datos de cada elemento
de lista_nombres, pasando a tener este formato: “nombre apellidos de edad años”. Además,
esta lista retornada deberá contener los nombres en el orden inverso a la lista original.
Ejemplo. Supongamos que la función recibe por parámetro la siguiente lista con 3 elementos:
Fundamentos de Informática
Enero 22-23, Python
[ “60, Daniel, Fernández Álvarez”, “100, Marina, Miranda Martínez”, “20,
Susana, Sierra Sotrondio”]
Lo que tendría que devolver es una nueva lista con este contenido:
[“Susana Sierra Sotrondio de 20 años”, “Marina Miranda Martínez de 100
años”, “Daniel Fernández Álvarez de 60 años”]
Ejercicio 3 (2 puntos) – Escribe una función llamada cuenta_caracteres que reciba dos
parámetros: nombre_fichero (tipo string) y salto (tipo entero). Esta función debe recorrer
las líneas del fichero que se halle en la ruta nombre_fichero y deberá imprimir el número de
caracteres que hay en algunas de ellas. Siempre imprimirá el número de caracteres de la primera
línea. A partir de ahí, ignorará salto-1 líneas e imprimirá el número de caracteres de la línea
siguiente. Seguirá esta estrategia hasta que se terminen las líneas del fichero.
Ejemplo, supongamos que tenemos un fichero de texto con estas líneas y salto == 2:
+
++
+++
++++
+++++
++++++
+++++++
Entonces, la función deberá imprimir en la pantalla lo siguiente:
1
3
5
7
Nota que estos números se corresponden con la cantidad de caracteres en las líneas resaltadas
en rojo, es decir, la primera del fichero y, a partir de ahí, las siguientes líneas contando de dos
en dos.
Ejercicio 4 (1,5 puntos) – Escribe una función llamada escalera_letras que reciba dos
parámetros: nombre_fichero (tipo string) y texto (tipo string). La función escribirá contenido
en el archivo cuya ruta es nombre_fichero. El contenido escrito consistirá en poner cada uno
de los caracteres de texto en una línea nueva, a no ser que el carácter sea un espacio en blanco,
un tabulador (\t) o una nueva línea (\n), en cuyo caso el carácter se ignorará. Cada carácter
escrito en una línea se repetirá tantas veces como líneas hayan sido ya escritas.
Fundamentos de Informática
Enero 22-23, Python
Ejemplo: supongamos que texto contiene “hola eh?”. En el fichero se escribirá lo siguiente:
h
oo
lll
aaaa
eeeee
hhhhhh
???????
Ejercicio 5 (3 puntos) – Escribe un menú que te permita utilizar alguna de las funciones
anteriores. Este menú consistirá en un bucle en el que se le solicitará al usuario que introduzca
una opción para ejecutar una u otra función. Dependiendo de la opción escogida, se solicitarán
al usuario los parámetros necesarios y se ejecutará la función correspondiente. Una vez se
ejecute la función y se muestren los resultados, se volverá a mostrar el menú. El menú finalizará
cuando se introduzca determinada opción. Si el usuario introduce una opción incorrecta, será
informado de esta situación y el menú volverá a mostrarse.
El comportamiento específico del menú debe ser el siguiente. En primer lugar, se le pedirá al
usuario que escriba una letra, que determinará qué opción de menú se ejecuta. Una vez lo haya
hecho:
• Si se introduce la opción “a”: se le solicitará al usuario un tamaño, un límite y se llamará
con estos datos a la función numeros_aleatorios. Después, se imprimirá en la
pantalla la lista obtenida.
• Si se introduce la opción “b”: se le solicitará al usuario una ruta de archivo y un pequeño
texto. Con estos parámetros, se llamará a la función escalera_letras. Tras
ejecutarla, se mostrará el siguiente mensaje en la pantalla: “Listo. Compruebe que
su archivo se ha generado”.
• Si se introduce la opción “x”: se mostrará el siguiente mensaje en pantalla: “PROGRAMA
FINALIZADO”. Solo en caso de que se escoja esta opción romperá el bucle del menú y
el programa finalizará.
• Si se introduce cualquier otra cosa: se mostrará el siguiente mensaje por pantalla:
“ERROR. Opción no reconocida. Inténtelo de nuevo por favor”.