Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 1/12 Ejercicios del primer cuatrimestre Fundamentos de Informática 1º Ingeniería Industrial Ejercicio 1 Se desea realizar el diagrama de flujo del método de la bisección para la obtención del corte con y=0 de una función y=f(x). El método consiste en lo siguiente: dada f(x) continua, definida en [xi, xf] y tal que corta a y=0; se toma el punto medio del intervalo xm=(xi+xf)/2; se evalúa la función en dicho punto f(xm) pudiéndose dar 3 casos: f(x) 1. Signo de f(xm) = signo de f(xi). En este caso se toma el intervalo [xm,xf], y se repite el proceso. 2. Signo de f(xm) = signo de f(xf). En este caso se toma el intervalo [xi,xm], y se repite el proceso. 3. Signo de f(xm) = 0. En este caso no se busca más, se ha hallado un cero de f(x) en el intervalo [xi,xf]. xi xf El método termina o bien cuando ya se ha hallado un cero (caso 3 anterior), o bien cuando el intervalo es lo suficientemente pequeño (menor o igual que cierto valor ε predefinido). En el algoritmo se supone conocida la función f(x), el intervalo inicial [xi, xf] y el parámetro ε.El resultado del algoritmo es la solución exacta, en caso de encontrarse. Si no se encuentra, la solución es el punto medio del intervalo final. Se pide: dibujar el resto del diagrama de flujo en el recuadro de la derecha y completar la lista de objetos usados en los recuadros de la tabla de abajo. Para la confección del diagrama utilice únicamente las operaciones usuales de +,-, ·, /, asignación (←), comparaciones >, <, >=, <=, acceso a memoria con subíndices y expresiones literales en lenguaje natural, y además puede utilizar la operación de evaluación de una función en un punto x0 del modo siguiente: f(x0). El diagrama de flujo ha de estar estructurado, ser claro y legible. Ejercicio 2 Se ha de construir un circuito con puertas lógicas cuyas entradas a, b y c son variables lógicas que representan los bits de un número N entero no negativo en base dos. Se quiere que la salida f valga 1 si el número N es una potencia exacta de dos (es decir, si log2 N es un número entero) y 0 en el resto de casos. Construya la tabla de verdad e indique la expresión booleana de f sin simplificar. N a b c f Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 2/12 Ejercicio 3 Dado el programa en LS-2 del recuadro de la derecha, indique en la tabla de abajo el contenido de cada registro de la máquina CESIUS tras la ejecución de cada instrucción del programa. D1: D2: DD: P: UNO: N: INI: Tenga en cuenta lo siguiente: • En la primera columna de la tabla de abajo se debe anotar la dirección de memoria de la instrucción que se ha ejecutado. • El contenido de los registros se debe representar mediante códigos mnemónicos y números decimales. • Recuerde que se representará el estado del registro TRAS haber completado la instrucción. • Utilice el mnemotécnico para representar el código de operación y modo de direccionamiento en caso de que el contenido del registro sea una instrucción. • Suponga que al inicio de la ejecución del programa, todos los registros de la máquina tienen el valor 0 excepto P que tendrá el valor adecuado que le corresponda. B2: B1: Dirección P Instrucción I A T S E ORG SAL CTE CTE DRE ESP CTE CTE CAR ALM CAR I SAC ESC I CAR SUM ALM RES RES SAN ALT FIN 0 INI 10 0 D1 1 1 2 DD P P B1 P P UNO P DD N B2 Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 3/12 Ejercicio 4 Considere el siguiente programa en lenguaje C #include <stdio.h> char letra2; void main(void) { void incrementa_letra2(void); static int diferencia; char letra1; int compara_letra(char,char); printf("Escribe una letra\n"); scanf("%c\n",&letra1); printf("Escribe otra letra\n"); scanf("%c\n",&letra2); diferencia=diferencia+compara_letra(letra1,letra2); printf("Resultado=%d",diferencia); incrementa_letra2(); } /* Incrementa letra2 */ void incrementa_letra2(void) { letra2++; } /* Compara letras sin diferenciar mayúsculas y minúsculas */ int compara_letra(char letra1,char letra2) { int diferencia=0; diferencia=letra1-letra2; return diferencia; } Se pide identificar de este programa los siguientes componentes A) Operadores. B) Constantes C) Rellene la tabla con las funciones definidas en el programa y variables que pueden utilizar. Variables vistas por la función Función definida Locales Nombre Globales Tipo Nombre Tipo Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 4/12 Ejercicio 5 Inicio Dada una matriz M de m filas y n columnas y dado un índice de fila k y otro de columna j se desea averiguar tres cantidades: CA) El número de elementos de M que están en la columna j y cuyo valor absoluto es mayor que 1. CB) La suma de los elementos en la diagonal que pasa por mkj y que baja de izquierda a derecha, comenzando por el propio mkj y bajando (véanse ejemplos). CC) El elemento de M que ocupa la posición más alejada de mkj dentro de la fila k. Es decir, el que cae más lejos por la izquierda o la derecha (no tenga en cuenta la posibilidad de empate). Se pide: diseñar tres diagramas de flujo para calcular y escribir cada una de las cantidades indicadas. Tenga en cuenta que se desea que estos diagramas se usen dentro de otro mayor como se detalla en la figura de la derecha. Complete la tabla de variables. Lectura de M, k y j Cálculo de CA Cálculo de CB Cálculo de CC A modo de aclaración considere los ejemplos que se muestran a continuación. Fin j Datos Resultados Matriz M Fila y columna CA CB CC k 6 ⎞ ⎛ 0 −3 1 ⎜ ⎟ 1 ⎟ ⎜ 9 −2 4 ⎜−7 3 −8 −5 ⎟ ⎝ ⎠ k=2, j=3 CA = 2 CB = 4-5 = -1 CC = 9 j j k 6 ⎛ 0 −3 1 ⎜ 1 ⎜ 9 −2 4 ⎜−7 3 −8 −5 ⎝ k=1, j=2 CA = 3 CB = -3+4-5 = -4 CC = 6 ⎞ ⎟ ⎟ ⎟ ⎠ ⎛ 0 1 2⎞ ⎜ ⎟ k ⎜5 8 7⎟ ⎜ 3 3 0⎟ ⎝ ⎠ k=2, j=3 CA = 2 CB = 7 CC = 5 Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 Ejercicio 6 Codifique el diagrama de flujo de la izquierda en LS-2 para CESIUS utilizando únicamente el espacio del recuadro de la derecha. Suponga que x , N y el vector v ya han sido leídos. No borre las sentencias que ya existen. I n ic io b u s c a r c e r c a n o in ic ia r k a 1 y E n c o n tra d o a 0 SI ¿ vk < x ? NO C e rc a n o E n c o n tra d o vk 1 In c re m e n ta r k SI ¿ E n c o n tra d o = 0 ? NO SI ¿ vk < x ? NO ¿ v k > C e rc a n o ? SI NO C e rc a n o vk In c re m e n ta r k SI ¿ k < N ? NO F in a l b u s c a r c e r c a n o k: índice. v: vector de N números enteros. x: número entero. Dato del algoritmo. N: tamaño del vector v. Encontrado: número entero. Variable auxiliar Cercano: número entero. Variable auxiliar K: N: V: X: DCV: PUN: CERC: ENCO: CERO: UNO: INI: ORG 0 SAL INI ESP 1 ‘se supone dado N ‘se supone dado el ‘vector de tamaño N ‘se supone dado DRE V ESP 1 ESP 1 ‘CERCANO ESP 1 ‘ENCONTRADO CTE 0 CTE 1 ‘inicio de instrucciones ‘del diagrama de flujo CAR UNO ALM K ALT FIN Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. Ejercicio 7 Dado el programa en LS-2 del recuadro de la derecha, indique en la tabla de abajo el contenido de cada registro de la máquina CESIUS tras la ejecución de cada instrucción del programa. Tenga en cuenta lo siguiente: • En la primera columna de la tabla de abajo se debe anotar la dirección de memoria de la instrucción que se ha ejecutado. • El contenido de los registros se debe representar mediante códigos mnemónicos y números decimales. • Recuerde que se representará el estado del registro TRAS haber completado la instrucción. • Utilice el mnemotécnico para representar el código de operación y modo de direccionamiento en caso de que el contenido del registro sea una instrucción. • Suponga que al inicio de la ejecución del programa, todos los registros de la máquina tienen el valor 0 excepto P y la memoria, que tendrán el valor adecuado que le corresponda. Dirección P Instrucción I A T 6/12 ORG SAL V: ESP DV: DRE PUN: ESP C2: CTE C5: CTE D5: DRE INI: CAR ALM RES SAN SAP SALIR: CAR FINAL: ALM SUM ESC ALT FIN S 0 INI 5 V 1 2 5 C5 D5 PUN C2 SALIR FINAL C5 PUN I D5 I PUN E Ejercicio 8 Se dispone de una matriz A con D filas y N columnas en la que se han almacenado los precios de los N productos de cada uno de los D departamentos de un supermercado. De este modo, el elemento akj representa para el departamento k el precio en euros del producto j (considere que los precios son múltiplos enteros de 1 euro). Al entrar en época de rebajas, la empresa decide hacer el mismo descuento a cada producto de un mismo departamento. Para ello utiliza el vector Desc de dimensión D, en el que el elemento Desck representa el porcentaje que se pretende descontar a todos los productos del departamento k. Suspuesta conocida la matriz de precios A, el número de departamentos D, el número de productos por departamento N y el vector Desc. Se pide: DF-1) Dibujar un diagrama de flujo que permita calcular otra matriz de nombre Reb con el mismo formato que la matriz A y en la que aparecerán los nuevos precios después de aplicar las rebajas. DF-2) Supuesto calculada la matriz anterior, dibujar otro diagrama de flujo que escriba el precio del producto más barato. NOTA: No use más que las operaciones aritméticas y lógicas, el acceso a vectores mediante índices, la asignación, la lectura por teclado y la escritura en pantalla. Indique el significado de abreviaturas y el uso asignado a las variables empleadas en el recuadro de debajo de cada diagrama. Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 7/12 Ejercicio 9 Obtenga un algoritmo que resuelva el problema cuyo enunciado es: "Calcular la suma de los N primeros elementos de una sucesión cuyo término general cumple: ak = ak-1 + 2·ak-2, siendo a1=-1 y a2=2". El algoritmo ha de leer únicamente el valor de N (suponga que siempre es entero y mayor que dos). El algoritmo ha de escribir como único resultado la suma: N s = ∑ ak k =1 Se pide: dibujar el diagrama de flujo en el recuadro de la derecha y completar la lista de objetos usados en los recuadros de la tabla de abajo. Para la confección del diagrama utilice únicamente las operaciones +,-, ·, /, asignación (←), comparaciones >, <, >=, <=, acceso a memoria con subíndices y expresiones literales en lenguaje natural. El diagrama de flujo ha de estar estructurado, ser claro y legible. Ejercicio 10 En una matriz M en memoria se tienen almacenados los datos de N individuos, correspondiendo cada fila a un mismo individuo y cada columna a una característica física. La matriz es N×5, el significado de las 5 columnas es: la primera son las tres primeras cifras del DNI (número identificador), la segunda es la edad, la tercera la altura, la cuarta el peso y la quinta la talla del pié. Como ejemplo considérese la matriz ⎡101 20 180 70 44⎤ M =⎢ ⎥ ⎣214 21 165 60 41⎦ en la cual, la primera fila corresponde a un individuo cuyo DNI comienza por 101, de 20 años, 180 cm de estatura, 70 Kg y que calza un 44. Se pide diseñar un diagrama de flujo que sea solución del problema: "Imprimir en pantalla el número identificador únicamente de los individuos con edad <21 y con peso > 65". En el ejemplo anterior la salida por pantalla sería 101. En el diagrama de flujo utilice únicamente las operaciones +, -, ·, /, >, <, >=, <=, asignación (←), comparación de igualdad (=), acceso a memoria (con subíndices o punteros) y expresiones literales en lenguaje natural. El diagrama de flujo ha de estar estructurado, ser claro y legible y ocupar sólo el espacio interior al recuadro de la derecha. Ejercicio 11 A) Traduzca a código de máquina de CESIUS las sentencias resaltadas del siguiente programa LS2. Para ello necesita saber que el código de operación de CAR es 0010 y de ALM es 0001. ORG SAL PUN: ESP MAT ESP DMAT: DRE MOCHO:CTE INI: CAR ALM CAR ALM ALT FIN 5 INI 1 6 MAT -8 DMAT PUN MOCHO I PUN Dirección de memoria Contenido (en binario) Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 8/12 B) Indicar qué se obtiene por pantalla y el contenido del registro S al término de la ejecución del siguiente programa ORG SAL DAT: ESP DV: DRE PUN: ESP X: ESP Y: ESP CONT: ESP CINCO:CTE UNO: CTE MUNO: CTE DOS: CTE INI: CAR ALM CAR ALM RES ALM 0 INI 5 DAT 1 1 1 1 5 1 -1 2 CINCO CONT DV PUN DOS I PUN BUCLE:CAR ALM CAR SUM ALM CAR MUL MUL ALM MOD SAP ESC SIG: CAR RES ALM SAP ALT FIN Registro S en binario: I PUN X PUN UNO PUN X DOS MUNO I PUN DOS SIG I PUN CONT UNO CONT BUCLE Salida por pantalla: Ejercicio 12 Se han de diseñar cuatro diagramas de flujo para resolver cuatro problemas independientes. En todos los casos se supone que ya se ha leído un vector de N componentes con N>2. El vector se denota como v y la componente genérica k-ésima como vk, siendo k=1, ... , N. Los únicos datos son v y N, no se permite la lectura de nuevos datos. Los problemas a resolver son: 1. Escritura inversa de las componentes del vector. 2. Escritura (en orden normal) de las componentes pares únicamente. 3. Cálculo y escritura (en orden normal) de un nuevo vector b = v + R(v), siendo R(v) un vector con las mismas componentes que v pero en orden inverso, es decir : R(v) =(vN, vN-1, ... v2, v1). R(v) ha de ser calculado a partir de v. 4. Cálculo y escritura del número de componentes de v que son positivas, del número de componentes negativas y del de nulas. Para la confección de los diagramas utilice únicamente las operaciones +,-, ·, /, >, <, >=, <=, asignación (←), comparación de igualdad (¿ = ?), acceso a memoria (con subíndices o punteros) y expresiones literales en lenguaje natural. El diagrama de flujo ha de estar estructurado, ser claro y legible y ocupar sólo el espacio interior al recuadro correspondiente. Indique el significado de las abreviaturas y nombres de variables que haya utilizado en cada diagrama. Ejercicio 13 Realizar un diagrama de flujo que determine si una matriz A dada (ya leída) de m filas y n columnas satisface la siguiente propiedad: n “La suma de los elementos de cada fila debe ser 10” ∑a j =1 Por ejemplo: kj = 10 ∀k = 1Lm 6 ⎤ ⎡2 − 4 6 A= ⎢ ⎥ ⎣1 1 10 − 2⎦ ⎡2 2 6 ⎤ A = ⎢⎢2 0 1 ⎥⎥ ⎢⎣0 0 10⎥⎦ Sí satisface (Resultado = 1) No satisface (Resultado=0) En el diagrama de flujo utilice únicamente las operaciones +, -, ·, /, >, <, >=, <=, asignación (←), comparación de igualdad (¿=?), acceso a memoria (con subíndices o punteros) y expresiones literales en lenguaje natural. El diagrama de flujo ha de estar estructurado, ser claro y legible y ocupar sólo el espacio interior al recuadro de la derecha. Ejercicio 14 Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 9/12 En la memoria de la computadora CESIUS se encuentran almacenados los códigos ASCII de una palabra de 8 caracteres a partir de la dirección indicada por la etiqueta PAL. El programa en LS2 del cuadro adjunto se encarga de mostrar por pantalla la palabra completa. Señale los 5 errores que impiden la traducción y correcta ejecución del programa. Escriba en el cuadro adjunto el programa en LS2 corregido. NOTA: Señale en el cuadro de la izquierda y corrija en el cuadro de la derecha los errores con precaución. Se puntúa negativamente señalar errores donde no los hay. ORG 0 SAL INI PAL: ESP 8 DP: DRE PAL PUN: ESP 1 K: ESP 1 OCHO: CTE 8 CERO: CTE 0 INI: CAR CERO ALM K CAR I DP ALM PUN BUC: ECA I PUN CAR PUN SUM UNO ALM PUN CAR K SUM UNO ALM K RES 8 SAN BUC SAC BUC FIN Ejercicio 15 Se desea diseñar un circuito lógico para una UAL de una computadora. Este circuito convierte un número entero codificado en complemento a 2 (A) a su formato en modo signo-valor absoluto (S). El formato modo signo-valor absoluto consiste en tomar el bit más significativo como bit de signo, y en los n-1 bits restantes codificar el valor absoluto del número en base 2. Por tanto, el registro A de la figura contiene un número en complemento a 2, y el registro S debe contener el A3 A2 A1 mismo número codificado en modo signo-valor absoluto. Considerar que A3 y S4 son los bits de signo de cada registro. Se pide: S4 CIRCUITO CONVERSOR S3 S2 S1 Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 10/12 a) Obtener la tabla de verdad del circuito b) Realizar el circuito con puertas lógicas de S2 conversor. A3 A2 A1 S4 S3 S2 S1 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Ejercicio 16 300 A) Los organizadores de una carrera ciclista han medido la carretera para conocer la inclinación de la misma. Cada vez que encontraban un cambio de pendiente 250 (véase figura) guardaban en un vector la altitud (medida en metros sobre el nivel 200 del mar) y en otro la distancia horizontal (en kilómetros medida desde la salida). De este modo llegaron a tener dos vectores vd y va como los mostrados en la figura conteniendo N medidas. Ahora los organizadores quieren saber la pendiente de cada tramo de carretera. 0 10 12 62 82 La pendiente se mide en metros de subida o bajada por kilómetro recorrido, por ejemplo el primer tramo de la figura tiene pendiente 5 m/Km mientras que el último tiene –5 m/Km. ⎡0⎤ ⎡200⎤ Dibuje un diagrama de flujo que proporcione el vector p de N-1 pendientes ⎡ 5⎤ ⎢ ⎥ ⎢250⎥ supuestos conocidos los dos vectores vd y va (de N componentes). Use acceso a ⎢ ⎥ ⎢10 ⎥ ⎥ ⎢ vectores mediante índices. Emplee únicamente expresiones en lenguaje natural y vd = ⎢12 ⎥ va = ⎢250⎥ p = ⎢ 0⎥ ⎢ 1⎥ operaciones aritméticas. Aclare las abreviaturas que utilice. ⎢ ⎥ ⎥ ⎢ ⎢ ⎥ ⎢62⎥ ⎢300 ⎥ ⎣ − 5⎦ ⎢⎣82⎥⎦ ⎢⎣200⎥⎦ B) Para ayudar a los organizadores en futuras carreras se ha de diseñar un diagrama de flujo que permita recoger los datos de distancias y alturas en los dos vectores ya citados vd y va. Se pretende que los organizadores sólo tengan que escribir cada distancia y la altura. Como el número N de cambios de pendiente no es conocido de antemano se propone que el programa recoja todos los datos que se le escriban hasta que se le proporcione una distancia negativa. El diagrama ha de detectar si se introduce una distancia negativa, pues ésa será la indicación de que no quedan más tramos. La tarea consiste pues en leer una distancia y a continuación una altura, si la distancia no es negativa se vuelve a leer nueva distancia y nueva altura, en caso contrario se finaliza. Nota: Use acceso a vectores mediante índices. Emplee únicamente expresiones en lenguaje natural y operaciones aritméticas. Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 11/12 Ejercicio 17 Dado el programa de la derecha, indicar en la tabla de abajo el contenido de cada registro de la máquina CESIUS al finalizar la ejecución de cada una de las instrucciones del mismo. Considérese como dato de entrada el carácter g . Recuerde que el código ASCII de la letra a es 97, y que los códigos ASCII de letras alfabéticamente consecutivas son consecutivos. VEC: DVEC: PUN: CA: CTER: INI: En la primera columna de la tabla de abajo, se debe anotar en decimal la dirección de memoria de la instrucción ejecutada. El contenido de los registros se debe representar en decimal. Utilice el mnemotécnico correspondiente en caso de que el registro contenga un código de instrucción o de direccionamiento. Suponga que al inicio de la ejecución del programa, todos los registros de la máquina toman un valor 0. Dirección P Instrucción I A T ORG SAL ESP DRE ESP CTE ESP LCA CAR RES SUM ALM CAR ALM I ESC ALT FIN S 0 INI 26 VEC 1 97 1 CTER CTER CA DVEC PUN CTER PUN PUN E Ejercicio 18 Dibuje un diagrama de flujo que resuelva el problema de escribir en la pantalla los índices k tales que: 2<vk<6 siendo v un vector conocido de antemano de N componentes. Ejercicio 19 Se desea crear un programa que permita calcular y=f(x) dado el valor de x (véase figura). A) Dibuje un diagrama de flujo que resuelva dicha tarea. Use acceso a vectores mediante índices. Emplee únicamente expresiones en lenguaje natural y operaciones aritméticas. B) Codifique en LS-2 el algoritmo. y 20 f(x) 15 10 5 -5 0 5 10 15 20 25 x Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 12/12 Ejercicio 20 X: V: DV: PUN. INI: ORG 109 SAL INI CTE 10 ESP 10 DRE V ESP 1 CAR PUN CAR DV ALM PUN SUM X ALM I PUN ALM PUN CAR DV ALM I PUN SAN INI ESC DV ALT FIN El programa en LS-2 del recuadro es traducido y ejecutado. Indique qué queda en los registros A, S y T y en las posiciones de memoria 111 y 121de la máquina CESIUS justo después de la parada de la máquina. A S Posición 111 de la memoria T Posición 121 de la memoria Indique la solución en los recuadros utilizando el SISTEMA DECIMAL para los números y el mnemotécnico para códigos de operación y modos de direccionamiento. Ejercicio 21 Se necesita diseñar un circuito con puertas lógicas con tres entradas y una salida. Las entradas son los tres bits de una cantidad binaria representada en un registro R. La cantidad representada está en base dos sin signo como se muestra en la figura. La salida s ha de valer uno si la cantidad representada en R es múltiplo de 3 y cero en caso contrario. Se pide: la tabla de verdad y el circuito lógico. s R a b c Ejercicio 22 Se tiene una memoria con organización matricial en la cual el ancho del registro es de 16 bits. Se quiere que la memoria tenga una capacidad de medio megacarácter. ¿Cuántos bits ha de tener el registro selector como mínimo?. Ejercicio 23 Indicar las transferencias elementales entre registros y las señales de gobierno correspondientes a la ejecución en CESIUS de las instrucciones correspondientes a la traducción de las siguientes sentencias de LS-2: ALM I ETI, SAL ETI, SAL I ETI. Fundamentos de Informática. 1er curso de ingenieros industriales. 1er parcial 2002-03 Nombre: Apellidos: 1/6 DNI: Se recomienda usar lápiz. Ponga sus datos en todas las hojas. Se prohíbe el uso de calculadoras. Inicio 1) [3.5 puntos] Dada una matriz M de m filas y n columnas y dado un índice de fila k y otro de columna j se desea averiguar tres cantidades: CA) El número de elementos de M que están en la columna j y cuyo valor absoluto es mayor que 1. CB) La suma de los elementos en la diagonal que pasa por mkj y que baja de izquierda a derecha, comenzando por el propio mkj y bajando (véanse ejemplos). CC) El elemento de M que ocupa la posición más alejada de mkj dentro de la fila k. Es decir, el que cae más lejos por la izquierda o la derecha (no tenga en cuenta la posibilidad de empate). Lectura de M, k y j Cálculo de CA Cálculo de CB Se pide: diseñar tres diagramas de flujo para calcular y escribir cada una de las cantidades indicadas. Tenga en cuenta que se desea que estos diagramas se usen dentro de otro mayor como se detalla en la figura de la derecha. Complete la tabla de variables. Cálculo de CC A modo de aclaración considere los ejemplos que se muestran a continuación. Fin j Datos 6 ⎛ 0 −3 1 ⎜ k ⎜ 9 −2 4 1 ⎜−7 3 −8 −5 ⎝ Matriz M Fila y columna CA Resultados CB CC k=2, j=3 CA = 2 CB = 4-5 = -1 CC = 9 j j ⎞ ⎟ ⎟ ⎟ ⎠ k 6 ⎞ ⎛ 0 −3 1 ⎜ ⎟ 1 ⎟ ⎜ 9 −2 4 ⎜− 7 3 −8 −5 ⎟ ⎝ ⎠ k=1, j=2 CA = 3 CB = -3+4-5 = -4 CC = 6 ⎛ 0 1 2⎞ ⎜ ⎟ k ⎜ 5 8 7⎟ ⎜ 3 3 0⎟ ⎝ ⎠ k=2, j=3 CA = 2 CB = 7 CC = 5 Complete la tabla de abajo con explicaciones acerca de las variables que haya utilizado en los diagramas de flujo. M k j m n CA CB CC Matriz variable real Variable entera Variable entera Variable entera Variable entera Variable entera Variable entera Variable entera Dato. Matriz de elementos reales. Dato que indica una fila de la matriz M Dato que indica una columna de la matriz M Número de filas de M Número de columnas de M Número de elementos de M en la columna j y con valor absoluto mayor que 1 Suma de la diagonal que pasa por mkj y que baja de izquierda a derecha El elemento de M que ocupa la posición más alejada de mkj dentro de la fila k Fundamentos de Informática. 1er curso de ingenieros industriales. 1er parcial 2002-03 Nombre: Apellidos: 2/6 DNI: Se recomienda usar lápiz. Ponga sus datos en todas las hojas. Se prohíbe el uso de calculadoras. Inicio cálculo y escritura CA Inicio cálculo y escritura CB Fin cálculo y escritura CA Inicio cálculo y escritura CC Fin cálculo y escritura CB No utilice más espacio que el indicado. Use acceso a vectores y matrices mediante subíndices. Emplee únicamente expresiones en lenguaje natural, operaciones aritméticas (+, -, ·, /, resto de la división entera), asignación (←) y comparaciones (>, <, =, ≠, ≤, ≥). Se puntuará la claridad y legibilidad de los diagramas. Fin cálculo y escritura CC Fundamentos de Informática. 1er curso de ingenieros industriales. 1er parcial 2002-03 Nombre: Apellidos: 3/6 DNI: Se recomienda usar lápiz. Ponga sus datos en todas las hojas. Se prohíbe el uso de calculadoras. 2) [1.5 puntos] Los n elementos de un vector v son los números enteros entre el 1 y el 6 ambos inclusive. Se sabe que n>1 y que puede ser mayor que 6, por lo que pueden existir valores repetidos dentro de v. Se necesita contar cuántas veces aparece cada uno de estos números. Por ejemplo si v=( 1 3 6 1 3 2 3 1 3 3 1) El recuento nos proporciona: 1: 4 veces, 2: 1 vez, 3: 5 veces, 4: 0 veces, 5: 0 veces, 6: 1 vez. Inicio recuento Escriba en el recuadro de la derecha un diagrama de flujo estructurado que proporcione el recuento deseado. En el ejemplo comentado anteriormente el algoritmo debe proporcionar la secuencia de números 4, 1, 5, 0, 0, 1 que son los recuentos de cada número. Suponga que el vector y su dimensión ya se han leído previamente. No utilice más espacio que el indicado. Use acceso a vectores y matrices mediante subíndices. Emplee únicamente expresiones en lenguaje natural, operaciones aritméticas (+, -, ·, /, resto de la división entera), asignación (←) y comparaciones (>, <, =, ≠, ≤, ≥). Complete la tabla de abajo con explicaciones acerca de las variables que haya utilizado en los diagramas de flujo. Se puntuará la claridad del diagrama, su buen funcionamiento y las explicaciones en la tabla. v N Vector variable Dato de enteros Variable entera Número de elementos de v Fin recuento Fundamentos de Informática. 1er curso de ingenieros industriales. 1er parcial 2002-03 Nombre: Apellidos: 4/6 DNI: Se recomienda usar lápiz. Ponga sus datos en todas las hojas. Se prohíbe el uso de calculadoras. 3) [1 punto] Se desea construir un circuito de puertas lógicas como el representado en la figura. El circuito servirá para convertir un número binario de tres dígitos en otro de cuatro. El primer número proviene de un registro A y representa una cantidad entera x. Esta cantidad puede ser positiva, cero o negativa y está expresada en A mediante signo-valor absoluto siendo a2 el bit de signo. El segundo número se almacena en el 2 registro R y representa la cantidad |x| -2 expresada en complemento a dos. Se pide: escribir la tabla de verdad en el recuadro de la derecha. A a2 a1 a0 a2 a1 a0 R r3 r2 r1 r0 Circuito de puertas lógicas 4) [2.5 puntos] Dado un punto (x,y) en el plano y una circunferencia de radio R centrada en el origen, la relación entre x2+y2 y R2 nos indica si el punto es interior, exterior o si pertenece a la circunferencia. El diagrama de flujo de la derecha representa un algoritmo cuya finalidad es leer N pares (x,y) y contar cuántos se encuentran en el interior, cuántos en la línea y cuántos en el exterior de la circunferencia de radio R. Para ello se dispone un vector cont, cuyas tres componentes son contadores de los puntos interiores, en la circunferencia y exteriores respectivamente. Como se puede ver, al inicio del algoritmo los contadores son puestos a cero. Posteriormente cada punto es procesado y el contador correspondiente incrementado. N R x y d2 cont contj j k r3 r2 r1 r0 Variable entera Variable real Variable real Variable real Variable real Vector de enteros Variable entera Variable entera Variable entera Número de puntos (x,y) que se procesan Radio de la circunferencia centrada en el origen Abcisa en el plano Ordenada en el plano Cuadrado de la distancia de (x,y) al origen Vector de contadores. Componente j-ésima del vector de contadores. Con j=1 se indica el contador de puntos interiores. El de puntos en la circunferencia es cont2 y el de puntos exteriores corresponde a j=3 Índice para acceder a las componentes de cont Contador del número de puntos procesados inicio Leer N y R Iniciar vector de contadores a 0 k←1 Leer x e y d2 ←x·x + y·y no ¿d2 < R·R? sí ¿d2 = R·R? j←2 no sí j←1 j←3 cont j ← cont j + 1 k ← k+1 ¿k ≤ N? sí no fin Se pide codificar el algoritmo en LS2 (únicamente la parte indicada con un recuadro de línea discontinua) utilizando el espacio de la página siguiente, incluyendo los comentarios que crea oportunos. No coloque más que una sentencia por renglón. No borre nada de lo que ya se proporciona. Fundamentos de Informática. 1er curso de ingenieros industriales. 1er parcial 2002-03 Nombre: Apellidos: Se recomienda usar lápiz. Ponga sus datos en todas las hojas. Se prohíbe el uso de calculadoras. 4) continuación N: R: K: J: D2: X: Y: CONT: DCONT: PUN: C1: C2: C3: ORG SAL ESP ESP ESP ESP ESP ESP ESP ESP DRE ESP CTE CTE CTE INI: LEE LEE ... ... CAR ALM 0 INI 1 1 1 1 1 1 1 3 CONT 1 1 2 3 N R ‘ inicio cont a cero ‘ se supone ya hecho C1 K ALT FIN 5/6 DNI: Fundamentos de Informática. 1er curso de ingenieros industriales. 1er parcial 2002-03 Nombre: Apellidos: 6/6 DNI: Se recomienda usar lápiz. Ponga sus datos en todas las hojas. Se prohíbe el uso de calculadoras. 5) [1.5 puntos] Dado el programa en LS-2 del recuadro de la derecha, indique en la tabla de abajo el contenido de cada registro de la máquina CESIUS tras la ejecución de cada instrucción del programa. V: DV: PUN: C3: D3: C10: INI: Tenga en cuenta lo siguiente: • En la primera columna de la tabla de abajo se debe anotar la dirección de memoria de la instrucción que se ha ejecutado. • El contenido de los registros se debe representar en decimal. • Recuerde que se representará el estado del registro TRAS haber completado la instrucción. • Utilice el mnemotécnico para representar el código de operación y modo de direccionamiento en caso de que el contenido del registro sea una instrucción. • Suponga que al inicio de la ejecución del programa, todos los registros de la máquina tienen el valor 0 excepto P que tendrá el valor adecuado que le corresponda. BUC: SIGUE: Dirección Instrucción P I A T S ORG SAL ESP DRE ESP CTE DRE CTE CAR SUM ALM CAR ALM RES SAN SAL CAR SUM ALM CAR ESC ALT FIN 10 INI 4 V 1 3 C3 10 DV I D3 PUN PUN I PUN C10 BUC SIGUE C3 PUN PUN C10 I PUN E Antes de entregar compruebe que ha puesto sus datos en todas las hojas. No entregue las hojas de borrador, sólo las páginas de enunciado. DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial . Febrero de 2004. 1/6 Apellidos Nombre DNI Escriba sus datos personales en todas y cada una de las hojas al comienzo del examen. Se recomienda que use lápiz. Escriba las respuestas únicamente en el espacio indicado. CUESTIÓN 1 (2 puntos) En la figura adjunta se muestra un dispositivo para mostrar dígitos decimales. El dispositivo consta de 7 bombillitas, llamadas en la figura a,b,c,d,e,f y g. Se desea diseñar un circuito lógico que recibe un número binario natural positivo de 3 bits (en la figura A1, A2, A3) tal que represente en el dispositivo el número correspondiente en decimal, encendiendo las bombillitas que correspondan. a CIRCUITO A3 A2 c LÓGICO A1 g Se pide: a) Realizar la tabla de verdad de todas las bombillitas. Responda en la tabla inferior. No tienen que estar rellenas todas las filas. b) Calcular las expresiones de las funciones lógicas de las bombillitas “e” y “c”, de la forma más sencilla que crea posible, e implementar el circuito con puertas lógicas de las mismas. a) A3 A2 A1 DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial . Febrero de 2004. 2/6 Apellidos Nombre DNI Escriba sus datos personales en todas y cada una de las hojas al comienzo del examen. Se recomienda que use lápiz. Escriba las respuestas únicamente en el espacio indicado. b) DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial . Febrero de 2004. 3/6 Apellidos Nombre DNI Escriba sus datos personales en todas y cada una de las hojas al comienzo del examen. Se recomienda que use lápiz. Escriba las respuestas únicamente en el espacio indicado. CUESTIÓN 2 (2 puntos) a) El siguiente programa en C debe calcular el número de vacas exacto a partir del número de patas en total. Se han numerado las líneas de código para que rellene las casillas de abajo con los fallos de codificación que cree que hay en el programa, y las correspondientes correcciones, indicando la línea de código. 1. 2. 3. 4. 5. 6. 7. 8. 9. #include <stdio.h> void main(void) { vacas; patas int; printf(“¿Cuantas patas has contado?\n”); scanf("%c", patas); vacas = patas/4; printf("Me parece que debe haber %f vacas.\n", vacas); } Número de línea de código Fallo Corrección b) Modifique el siguiente programa en C para que la función definida como media no devuelva ningún valor, pero la calcule adecuadamente. Sólo debe rellenar los huecos. #include <stdio.h> #include <stdio.h> void main(void) { int x; int y; float m; float media(int, int); printf("Primer dato:"); scanf("%d",&x); printf("Segundo dato:"); scanf("%d",&y); m = media(x,y); printf("Media = %f", m); } void main(void) { float media(int a, int b) { float m; m = (a+b)/2.0; return m; } void media(int a, int b) { printf("Primer dato:"); scanf("%d",&x); printf("Segundo dato:"); scanf("%d",&y); printf("Media = %f", m); } } DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial . Febrero de 2004. 4/6 Apellidos Nombre DNI Escriba sus datos personales en todas y cada una de las hojas al comienzo del examen. Se recomienda que use lápiz. Escriba las respuestas únicamente en el espacio indicado. CUESTIÓN 3 (3 puntos) Dibujar los diagramas de flujo que resuelven los siguientes problemas y rellenar las tablas de variables de cada uno: a) Suponga leída una secuencia binaria v de N bits, encontrar la primera secuencia de S unos seguidos y escribir por pantalla la posición del primer uno dentro de la secuencia v. Si no se encuentra ninguna secuencia de S unos seguidos, mostrar por pantalla un cero. b) Si la secuencia binaria leída representa un nº en base 2 tal que vN es el bit menos significativo, calcular el número que representa en base 10 y escribirlo en pantalla. Ejemplo: N=11 S =3 1 v1 0 v2 0 v3 1 v4 1 v5 1 v6 1 v7 1 v8 0 v9 0 v10 1 v11 a) Por pantalla: 4 b) Por pantalla: 1273 No utilice más espacio que el indicado. Use acceso a vectores y matrices mediante subíndices. Emplee únicamente expresiones en lenguaje natural, operaciones aritméticas (+, -, ·, /, resto de la división entera), asignación (←) y comparaciones (>, <, =, ≠, ≤, ≥). Se puntuará la claridad y legibilidad de los diagramas. a) v N S Vector de variables enteras Variable entera Variable entera Dato. Secuencia leída de bits. Dato. Número de bits de la secuencia leída. Dato. Número de bits a 1 que localizar en v. b) v N Vector de variables enteras Variable entera Dato. Secuencia leída de bits. Dato. Número de bits de la secuencia leída. DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial . Febrero de 2004. 5/6 Apellidos Nombre DNI Escriba sus datos personales en todas y cada una de las hojas al comienzo del examen. Se recomienda que use lápiz. Escriba las respuestas únicamente en el espacio indicado. Inicio a Inicio b Fin a Fin b DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial . Febrero de 2004. 6/6 Apellidos Nombre DNI Escriba sus datos personales en todas y cada una de las hojas al comienzo del examen. Se recomienda que use lápiz. Escriba las respuestas únicamente en el espacio indicado. CUESTIÓN 4 ( 3 puntos) TABLA: Dado el programa en LS-2 del recuadro de la derecha: a) Indique en la tabla de abajo el contenido de cada registro de la máquina CESIUS tras la ejecución de cada instrucción del programa. M: N: K: J: PUN: DT: UNO: INI: Tenga en cuenta lo siguiente: • En la primera columna de la tabla de abajo se debe anotar la dirección de memoria de la instrucción que se ha ejecutado. • El contenido de los registros se debe representar mediante códigos mnemónicos y números decimales. • Recuerde que se representará el estado del registro TRAS haber completado la instrucción. • Utilice el mnemotécnico para representar el código de operación y modo de direccionamiento en caso de que el contenido del registro sea una instrucción. • Suponga que al inicio de la ejecución del programa, todos los registros de la máquina tienen el valor 0 excepto P y la memoria, que tendrán el valor adecuado que le corresponda. END: ORG SAL CTE CTE CTE CTE CTE CTE CTE CTE ESP ESP ESP DRE CTE LEE LEE CAR RES MUL SUM RES SUM ALM CAR I SAN SAL ALT FIN 10 INI 2 5 -3 0 2 -25 2 3 1 1 1 TABLA 1 K J K UNO N J UNO DT PUN PUN END INI S E b) Indique el contenido binario de las siguientes direcciones de memoria 16 22 33 (el código de operación de la instrucción carga es 0010) Dirección Instrucción P I A T Dpto. Ing. de Sistemas y Automática. U. de Sevilla. Examen Final de Junio. Fundamentos de Informática er 1 curso Ingeniero Industrial. 21 de Junio de 2004 APELLIDOS: NOMBRE: D.N.I.: Escriba las respuestas en los recuadros indicados. Utilice la parte de atrás como borrador. Los resultados han de ir únicamente en los recuadros. Entregue todas las hojas con su nombre y apellidos. Figurita original CUESTIÓN 1 (3.5 Puntos) Se desea hacer un cierto algoritmo para un juego. El algoritmo recibe una matriz A de dimensiones 3x3. La matriz describe una cierta figurita en blanco y negro. Los elementos de la matriz aij contienen unos (color negro) para representar elementos de la figurita y ceros (color blanco) en otro caso. Por ejemplo véase en la figura de la derecha que se representa con unos una sencilla figura, que podría ser el carácter “L”, y el resto de componentes de la matriz son cero. El algoritmo lee desde el teclado los elementos aij de la matriz A y una variable p. Según el valor de p el algoritmo debe hacer lo siguiente: 1 0 0 1 0 0 1 1 0 Rotación a derechas • Si p=1, debe rotar la figura a derechas 90 grados. 1 1 1 • Si p=2, debe hacer un Flip horizontal respecto de la fila central, es decir hacer una imagen especular de las filas superior e inferior. 1 0 0 • Si p>2, el algoritmo continua y escribe la matriz resultante B. 0 0 0 El algoritmo se representa en la figura de abajo a la izquierda, en forma de diagrama de flujo. En dicho diagrama de flujo ya está implementada la parte de lectura desde el teclado de los elementos aij de la matriz A y la variable p. También se tienen inicializados a cero los subíndices i y j. Se pide que se completen los dos diagramas de flujo correspondientes a la rotación y al flip de la figurita representada en la matriz A, de modo que no pueden definirse más subíndices que los ya inicializados i y j. Además la matriz resultante de la rotación o del flip debe almacenarse en los elementos bij de una matriz B, ya inicializada. INICIO MODULO Eje de giro Flip horizontal 0 0 0 1 0 0 1 1 1 INICIO ROTACIÓN A DERECHAS INICIO FLIP HORIZONTAL FIN ROTACIÓN A DERECHAS FIN FLIP HORIZONTAL LEE MATRIZ A y variable p SI ROTACIÓN A DERECHAS NO NO ¿p=1? FLIP HORIZONTAL ¿p>2? SI ESCRIBE MATRIZ B SI FIN MODULO Hoja 1/4 Dpto. Ing. de Sistemas y Automática. U. de Sevilla. Examen Final de Junio. Fundamentos de Informática er 1 curso Ingeniero Industrial. 21 de Julio de 2004 Nº MATRÍCULA/D.N.I.: NOMBRE: Escriba las respuestas en los recuadros indicados. Utilice la parte de atrás como borrador. Los resultados han de ir únicamente en los recuadros. Entregue todas las hojas con su nombre y apellidos. CUESTIÓN 2 (3.5 Puntos) Se desea realizar un algoritmo que lea un número entero (positivo o negativo) y escriba dicho número en binario codificado en modo signo-valor absoluto en N bits. Asuma que el número se puede representar con N bits. La representación en modo signo-valor absoluto consiste en considerar el bit más significativo (el 1º) como bit de signo (0 positivo, 1 negativo) y en los N-1 bits restantes codificar en binario el valor absoluto del número (ver ejemplos). Para solucionar este problema se propone lo siguiente: 1) Realice un diagrama de flujo correspondiente a un módulo que tome un número positivo num y determine un vector b de N componentes que contiene la codificación binaria en base 2 del mismo. Considere que la componente b1 corresponde al bit menos significativo (el último), y la bN al signo. 2) Utilizando el módulo anterior, realice un diagrama de flujo que solucione el problema Por ejemplo: Si se lee el número 100 y se consideran 8 bits, el módulo del apartado 1) genera el vector b=[0,0,1,0,0,1,1,0] y el diagrama completo escribe la secuencia 01100100. Si se lee el número -100 y se consideran 8 bits, el módulo del apartado 1) genera el mismo vector b=[0,0,1,0,0,1,1,0] y el diagrama completo escribe la secuencia 11100100. INICIO DEL MÓDULO INICIO DEL DIAGRAMA PRINCIPAL FIN DEL MÓDULO FIN DEL DIAGRAMA PRINCIPAL Hoja 2/4 Dpto. Ing. de Sistemas y Automática. U. de Sevilla. Examen Final de Junio. Fundamentos de Informática er 1 curso Ingeniero Industrial. 21 de Julio de 2004 Nº MATRÍCULA/D.N.I.: NOMBRE: Escriba las respuestas en los recuadros indicados. Utilice la parte de atrás como borrador. Los resultados han de ir únicamente en los recuadros. Entregue todas las hojas con su nombre y apellidos. CUESTIÓN 3 (3 Puntos) Responda las siguientes cuestiones en los cuadros o tablas indicadas. 3.1. ¿Cuántos caracteres (bytes) forman 1 Gigacaracter (Gigabyte)? 3.2. Rellene la tabla de verdad correspondiente al circuito de puertas lógicas de la figura a b S1 S2 S3 3.3. Indique las transferencias elementales entre registros y las señales de gobierno necesarias en orden de activación y separadas por comas correspondientes a cada transferencia para la ejecución de la instrucción SAL ETI en la máquina CESIUS. Transferencias Señales de gobierno 3.4. ¿En qué se diferencian los conceptos de instrucción y pseudoinstrucción? 3.5. ¿Cuál de estos diagramas de flujo está desestructurado? Razone su respuesta. Inicio Inicio R <- 0 SI ¿ a>2 ? NO b <- b+1 ¿R=0? SI ¿ a>2 ? NO SI R <- 2 NO SI ¿ b<1 ? R <- R-1 NO A Fin B Fin 3.6. Indique 3 funciones genéricas de un sistema operativo o de explotación. Hoja 3/4 Dpto. Ing. de Sistemas y Automática. U. de Sevilla. Examen Final de Junio. Fundamentos de Informática er 1 curso Ingeniero Industrial. 21 de Julio de 2004 Nº MATRÍCULA/D.N.I.: NOMBRE: Escriba las respuestas en los recuadros indicados. Utilice la parte de atrás como borrador. Los resultados han de ir únicamente en los recuadros. Entregue todas las hojas con su nombre y apellidos. 3.7. Si las variables utilizadas en un programa se definen en la tabla de la figura, ¿con qué conjunto de instrucciones se actualizaría en LS2 el puntero para acceder al elemento (CF,CC) de una matriz y escribirlo por pantalla? PUN DCM M N CF CC UNO Puntero a un elemento de la matriz Dirección de comienzo de la matriz en memoria Nº de elementos de una fila Nº de elementos de una columna Índice de filas de 1 a M Índice de columnas de 1 a N Constante 1 3.8. En el cuadro A, dibuje el diagrama de flujo que resuelve el problema “Leer las 10 componentes de un vector de dimensión 10”. En el cuadro B, escriba el programa en LS2 y en cuadro C, escriba el programa en lenguaje C. Las variables se nombrarán según PUN DV K V Puntero a un elemento del vector Dirección de comienzo del vector Entero índice de las componentes del vector Vector de 10 enteros A: Diagrama de Flujo B: LENGUAJE LS2 V: ORG 0 SAL INI ESP 10 Hoja 4/4 C: LENGUAJE C DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial. Septiembre de 2004. 1/6 Apellidos Nombre DNI Escriba sus datos personales en todas y cada una de las hojas al comienzo del examen. Se recomienda que use lápiz. Escriba las respuestas únicamente en el espacio indicado. CUESTIÓN 1 (1.75 puntos) Considere una secuencia de N bits almacenados en un vector b de N componentes de forma que bN almacena el bit más significativo de la secuencia. Se pide realizar un algoritmo que obtenga el número en octal (en base 8), lo almacene en el vector d y lo escriba en pantalla. Para pasar de un número en base 2 a base 8, basta con tomar los bits de la secuencia de 3 en 3 e interpretarlos como un número decimal. Véase el siguiente ejemplo, en el que el número binario 01011110 se transforma en el 136 en base 8. b d b8 0 1=01 d3 b7 1 ) 2 b6 0 3=011 d2 b5 1 ) 2 b4 1 b3 1 6=110 d1 b2 1 ) b1 0 2 Para realizar el algoritmo se pide a) Un módulo que tome un número binario de 3 bits almacenado en un vector v y calcule el dígito decimal que representa. b) Basándose en el anterior, hacer el diagrama de flujo que resuelve el problema. b Vector de N enteros M d Entero. Número de componentes de d Vector de M enteros DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial. Septiembre de 2004. 2/6 Apellidos Nombre DNI Escriba sus datos personales en todas y cada una de las hojas al comienzo del examen. Se recomienda que use lápiz. Escriba las respuestas únicamente en el espacio indicado. CUESTIÓN 2 (1.5 puntos) 2.1. ¿Cuáles son las partes fundamentales de la estructura de un ordenador propuesta por Von Neumann? 2.2. Dada la tabla de verdad de la figura, dibuje una realización con puertas lógicas. a b c L 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 2.3. Indique las fases de ejecución de la instrucción SUMA ETI y las transferencias entre registros en cada una de ellas. 2.4. ¿Qué es un puntero? Si llamamos al puntero con la etiqueta PUN, indique cómo se indicaría, usando transferencias entre registros, el objeto al que se apunta en un direccionamiento indirecto. Objeto = DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial. Septiembre de 2004. 3/6 Apellidos Nombre DNI Escriba sus datos personales en todas y cada una de las hojas al comienzo del examen. Se recomienda que use lápiz. Escriba las respuestas únicamente en el espacio indicado. 2.5. ¿Qué indica el símbolo ¿y el símbolo en un diagrama de flujo? Explique. ? 2.6. ¿Para qué sirve la pseudoinstrucción DRE en LS2? 2.7. ¿En qué consiste un sistema multitarea? DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial. Septiembre de 2004. 4/6 Apellidos Nombre DNI Escriba sus datos personales en todas y cada una de las hojas al comienzo del examen. Se recomienda que use lápiz. Escriba las respuestas únicamente en el espacio indicado. 2.8. Realice el diagrama de flujo, el programa en LS2 y el programa en C que resuelva el siguiente problema: Leer un número entero N. Leer las N componentes de un vector de reales de dimensión N de la 1 a la N y escribirlas luego en pantalla de la N a la 1. Se supone que N siempre va a ser menor o igual que 100 (no hay que comprobarlo). PUN DV V Puntero a un elemento del vector Dirección de comienzo del vector Vector de 10 números reales DIAGRAMA DE FLUJO N K Entero, tamaño del vector Entero índice de las componentes del vector CÓDIGO EN LS2 ETIQUETAS, INST o PSEUDOINST CÓDIGO EN C DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial. Septiembre de 2004. 5/6 Apellidos Nombre DNI Escriba sus datos personales en todas y cada una de las hojas al comienzo del examen. Se recomienda que use lápiz. Escriba las respuestas únicamente en el espacio indicado. CUESTIÓN 3 (1.75 puntos) a) El circuito lógico de la figura convierte un número binario de 4 bits (A4 A3 A2 A1) en un código binario de 7 bits, el cual representa un dígito decimal en un marcador electrónico. El marcador consta de 7 bombillitas, llamadas en la figura a,b,c,d,e,f y g. Por ejemplo, si el circuito lógico recibe como entrada, en el registro de 4 bits, el código binario “0001” aparece en el marcador electrónico el número “1”, encendiendo dicho circuito las a A4 CIRCUITO A3 A2 c LÓGICO A1 g bombillitas b y c. Complete las casillas vacías de la tabla lógica adjunta que describe el funcionamiento del circuito lógico. NOTA: el estado de las bombillitas es: “0” apagada y “1” encendida. DECIMAL 0 1 2 3 4 5 6 7 8 9 NÚMERO BINARIO A4 A3 A2 A1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1 NÚMERO REPRESENTADO EN EL MARCADOR CÓDIGO BINARIO BOMBILLAS NÚMERO DECIMAL CORRESPONDIENTE g f e d c b a 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 = = = = = = = = = = 63 91 109 127 b) Para poder utilizar el marcador en el estadio de fútbol municipal, se substituye el circuito lógico por la computadora CESIUS. Además se usarán dos marcadores electrónicos, uno para el equipo local y el otro para el equipo visitante. La conexión con la computadora CESIUS se hace del modo siguiente: se desconecta la pantalla del registro de entrada salida (E) y se conectan los marcadores como se ve en la figura adjunta. Desde el punto de vista del funcionamiento de la computadora CESIUS no ha cambiado nada, sólo ha cambiado el periférico pantalla por otro periférico formado por los dos marcadores. Dichos marcadores están conectados físicamente al registro E como se ve en la figura, donde las 7 primeras celdas se conectan a las bombillitas correspondientes y la octava celda denominada EN se conecta a la entrada EN de los marcadores. La nueva entrada EN de los marcadores funciona como un interruptor tal que, si el bit EN del registro E está a “0” los datos pasan al marcador local, y si está a “1” pasan al visitante. Termine el programa en LS2 que está comenzado. El programa espera a leer desde el teclado los tanteos del equipo local y visitante. Una vez leídos ambos tanteos debe escribir dicho tanteo en sendos marcadores. DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial. Septiembre de 2004. 6/6 Apellidos Nombre DNI Escriba sus datos personales en todas y cada una de las hojas al comienzo del examen. Se recomienda que use lápiz. Escriba las respuestas únicamente en el espacio indicado. NOTAS: Todos los registros de la computadora están por defecto a cero. No se pueden usar más reservas de espacio en memoria ni constantes adicionales. La dirección de memoria DIRLIBRE está libre para almacenar lo que estime oportuno. CESIUS S A P I E EN LOCAL … EN g f e d c b a EN INSTRUCCIÓN f e d c b a g f e d c b a VISITANTE PROGRAMA EN LS2 ETIQUETAS g T DIR/DATO INSTRUCCIÓN COMENTARIO ORG 0 SAL INI DATOS : CTE ______ CTE ______ CTE ______ CTE ______ CTE ______ CTE ______ CTE ______ CTE ______ CTE ______ CTE ______ DIRDATOS : DRE DATOS PUN : ESP 1 EN : CTE 128 LOCAL : ESP 1 VISITANTE : ESP 1 DIRLIBRE : ESP 1 INI : LEE LOCAL LEE VISITANTE … (Continúe el programa a partir de aquí) ’X0 ‘X1 ‘X2 ‘X3 ‘X4 ‘X5 ‘X6 ‘X7 ‘X8 ‘X9 DIR/DATO