ejercicios del primer cuatrimestrejaar/datos/fi/boletin_1c_0405.pdf · fundamentos de informática,...

34
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 [x i , x f ] y tal que corta a y=0; se toma el punto medio del intervalo x m =(x i +x f )/2; se evalúa la función en dicho punto f(x m ) pudiéndose dar 3 casos: 1. Signo de f(x m ) = signo de f(x i ). En este caso se toma el intervalo [x m ,x f ], y se repite el proceso. 2. Signo de f(x m ) = signo de f(x f ). En este caso se toma el intervalo [x i ,x m ], y se repite el proceso. 3. Signo de f(x m ) = 0. En este caso no se busca más, se ha hallado un cero de f(x) en el intervalo [x i ,x f ]. x i x f f(x) 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 [x i , x f ] 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 x 0 del modo siguiente: f(x 0 ). 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 log 2 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 f abc N f abc

Upload: others

Post on 16-Apr-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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: 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

f(x)

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

f

a b c

N

f

a b c

Page 2: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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. 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.

Dirección Instrucción

P I A T S E

ORG 0

SAL INI

D1: CTE 10

D2: CTE 0

DD: DRE D1

P: ESP 1

UNO: CTE 1

N: CTE 2

INI: CAR DD

ALM P

B2: CAR I P

SAC B1

ESC I P

CAR P

SUM UNO

ALM P

RES DD

RES N

SAN B2

B1: ALT

FIN

Page 3: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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

Locales Globales Función definida Nombre Tipo Nombre Tipo

Page 4: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 4/12

Ejercicio 5 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. A modo de aclaración considere los ejemplos que se muestran a continuación.

Matriz M

Datos

Fila y columna k=2, j=3 k=1, j=2 k=2, j=3 CA CA = 2 CA = 3 CA = 2 CB CB = 4-5 = -1 CB = -3+4-5 = -4 CB = 7 Resultados CC CC = 9 CC = 6 CC = 5

Inicio

Fin

Lectura de

M, k y j

Cálculo de CA

Cálculo de CB

Cálculo de CC

Inicio

Fin

Lectura de

M, k y j

Cálculo de CA

Cálculo de CB

Cálculo de CC

k

j

⎟⎟⎟

⎜⎜⎜

−−−−−

583714296130

k

j

⎟⎟⎟

⎜⎜⎜

−−−−−

583714296130

⎟⎟⎟

⎜⎜⎜

−−−−−

583714296130k

j

⎟⎟⎟

⎜⎜⎜

−−−−−

583714296130k

j

⎟⎟⎟

⎜⎜⎜

033785210

k

j

⎟⎟⎟

⎜⎜⎜

033785210

k

j

Page 5: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12

in ic ia r k a 1y E n c o n t r a d o a 0

S I

N O

In ic io b u s c a r c e r c a n o

¿ E n c o n t r a d o = 0 ?

In c re m e n ta r k

¿ v k < x ?

C e r c a n o v kE n c o n t r a d o 1

S I

N O

¿ v k > C e r c a n o ?

C e r c a n o v k

S I

N O

F in a l b u s c a r c e rc a n o

S I

N O

¿ k < N ?

In c re m e n ta r k

¿ v k < x ?S I

N O

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.

ALT

FIN

ORG 0 SAL INI K: ESP 1 N: ‘se supone dado N V: ‘se supone dado el ‘vector de tamaño N X: ‘se supone dado DCV: DRE V PUN: ESP 1 CERC: ESP 1 ‘CERCANO ENCO: ESP 1 ‘ENCONTRADO CERO: CTE 0 UNO: CTE 1 ‘inicio de instrucciones ‘del diagrama de flujo INI: CAR UNO ALM K

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

Page 6: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 6/12

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 Instrucción

P I A T S 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.

ORG 0

SAL INI

V: ESP 5

DV: DRE V

PUN: ESP 1

C2: CTE 2

C5: CTE 5

D5: DRE C5

INI: CAR D5

ALM PUN

RES C2

SAN SALIR

SAP FINAL

SALIR: CAR C5

FINAL: ALM PUN

SUM I D5

ESC I PUN

ALT

FIN

Page 7: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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:

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 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.

Dirección de memoria Contenido (en binario)

ORG 5 SAL INI PUN: ESP 1 MAT ESP 6 DMAT: DRE MAT MOCHO:CTE -8 INI: CAR DMAT ALM PUN CAR MOCHO ALM I PUN

