Carrera: Asignatura: Material auxiliar:
I.T.I. de Gestión/Sistemas (Plan viejo/nuevo) Programación I Ninguno
Fecha: 8 de septiembre del 2004 Hora: 9:00 Duración: 2 horas
RELLENE EN ESTA HOJA Y EN LA HOJA DE LECTURA ÓPTICA LOS SIGUIENTES DATOS: Apellidos:......................................................................................................Tlfno.:........................................ Nombre:........................................................................................................D.N.I.:......................................... Código Carrera:
40 (Sistemas plan antiguo) 41(Gestión plan antiguo) 53(Sistemas plan nuevo) 54(Gestión plan nuevo)
Código Asignatura:
Convocatoria: Septiembre 1ªPP Semana:
Código Asignatura: 103 Tipo de Examen:
? ? ?
103
F
El test debe ser contestado en la hoja de lectura óptica. Sólo una de las cuatro respuestas posibles de cada pregunta es correcta. El test es eliminatorio y aporta un 40% de la nota final. Son necesarias 7 respuestas correctas (5 con las prácticas aprobadas) para que se corrija el ejercicio. La solución del ejercicio se realizará en el reverso de esta hoja. No se corregirán hojas auxiliares.
ENTREGUE ÚNICAMENTE ESTA HOJA Y LA HOJA DE LECTURA ÓPTICA sin grapar TEST (cada respuesta correcta: 1punto; respuesta incorrecta o en blanco: 0 puntos)
1.- Dado el siguiente fragmento: PROCEDURE Cuadrado(VAR dato: INTEGER); BEGIN global := 5; dato:= dato * dato; END Cuadrado; ...................... global:=3; Cuadrado (global); ......................... Después de la llamada a Cuadrado, global tiene un valor a) 9 b) 5 c) 25 d) 3 2.- La ocultación de la realización de un elemento impide su … a) visibilidad b) reutilización c) eficiencia d) complejidad ¿ Ha codificado en la hoja de lectura óptica el campo convocatoria Septiembre -1ªsemana? 3.- En el paso de argumentos por valor se pueden utilizar: a) Sólo variables o expresiones b) Sólo constantes o expresiones c) Variables, constantes o expresiones d) Sólo variables 4.- En MODULA-2 cuál de las siguientes declaraciones NO es correcta: a) PROCEDURE A1 (p1,p2: ARRAY [1..10] OF INTEGER); b) PROCEDURE A2 (p1,p2: ARRAY OF CHAR): BOOLEAN; c) PROCEDURE A3 (p1,p2:TipoPunto): TipoPunto; d) PROCEDURE A4 (p1,p2: INTEGER): REAL; 5.- .En Modula-2, se verifica: a) Una expresión debe formar parte de una sentencia b) Una expresión puede ser una sentencia c) Una asignación puede formar parte de una expresión d) Una expresión no puede formar parte de una asignación
6.- El primer elemento de una ristra o vector de caracteres siempre… a) contiene el carácter nulo b) contiene un puntero al último elemento de la ristra c) contiene la longitud real de la ristra d) es el de índice igual a cero 7.- Un tipo opaco: a) se define en un módulo de definición escribiendo sólo su nombre b) se define en un módulo de implementación escribiendo sólo su nombre c) no se puede utilizar desde el exterior del módulo en que se ha definido d) se puede utilizar desde el exterior del módulo en que se ha definido pero sin modificar su valor 8.- Dado el código: MODULE A; CONST AUX = 7; VAR PP:INTEGER; PROCEDURE A(VAR AUX:INTEGER);BEGIN AUX:=0 END A; BEGIN A(PP); AUX:=PP END A. Es incorrecto por: a) la asignación: AUX:=PP b) la repetición del identificador A c) la repetición del identificador AUX d) la asignación: AUX:=0 9.- ¿Cuál sería la línea de código correcta para obtener un valor en la variable “b” de 10, siendo su valor inicial 10? a) FOR i:=1 TO 10 DO IF NOT (ODD(b)) THEN b:= b MOD b*b + i*2 END END; b) FOR i:=1 TO 10 DO IF b<=10 THEN b:= b MOD b*b + b + i END END; c) FOR i:=1 TO 10 DO IF NOT ODD(b)=FALSE THEN b:= b MOD b*b + i - b END END; d) FOR i:=1 TO 10 DO IF ODD(b) THEN b:= b MOD b*b + i END END; Antes de contestar a esta pregunta, asegúrese de haber completado sus datos personales en esta hoja. 10. En Modula-2 la sentencia RETURN dentro del cuerpo de un procedimiento provoca … a) la terminación del procedimiento b) la terminación del programa c) la devolución de un valor d) la pausa del programa
EJERCICIO DE PROGRAMACIÓN Realizar un Tipo Abstracto de Datos para jugar a la lotería primitiva. Cada apuesta es una selección de 6 números del 1 al 49 en la que se debe guardar el nombre del apostante y su DNI. El número máximo de apuestas será de 1000. Las operaciones posibles serán: ? Iniciar sorteo para borrar todas las apuestas anteriores ? Realizar UNA apuesta y registrar el apostante ? Efectuar sorteo (Sólo si es del plan viejo). NOTA: Suponer que existe una función predefinida RANDOM49(x) que cada vez que se la invoca devuelve un número comprendido entre el 1 y el 49
RECUERDE: La solución del ejercicio se realizará en el reverso de esta hoja. NO se corregirá lo que exceda de este espacio.