UNIVERSIDD PONTIFICI COMILLS ESCUEL TECNIC SUPERIOR DE INGENIERI (I.C..I.) DEPRTMENTO DE SISTEMS INFORMÁTICOS TITULCIÓN: INGENIERO TÉCNICO INDUSTRIL PRUEB DE FUNDMENTOS DE INFORMÁTIC Nombre Grupo Preguntas cortas: 1.- Qué se mostrará por pantalla tras ejecutar el código correspondiente a la función main?... int Func(int n); int main(void) {printf( %d,func(7));... int Func(int n) {if(n>0) return(n*func(n-2)); else return(1);... Salida:...(0.5 puntos) 2.- Qué es la CPU? Indica 2 de sus componentes. Respuesta:.........(0.5 puntos) 3.-Indicar el prototipo de la función nalizar() para que la utilización en dicho código sea correcta: #define N 20... void main(void) { int num1; int num2; double v2; v2 = nalizar(&num1, num2); Prototipo:... (0.5 puntos) Pag. 1/7
UNIVERSIDD PONTIFICI COMILLS ESCUEL TECNIC SUPERIOR DE INGENIERI (I.C..I.) DEPRTMENTO DE SISTEMS INFORMÁTICOS TITULCIÓN: INGENIERO TÉCNICO INDUSTRIL 4.- Cuál es la salida del siguiente programa?: #include <stdio.h> char func ( char c1, char c2 ); void main(void) { char a, b, c; a = s ; b = l ; c = func( a, b ) ; printf( %c, %c, %c, a, b, c ) ; char func ( char c1, char c2 ) { c1 = t ; c2 = o ; return (( c1 = = c2 )? c1 : c2 ) ; Salida:... (0.5 puntos) 5.- Implementar una función recursiva, (sólamente la función), que permita calcular el máximo común divisor (MCD) de dos números enteros positivos, que se pasan como parámetros, utilizando el algoritmo de Euclides. (2 puntos) lgoritmo de Euclides El MCD de dos números enteros, M y N, es el mayor entero que divide a ambos. Como se puede observar en la siguiente figura, el algoritmo de Euclides consiste en realizar las sucesivas divisiones mostradas hasta encontrar el resto cero. En este caso el MCD es el último divisor, r n en la figura. Es decir, si al dividir M y N el resto es 0 el MCD es N, sino el MCD es igual al máximo común divisor de N y el resto de dividir M entre N. M N r 1 q 1 N r 1 r 1 r 2 r 2 r 3 r 2 q 2 r 3 q 3 r 4 q 4... r n-1 r n 0 q n+1 Solución: Pag. 2/7
UNIVERSIDD PONTIFICI COMILLS ESCUEL TECNIC SUPERIOR DE INGENIERI (I.C..I.) DEPRTMENTO DE SISTEMS INFORMÁTICOS TITULCIÓN: INGENIERO TÉCNICO INDUSTRIL EJERCICIO: (6.0 puntos) Un alumno de primer curso de Ingeniería Técnica Industrial de la UPCO está interesado en la implementación de un juego de ordenador para practicar todos sus conocimientos de programación. Mirando distintos libros de juegos decide implementar el juego del ROJO-MRILLO-VERDE, que consiste básicamente en descubrir cuáles son los tres dígitos entre 0 y 9, generados aleatoriamente por el ordenador y que están guardados en las tres componentes de un vector de enteros. Nota: Para generar un número aleatorio entre 0 y 9 es suficiente ejecutar rand()%10 y trabajar con el valor generado como se precise. Las reglas del juego son las siguientes: - El programa comienza pidiendo el nombre del jugador, (nombre apellido1 y apellido2 separados por blancos), y lo guarda en una cadena de caracteres de cómo máximo longitud 30, (.nombre[ ]). - continuación se generarán aleatoriamente 3 números enteros comprendidos en 0 y 9 y se guardarán en un vector de enteros, (el primero en la celda 0, el segundo en la celda 1 y el tercero en la celda 2), cuya declaración será: numeros[.] - Después comienza el juego que consiste en pedir al usuario tres números enteros y comprobar si coinciden con los números generados aleatoriamente y guardados en el vector numeros, finalizando el juego en ese caso. Para cada intento, el jugador proporciona tres dígitos para las posiciones 0, 1 y 2 del vector. El programa responde con una pista que consta de rojo, amarillo y verde, según las siguientes reglas: 1. Si un dígito está adivinado y está en la posición correcta, la respuesta es VERDE. 2. Si el dígito es uno de los tres del vector pero está en una posición incorrecta, la respuesta es MRILLO. 3. Si el dígito para una posición dada no coincide con ninguno de los tres dígitos la respuesta es ROJO - Cuando finaliza el programa debe salir un texto por la pantalla felicitando al jugador por su nombre al conseguir los tres aciertos. Por ejemplo Supongamos que en el vector de números se han generado aleatoriamente los números 6, 5 y 8, en las posiciones 0, 1 y 2 respectivamente Numeros 6 5 8 0 1 2 una ejecución del programa podría ser la siguiente: Pag. 3/7
UNIVERSIDD PONTIFICI COMILLS ESCUEL TECNIC SUPERIOR DE INGENIERI (I.C..I.) DEPRTMENTO DE SISTEMS INFORMÁTICOS TITULCIÓN: INGENIERO TÉCNICO INDUSTRIL JUEGO DE LOS TRES COLORES Introduzca su Nombre Santiago Canales Cano Intento 1 : Introduzca tres numeros 1 2 5 Respuesta Intento 1: ROJO ROJO MRILLO Intento 2 : Introduzca tres numeros 8 5 3 Respuesta Intento 2: MRILLO VERDE ROJO Intento 3 : Introduzca tres numeros 8 5 6 Respuesta Intento 3: MRILLO VERDE MRILLO Intento 4 : Introduzca tres numeros 6 5 8 Respuesta Intento 4: VERDE VERDE VERDE Felicidades Santiago Canales Cano: certo en el Intento 4 Se pide: Diseñar un programa en C que simule el juego de los tres colores y que muestra la ejecución del juego en pantalla. demás lo mismo que se visualice en pantalla se debe guardar en un fichero de texto llamado juego.txt. Pag. 4/7
UNIVERSIDD PONTIFICI COMILLS ESCUEL TECNIC SUPERIOR DE INGENIERI (I.C..I.) DEPRTMENTO DE SISTEMS INFORMÁTICOS TITULCIÓN: INGENIERO TÉCNICO INDUSTRIL Pag. 5/7
UNIVERSIDD PONTIFICI COMILLS ESCUEL TECNIC SUPERIOR DE INGENIERI (I.C..I.) DEPRTMENTO DE SISTEMS INFORMÁTICOS TITULCIÓN: INGENIERO TÉCNICO INDUSTRIL Pag. 6/7
UNIVERSIDD PONTIFICI COMILLS ESCUEL TECNIC SUPERIOR DE INGENIERI (I.C..I.) DEPRTMENTO DE SISTEMS INFORMÁTICOS TITULCIÓN: INGENIERO TÉCNICO INDUSTRIL Pag. 7/7