ALT FIN

∑=

=N

kkas

1

⎥⎦

⎤⎢⎣

⎡=

416016521214447018020101

M

Page 8: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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

Registro S en binario: ORG 0 SAL INI

DAT: ESP 5 DV: DRE DAT PUN: ESP 1 X: ESP 1 Y: ESP 1 CONT: ESP 1 CINCO:CTE 5 UNO: CTE 1 MUNO: CTE -1 DOS: CTE 2 INI: CAR CINCO ALM CONT CAR DV ALM PUN RES DOS ALM I PUN

BUCLE:CAR I PUN ALM X CAR PUN SUM UNO ALM PUN CAR X MUL DOS MUL MUNO ALM I PUN MOD DOS SAP SIG ESC I PUN SIG: CAR CONT RES UNO ALM CONT SAP BUCLE ALT FIN

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:

“La suma de los elementos de cada fila debe ser 10” 101

=∑=

n

jkja mk L1=∀

Por ejemplo: 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

A = ⎥⎦

⎤⎢⎣

⎡−

−21011

6642 A =

⎥⎥⎥

⎢⎢⎢

1000102622

Sí satisface (Resultado = 1) No satisface (Resultado=0)

Page 9: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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. 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 mismo número codificado en modo signo-valor absoluto. Considerar que A3 y S4 son los bits de signo de cada registro. Se pide:

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

A3 A1A2

S3

S2

S1

CIRCUITOCONVERSOR

S4

Page 10: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 10/12

a) Obtener la tabla de verdad del circuito

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

b) Realizar el circuito con puertas lógicas de S2

Ejercicio 16 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 (véase figura) guardaban en un vector la altitud (medida en metros sobre el nivel 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. 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.

Dibuje un diagrama de flujo que proporcione el vector p de N-1 pendientes supuestos conocidos los dos vectores vd y va (de N componentes). Use acceso a vectores mediante índices. Emplee únicamente expresiones en lenguaje natural y operaciones aritméticas. Aclare las abreviaturas que utilice.

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.

200250300

0 10 12 62 82

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

826212100

vd

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

200300250250200

va⎥⎥⎥⎥

⎢⎢⎢⎢

=

5105

p

200250300

0 10 12 62 82

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

826212100

vd

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

200300250250200

va⎥⎥⎥⎥

⎢⎢⎢⎢

=

5105

p

Page 11: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 11/12

-5 0 5 10

5

10

15 20 x

y

f(x)15

25

20

-5 0 5 10

5

10

15 20 x

y

f(x)15

25

20

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. 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 Instrucción

P I A T S 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.

ORG 0

SAL INI

VEC: ESP 26

DVEC: DRE VEC

PUN: ESP 1

CA: CTE 97

CTER: ESP 1

INI: LCA CTER

CAR CTER

RES CA

SUM DVEC

ALM PUN

CAR CTER

ALM I PUN

ESC PUN

ALT

FIN

Page 12: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 12/12

Ejercicio 20

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.

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.

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.

A S T

Posición 111 de la memoria Posición 121 de la memoria

ORG 109 SAL INI X: CTE 10 V: ESP 10 DV: DRE V PUN. ESP 1 INI: CAR PUN CAR DV ALM PUN SUM X ALM I PUN ALM PUN CAR DV ALM I PUN SAN INI ESC DV ALT FIN

a b cR

s

Page 13: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Fundamentos de Informática. 1er curso de ingenieros industriales. 1er parcial 2002-03 1/6 Nombre: Apellidos: DNI: Se recomienda usar lápiz. Ponga sus datos en todas las hojas. Se prohíbe el uso de calculadoras. 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). 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. A modo de aclaración considere los ejemplos que se muestran a continuación.

Matriz M

Datos

Fila y columna k=2, j=3 k=1, j=2 k=2, j=3 CA CA = 2 CA = 3 CA = 2 CB CB = 4-5 = -1 CB = -3+4-5 = -4 CB = 7 Resultados CC CC = 9 CC = 6 CC = 5

