Universidad de Oviedo 02/07/2002 Licenciatura de Matemáticas Algorítmica y Lenguajes de Programación Examen final (Junio) Apellidos: Nombre: D.N.I: Notas: 1. Los alumnos que deban examinarse sólo del 1º parcial resolverán la prueba objetiva y los ejercicios 1 y 2. 2. Los alumnos que deban examinarse sólo del 2º parcial resolverán los ejercicios 2, 3 y 4. 3. Los alumnos que deban examinarse de toda la materia de la asignatura resolverán la prueba objetiva y los ejercicios 2 y 3. 4. Los ejercicios se puntuarán de la siguiente forma: • Prueba objetiva: 3 puntos (acierto: 1/5, blanco: 0, fallo: -1/15. ¡Atención! Se penaliza el azar como método de respuesta) • Ejercicios: 3,5 puntos. 5. En la solución de los ejercicios debe esbozarse, OBLIGATORIAMENTE, el análisis y diseño del algoritmo que resuelva el problema. 6. El lenguaje de programación a utilizar es FORTRAN 90. Prueba objetiva 1) El análisis a) es una fase en el proceso del desarrollo de un algoritmo. b) es una fase en la que se determina la forma de resolver el problema. c) es una fase en la que se define de forma precisa y no ambigua el problema a resolver. d) no es necesario si se emplea una notación algorítmica. 2) La arquitectura Von Neumann (utilizada por los ordenadores modernos) consta, al menos, de a) Memoria, Dispositivos de E/S y Microprocesador. b) Unidad Aritmética, Unidad de Control y Dispositivos de E/S. c) Torre, Monitor y Teclado. d) Unidad de Control, Dispostivos de E/S y Discos. La unidad mínima de información manejada por un ordenador es a) bit. b) mega. c) byte. d) píxel. 3) 4) La declaración implícita de variables en FORTRAN a) debe utilizarse con precaución. b) no debe utilizarse nunca. c) es imposible. d) no se utiliza en FORTRAN 90. 5) La estructuras de control pueden ser a) desde..hasta, mientras y repetir..hasta b) do, do..while e if..then..else c) secuencial, alternativa y repetitiva. d) simples, dobles o multialternativas. 9) 10) En código binario es posible representar a) finitos números reales de precisión ilimitada. b) finitos números reales de precisión limitada. c) infinitos números reales de precisión ilimitada. d) infinitos números reales de precisión limitada. 11) Las estructuras de control a) no pueden anidarse si son idénticas. b) no pueden anidarse. c) pueden anidarse si son idénticas. d) pueden anidarse. 12) La siguiente función recursiva a) está bien definida aunque no finaliza. b) está bien definida y finaliza. c) está mal definida aunque finaliza. d) está mal definida. integer recursive function serendipity (a,b) result (r) implicit none integer a,b 6) Las estructuras de control mientras y repetir..hasta a) mientras se ejecuta 0 o más veces y repetir al menos 1 vez. b) mientras se ejecuta al menos 1 vez y repetir 0 o más veces. c) se ejecutan 0 o más veces. d) se ejecutan al menos 1 vez. 7) Una invocación a función nunca a) constituye una expresión. b) puede ser un argumento de un subprograma. c) puede aparecer a la izquierda de una asignación. d) recibe varios argumentos. 8) En el lenguaje de programación FORTRAN la palabra reservada RETURN a) es análoga a BREAK pues detiene la ejecución del subprograma. b) es totalmente equivalente a RESULT solo que se emplea tradicionalmente con subrutinas. c) es análoga a RESULT sólo que específica de las subrutinas. d) sirve para que las subrutinas retornen su resultado. if (a==b) then r=serendipity(a+b,b-1) else if (a>b) then r=serendipity(a-1,b/2) else r=serendipity(b,a-1) end if end if end function 13) Un problema definible en función de sus propios términos a) es iterativo. b) es recursivo. c) no es ni recursivo ni iterativo. d) no es recursivo. Es aconsejable implementar un subprograma como función en lugar de como subrutina a) si el subprograma modifica los argumentos. b) si el subprograma no tiene argumentos. c) si el subprograma no retorna un único valor. d) si el subprograma retorna un único valor. 14) Un fichero a) es un conjunto de registros. b) es un fragmento de disco con un identificador único. c) es un documento de texto o un programa de ordenador. d) es una estructura que almacena información del mismo tipo en disco. Tabla de respuestas (Sólo serán válidas las respuestas que aparezcan en esta tabla) 1 A B C D 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Ejercicio 1. Desarrollar un programa que solicite al usuario cuatro puntos de R2, A, B, C y D. Los dos primeros definirán la recta AB y los dos últimos la recta CD. Calcular el ángulo que forman ambas rectas sabiendo que Fortran 90 dispone de una función acos que retorna un valor en radianes. B D C A Ejercicio 2. Desarrollar un programa que lea por teclado nueve números enteros y los coloque en una matriz ordenada como se muestra en la figura. 14 31 38 15 28 39 18 27 42 Ejercicio 3. Calcular la complejidad del algoritmo que “rellena” la matriz en el ejercicio anterior. Ejercicio 4. Desarrollar las operaciones “introducir” y “extraer” para definir una estructura pila de enteros. nodo = tupla numero ∈ entero siguiente ∈ puntero a nodo fin tupla