Libro de Problemas de Fundamentos de Informática.

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