Complete la tabla de abajo con explicaciones acerca de las variables que haya utilizado en los diagramas de flujo. M Matriz variable real Dato. Matriz de elementos reales. k Variable entera Dato que indica una fila de la matriz M j Variable entera Dato que indica una columna de la matriz M m Variable entera Número de filas de M n Variable entera Número de columnas de M CA Variable entera Número de elementos de M en la columna j y con valor absoluto mayor que 1 CB Variable entera Suma de la diagonal que pasa por mkj y que baja de izquierda a derecha CC Variable entera El elemento de M que ocupa la posición más alejada de mkj dentro de la fila k

Inicio

Fin

Lectura de

M, k y j

Cálculo de CA

Cálculo de CB

Cálculo de CC

Inicio

Fin

Lectura de

M, k y j

Cálculo de CA

Cálculo de CB

Cálculo de CC

k

j

⎟⎟⎟

⎜⎜⎜

−−−−−

583714296130

k

j

⎟⎟⎟

⎜⎜⎜

−−−−−

583714296130

⎟⎟⎟

⎜⎜⎜

−−−−−

583714296130k

j

⎟⎟⎟

⎜⎜⎜

−−−−−

583714296130k

j

⎟⎟⎟

⎜⎜⎜

033785210

k

j

⎟⎟⎟

⎜⎜⎜

033785210

k

j

Page 14: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Fundamentos de Informática. 1er curso de ingenieros industriales. 1er parcial 2002-03 2/6 Nombre: Apellidos: DNI: Se recomienda usar lápiz. Ponga sus datos en todas las hojas. Se prohíbe el uso de calculadoras.

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.

Inicio cálculo y escritura CC

Fin cálculo y escritura CC

Inicio cálculo y escritura CC

Fin cálculo y escritura CC

Inicio cálculo y escritura CA

Fin cálculo y escritura CA

Inicio cálculo y escritura CAInicio cálculo y escritura CA

Fin cálculo y escritura CAFin cálculo y escritura CA

Inicio cálculo y escritura CB

Fin cálculo y escritura CB

Inicio cálculo y escritura CB

Fin cálculo y escritura CB

Page 15: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Fundamentos de Informática. 1er curso de ingenieros industriales. 1er parcial 2002-03 3/6 Nombre: Apellidos: 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. 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 Vector variable de enteros

Dato

N Variable entera Número de elementos de v

Inicio recuento

Fin recuento

Inicio recuento

Fin recuento

Page 16: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Fundamentos de Informática. 1er curso de ingenieros industriales. 1er parcial 2002-03 4/6 Nombre: Apellidos: 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 registro R y representa la cantidad |x|2-2 expresada en complemento a dos. Se pide: escribir la tabla de verdad en el recuadro de la derecha.

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 Variable entera Número de puntos (x,y) que se procesan R Variable real Radio de la circunferencia centrada en el origen x Variable real Abcisa en el plano y Variable real Ordenada en el plano d2 Variable real Cuadrado de la distancia de (x,y) al origen cont Vector de enteros Vector de contadores. contj Variable entera 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

j Variable entera Índice para acceder a las componentes de cont k Variable entera Contador del número de puntos procesados 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.

a2 a1 a0 r3 r2 r1 r0a2 a1 a0 r3 r2 r1 r0

j ← 2

Leer N y R

k ← 1

Leer x e y

d2 ←x·x + y·y

¿d2 < R·R?

1contcont jj +←

k ← k+1

¿k ≤ N?

¿d2 = R·R? j ← 1

j ← 3

Iniciar vectorde contadores a 0

no

no

no

inicio

fin

j ← 2j ← 2

Leer N y R

k ← 1k ← 1

Leer x e yLeer x e y

d2 ←x·x + y·y

¿d2 < R·R?

1contcont jj +← 1contcont jj +←

k ← k+1k ← k+1

¿k ≤ N?

¿d2 = R·R? j ← 1j ← 1

j ← 3j ← 3

Iniciar vectorde contadores a 0

Iniciar vectorde contadores a 0

no

no

no

inicio

fin

a2 a1 a0 r2 r1 r0r3

Circuito de puertas

lógicas

A Ra2 a1 a0 r2 r1 r0r3

Circuito de puertas

lógicas

A R

Page 17: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Fundamentos de Informática. 1er curso de ingenieros industriales. 1er parcial 2002-03 5/6 Nombre: Apellidos: DNI: Se recomienda usar lápiz. Ponga sus datos en todas las hojas. Se prohíbe el uso de calculadoras. 4) continuación

ORG 0 SAL INI

