libro de problemas de fundamentos de informática

28
Libro de Problemas de Fundamentos de Informática Autores: José Ángel Acosta Rodríguez Manuel Ruíz Arahal © 2002

Upload: vuongmien

Post on 31-Dec-2016

253 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Libro de Problemas de Fundamentos de Informática

Libro de Problemas

de

Fundamentos de Informática

Autores:

José Ángel Acosta Rodríguez Manuel Ruíz Arahal

© 2002

Page 2: Libro de Problemas de Fundamentos de Informática

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

N

f

a b c

N

f

a b c

2

Page 3: Libro de Problemas de Fundamentos de Informática

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ónInstrucció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

3

Page 4: Libro de Problemas de Fundamentos de Informática

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

4

Page 5: Libro de Problemas de Fundamentos de Informática

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

5837

1429

6130k

j

5837

1429

6130

5837

1429

6130k

j

5837

1429

6130k

j

033

785

210

k

j

033

785

210

k

j

5

Page 6: Libro de Problemas de Fundamentos de Informática

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.

ALTFIN

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

6

Page 7: Libro de Problemas de Fundamentos de Informática

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ónInstrucció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

7

Page 8: Libro de Problemas de Fundamentos de Informática

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 -8INI: CAR DMAT ALM PUN CAR MOCHO ALM I PUN

ALTFIN

N

k

kas1

416016521214

447018020101M

8

Page 9: Libro de Problemas de Fundamentos de Informática

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

j

kja mk 1

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 =

1000

102

622

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

9

Page 10: Libro de Problemas de Fundamentos de Informática

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

10

Page 11: Libro de Problemas de Fundamentos de Informática

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

82

62

12

10

0

vd

200

300

250

250

200

va

5

1

0

5

p

200250300

0 10 12 62 82

82

62

12

10

0

vd

200

300

250

250

200

va

5

1

0

5

p

11

Page 12: Libro de Problemas de Fundamentos de Informática

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

-5 0 5 10

5

10

15 20x

y

f(x)15

25

20

-5 0 5 10

5

10

15 20x

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ónInstrucció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 vun 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 97CTER: ESP 1 INI: LCA CTER CAR CTER RES CA SUM DVEC ALM PUN CAR CTER ALM I PUN ESC PUN ALT FIN

12

Page 13: Libro de Problemas de Fundamentos de Informática

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, SALETI, 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

13

JaaR
Text Box
CIRCUITO LÓGICO
Page 14: Libro de Problemas de Fundamentos de Informática

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

5837

1429

6130k

j

5837

1429

6130

5837

1429

6130k

j

5837

1429

6130k

j

033

785

210

k

j

033

785

210

k

j

14

Page 15: Libro de Problemas de Fundamentos de Informática

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

15

Page 16: Libro de Problemas de Fundamentos de Informática

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

16

Page 17: Libro de Problemas de Fundamentos de Informática

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

a2a1a0

r2r1r0

r3

Circuitode puertas

lógicas

A Ra2a1a0

r2r1r0

r3

Circuitode puertas

lógicas

A R

17

Page 18: Libro de Problemas de Fundamentos de Informática

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

18

Page 19: Libro de Problemas de Fundamentos de Informática

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 C10ESC I PUNALT FIN

19

Page 20: Libro de Problemas de Fundamentos de Informática

DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial . Febrero de 2004. 1/3Apellidos 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

20

Page 21: Libro de Problemas de Fundamentos de Informática

DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial . Febrero de 2004. 6/3Apellidos 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

162233

21

Page 22: Libro de Problemas de Fundamentos de Informática

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.

22

Page 23: Libro de Problemas de Fundamentos de Informática

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

23

Page 24: Libro de Problemas de Fundamentos de Informática

DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial. Septiembre de 2004. 2/6Apellidos 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 =

24

Page 25: Libro de Problemas de Fundamentos de Informática

DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial. Septiembre de 2004. 3/6Apellidos 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?

25

Page 26: Libro de Problemas de Fundamentos de Informática

DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial. Septiembre de 2004. 4/6Apellidos 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

26

Page 27: Libro de Problemas de Fundamentos de Informática

DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial. Septiembre de 2004. 5/6Apellidos 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 aNÚ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

27

Page 28: Libro de Problemas de Fundamentos de Informática

DISA. ESI. US. Examen de Fund. de Informática. Primer curso de Ing. Industrial. Septiembre de 2004. 6/6Apellidos 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

28