N: ESP 1 R: ESP 1 K: ESP 1 J: ESP 1

D2: ESP 1 X: ESP 1 Y: ESP 1

CONT: ESP 3 DCONT: DRE CONT

PUN: ESP 1 C1: CTE 1 C2: CTE 2 C3: CTE 3

INI: LEE N LEE R ... ‘ inicio cont a cero ... ‘ se supone ya hecho

CAR C1 ALM K ALT FIN

Page 18: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Fundamentos de Informática. 1er curso de ingenieros industriales. 1er parcial 2002-03 6/6 Nombre: Apellidos: 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. 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.

Dirección Instrucción P I A T S 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.

ORG 10 SAL INI

V: ESP 4 DV: DRE V

PUN: ESP 1 C3: CTE 3 D3: DRE C3

C10: CTE 10 INI: CAR DV

SUM I D3 ALM PUN

BUC: CAR PUN ALM I PUNRES C10 SAN BUC SAL SIGUECAR C3 SUM PUN ALM PUN

SIGUE: CAR C10 ESC I PUNALT FIN

Page 19: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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.

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

CIRCUITO

LÓGICO

a

A3

A2

A1

c

g

Page 20: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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)

Page 21: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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.

#include <stdio.h> void main(void) { printf("Primer dato:"); scanf("%d",&x); printf("Segundo dato:"); scanf("%d",&y); printf("Media = %f", m); } void media(int a, int b) { }

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. #include <stdio.h> 2. void main(void) 3. { vacas; 4. patas int; 5. printf(“¿Cuantas patas has contado?\n”); 6. scanf("%c", patas); 7. vacas = patas/4; 8. printf("Me parece que debe haber %f vacas.\n", vacas); 9. }

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> 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); } float media(int a, int b) { float m; m = (a+b)/2.0; return m; }

Page 22: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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.

1 0 0 1 1 1 1 1 0 0 1 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11

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

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 Vector de variables enteras

Dato. Secuencia leída de bits.

N Variable entera Dato. Número de bits de la secuencia leída. S Variable entera Dato. Número de bits a 1 que localizar en v.

b) v Vector de

variables enteras Dato. Secuencia leída de bits.

N Variable entera Dato. Número de bits de la secuencia leída.

JaaR
Note
Page 23: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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

Page 24: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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) 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. 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.

b) Indique el contenido binario de las siguientes direcciones de memoria

(el código de operación de la instrucción carga es 0010) Dirección

Instrucción P I A T S E

ORG 10 SAL INI TABLA: CTE 2 CTE 5 CTE -3 CTE 0 CTE 2 CTE -25 M: CTE 2 N: CTE 3 K: ESP 1 J: ESP 1 PUN: ESP 1 DT: DRE TABLA UNO: CTE 1 INI: LEE K LEE J CAR K RES UNO MUL N SUM J RES UNO SUM DT ALM PUN CAR I PUN SAN END SAL INI END: ALT FIN

16 22 33

Page 25: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Dpto. Ing. de Sistemas y Automática. U. de Sevilla. Examen Final de Junio. Fundamentos de Informática 1er 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.

Hoja 1/4

CUESTIÓN 1 (3.5 Puntos)

Figurita original

1 0 0

1 0 0

1 1 0

Rotación a derechas

1 1 1

1 0 0

0 0 0

Flip horizontal

0 0 0

1 0 0

1 1 1

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:

• Si p=1, debe rotar la figura a derechas 90 grados.

• 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.

• Si p>2, el algoritmo continua y escribe la matriz resultante B.

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.

Eje de giro

FIN MODULO

LEE MATRIZ A

y variable p

¿p>2?

ROTACIÓN

A DERECHAS

FLIP

HORIZONTAL

¿p=1? SI NO

INICIO ROTACIÓN A DERECHAS INICIO FLIP HORIZONTAL

FIN ROTACIÓN A DERECHAS FIN FLIP HORIZONTAL

SI

NO

ESCRIBE MATRIZ B

INICIO MODULO

SI

Page 26: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Dpto. Ing. de Sistemas y Automática. U. de Sevilla. Examen Final de Junio. Fundamentos de Informática 1er curso Ingeniero Industrial. 21 de Julio de 2004

NOMBRE: Nº MATRÍCULA/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.

Hoja 2/4

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

FIN DEL MÓDULO

INICIO DEL DIAGRAMA PRINCIPAL

FIN DEL DIAGRAMA PRINCIPAL

Page 27: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Dpto. Ing. de Sistemas y Automática. U. de Sevilla. Examen Final de Junio. Fundamentos de Informática 1er curso Ingeniero Industrial. 21 de Julio de 2004

NOMBRE: Nº MATRÍCULA/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.

Hoja 3/4

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.

A

Inicio

Fin

b <- b+1

¿ a>2 ?

¿ b<1 ?

¿ a>2 ?

SI

SI

SI

NO

NO

NO

B

Inicio

Fin

R <- R-1

¿ R = 0 ?

SI

NO

R <- 0

R <- 2

3.6. Indique 3 funciones genéricas de un sistema operativo o de explotación.

Page 28: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

Dpto. Ing. de Sistemas y Automática. U. de Sevilla. Examen Final de Junio. Fundamentos de Informática 1er curso Ingeniero Industrial. 21 de Julio de 2004

NOMBRE: Nº MATRÍCULA/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.

Hoja 4/4

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 Puntero a un elemento de la matriz DCM Dirección de comienzo de la matriz en memoria M Nº de elementos de una fila N Nº de elementos de una columna CF Índice de filas de 1 a M CC Índice de columnas de 1 a N UNO 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 Puntero a un elemento del vector DV Dirección de comienzo del vector K Entero índice de las componentes del vector V Vector de 10 enteros

A: Diagrama de Flujo B: LENGUAJE LS2 C: LENGUAJE C

ORG 0 SAL INI

V: ESP 10

Page 29: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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. 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 Entero. Número de componentes de d d Vector de M enteros

b8 b7 b6 b5 b4 b3 b2 b1 b 0 1 0 1 1 1 1 0 d

1=01)2 3=011)2 6=110)2 d3 d2 d1

Page 30: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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 =

Page 31: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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 en un diagrama de flujo? Explique. ¿y el símbolo ? 2.6. ¿Para qué sirve la pseudoinstrucción DRE en LS2? 2.7. ¿En qué consiste un sistema multitarea?

Page 32: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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 Puntero a un elemento del vector N Entero, tamaño del vector DV Dirección de comienzo del vector K Entero índice de las componentes del vector V Vector de 10 números reales DIAGRAMA DE FLUJO CÓDIGO EN LS2 CÓDIGO EN C ETIQUETAS, INST o PSEUDOINST

Page 33: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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

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.

NÚMERO NÚMERO REPRESENTADO EN EL MARCADOR

BINARIO CÓDIGO BINARIO BOMBILLAS DECIMAL

A4 A3 A2 A1 g f e d c b a NÚMERO DECIMAL

CORRESPONDIENTE 0 0 0 0 0 0 1 1 1 1 1 1 X0 = 63 1 0 0 0 1 0 0 0 0 1 1 0 X1 = 2 0 0 1 0 X2 = 91 3 0 0 1 1 X3 = 4 0 1 0 0 X4 = 5 0 1 0 1 X5 = 109 6 0 1 1 0 1 1 1 1 1 0 1 X6 = 7 0 1 1 1 0 0 0 0 1 1 1 X7 = 8 1 0 0 0 1 1 1 1 1 1 1 X8 = 127 9 1 0 0 1

1 1 0 1 1 1 1 X9 = 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.

CIRCUITO

LÓGICO

a

A3

A2

A1

c

g

A4

Page 34: Ejercicios del primer cuatrimestrejaar/Datos/FI/Boletin_1C_0405.pdf · Fundamentos de Informática, 1º Ing. Industrial. Ejercicios del primer parcial. 5/12 iniciar k a 1 y Encontrado

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.

PROGRAMA EN LS2 ETIQUETAS INSTRUCCIÓN DIR/DATO COMENTARIO

ORG 0 SAL INI DATOS : CTE ______ ’X0 CTE ______ ‘X1 CTE ______ ‘X2 CTE ______ ‘X3 CTE ______ ‘X4 CTE ______ ‘X5 CTE ______ ‘X6 CTE ______ ‘X7 CTE ______ ‘X8 CTE ______ ‘X9 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í)

INSTRUCCIÓN DIR/DATO

A P

S

I T

E … EN g f e d c b a

LOCAL

CESIUS

VISITANTE

EN g f e d c b a

ENg f e d c b a