You are on page 1of 6

Introducción a los computadores

1º. Ingeniería Técnica de Telecomunicación


Convocatoria ordinaria (1ª. parte)

Universidad de Málaga
16 FEBRERO 2004
Nombre:

Especialidad (SE/SI/ST): Grupo (A/B o profesor): Tiempo: 30 minutos


Puntuación máxima: 3.0
¡Las preguntas sin contestar o con más de una contestación son NULAS! Nota CORTE: 1.5
Para anular una respuesta, poner un NO a su lado. Respuesta correcta: +0.2
Respuesta nula: 0.0
Respuesta incorrecta: -0.1
Pregunta 1.
Dadas las declaraciones adjuntas, señalar la respuesta correcta.

ALGORITMO R MasLarga(E TVias vias) TIPOS


C TCadena[0..255]
REGISTRO TFecha
N dd, mm, aa
a) La llamada FINREGISTRO
SI MasLarga(andaluzas)<5.0 ENTONCES REGISTRO TViaVerde
Escribir(“Demasiado corta”) TCadena nombre
SINO TCadena donde
Escribir(“Vale”) R longitud
FINSI TFecha cuando
FINREGISTRO
contiene errores sintácticos. TViaVerde TVias[1..1000]
b) La sentencia VAR
andaluzas[aceite].cuando.dd = 1 TFecha inaugura
TViaVerde aceite, larga
contiene errores sintácticos. TVias andaluzas, astures
c) La ordenación de la estructura de datos
andaluzas por el campo de la fecha (cuando)
podría utilizar comparaciones del tipo
SI andaluzas[i].cuando < andaluzas[i+1].cuando ENTONCES

Pregunta 2.
Dada las declaraciones anteriores de las vias verdes y la siguiente
ALGORITMO Intercambiar(ES N n1, n2)
elige la llamada correcta.
a) Intercambiar(andaluzas[1].longitud, MasLarga(astures).longitud)
b) Intercambiar(andaluzas[4].cuando.mm, aceite.cuando.mm)
c) Intercambiar(aceite.longitud, astures[2].longitud)
Pregunta 3.
La búsqueda secuencial en arrays...
a) siempre es más lenta si el array está desordenado.
b) sólo puede realizarse si el tipo base es simple.
c) puede emplearse en todos los casos donde se puede emplear la búsqueda binaria.

Pregunta 4.
Dada la declaración de tipos y variables adjunta, señala la sentencia sintácticamente
correcta:
TIPOS
ENUM {L,M,X,J,V,S,D} Tdia a) c = NO (dia==’J’) Y (letra==’J’)
VARIABLES
Tdia dia; b) c == (ORD(letra)=ORD(SUC(dia)))
C letra c) c = (ORD(letra)==ORD(SUC(dia)))
B c

Pregunta 5.
Después de la ejecución de este segmento de código ¿qué valor se imprime en pantalla?

a) 6 cont=1
PARA i=1 HASTA 5 HACER
b) 7 PARA j=i+1 HASTA 2*i HACER
c) 8 SI (j== i+2) ENTONCES
cont=cont –1
SINO
cont=cont+1
FINSI
FINPARA
FINPARA
Escribir(cont)
Pregunta 6.
Dado el segmento de código adjunto, señala la respuesta correcta.
a) El bucle está diseñado correctamente y se
ejecuta M veces. i=1
PARA x=i HASTA M HACER
b) El bucle está diseñado correctamente y se SI (x MOD 2==O) ENTONCES
ejecuta 3 veces. i=M
c) El bucle está diseñado incorrectamente pues FINSI
se modifica el valor de una variable de control. FINPARA

Pregunta 7.
La Unidad Central de Proceso (CPU) del ordenador...
a) almacena las instrucciones junto con los datos necesarios para que éstas se ejecuten.
b) está constituida por todos aquellos dispositivos que permiten la comunicación del
ordenador con el exterior.
c) ejecuta y controla la ejecución de instrucciones aritmético-lógicas.
Pregunta 8.
El número F1A2(16 , en hexadecimal...
a) equivale al 1111000110100010(2, en binario.
b) equivale al 743210(8, en octal.
c) equivale al 15011002(10 , en decimal.

Pregunta 9.
El código ASCII...
a) permite codificar cada carácter de entrada o salida a un ordenador mediante un
número binario único, de 32 bits, que depende del sistema operativo empleado.
b) es un estándar que permite codificar, en un solo byte, caracteres gráficos y de control
para entrada/salida en un computador.
c) es el único código estándar internacional existente para la codificación de caracteres
de entrada/salida a un ordenador.

Pregunta 10.
En un lenguaje de programación, una palabra reservada...
a) es un indentificador de variable que sólo puede ser usado dentro del ámbito del
algoritmo principal.
b) es un identificador para un subalgoritmo predefinido por el lenguaje y que no puede
volverse a definir por el programador.
c) es un identificador reservado para la especificación de sentencias propias del lenguaje
y, por tanto, no puede ser usado para la declaración de otras entidades por parte del
programador.

Pregunta 11.
¿Qué función implementa el
diagrama de flujo adjunto?
a) Calcula la suma de n
números introducidos por
teclado y saca por pantalla el
resultado.
b) Calcula la suma de los n
primeros números naturales y
saca por pantalla el resultado.
c) Calcula la media de los n-1
primeros números naturales y
saca por pantalla el resultado.

Pregunta 12.
¿Cuál de las siguientes afirmaciones es falsa?
a) El número de parámetros reales en una llamada a una función debe ser igual al de
parámetros formales de la misma.
b) Los nombres de un parámetro real y su correspondiente formal deben ser iguales.
c) Los tipos de un parámetro real y su correspondiente formal deben ser compatibles.
Pregunta 13.
¿Cuál de las siguientes afirmaciones es verdadera sobre el paso de parámetros?
a) El paso por valor normalmente es el que se usa para los parámetros E y ES.
b) El paso por referencia normalmente es el que se usa para los parámetros S y ES.
c) El paso por valor normalmente es el que se usa para los parámetros de salida.

Pregunta 14.

Dadas las declaraciones adjuntas, la asignación :


TIPOS
a[1]=b N Tabla1 [1..5]
a) No es correcta porque las variables a y b son de Tabla1 Matriz [1..5]
diferentes tipos. VAR
Matriz a
b) Es correcta. Tabla1 b
c) No es correcta porque no se puede realizar la
asignación completa entre arrays.

Pregunta 15.
TIPOS
Sea la declaración de tipos y C Nombre[0..25]
variables adjunta. Si se desea ENUM {Hardware, Software} TTipo
inicializar todas las listas de la REGISTRO RegistroLista
variable catalogo a una cadena Nombre lista[1..5000]
vacía, la opción correcta será... Nombre sublista[1..20]
FINREGISTRO
REGISTRO RegCatalogo
Nombre nombre_elem
TTipo tipo_elem
RegistroLista subcatalogo
FINREGISTRO
VAR
RegCatalogo catalogo[1..20]

a) PARA i=1 HASTA 20 HACER


PARA j=1 HASTA 5000 HACER
catalogo[i].subcatalogo.lista[j]=“”
FINPARA
FINPARA

b) PARA i=1 HASTA 20 HACER


PARA j=1 HASTA 5000 HACER
catalogo[i].lista[j]=“”
FINPARA
FINPARA

c) PARA i=1 HASTA 20 HACER


PARA j=1 HASTA 5000 HACER
catalogo[i].subcatalogo[j].lista=“”
FINPARA
FINPARA
Introducción a los computadores
1º. Ingeniería Técnica de Telecomunicación
Convocatoria ordinaria (2ª. parte)

Universidad de Málaga
16 FEBRERO 2004

Nombre:

Especialidad (SE/SI/ST): Grupo (A/B o profesor):

Tiempo: 2 h. 30 m.
Ejercicio 1 (3.5 puntos)
Una red de ventas de automóviles necesita una aplicación informática para gestionar su
departamento de ventas. Se trabajan con 10 modelos de cada una de las siguientes
marcas: Andi, Mersede y Vorvo. Para cada automóvil se dispone, además de la marca y
el modelo, de la siguiente información:
• Descripción (cadena de texto identificativa del modelo)
• Numero de puertas (3 ó 5 puertas)
• Color (negro, gris plata, blanco, rojo, azul marino, verde)
• Cilindrada.
• Potencia.
• PVP (Precio Venta Público)
La red de ventas dispone de 15 agentes comerciales que se encargan de formalizar cada
uno de los pedidos. De cada uno de estos agentes comerciales la aplicación almacena su
código de vendedor, nombre y antigüedad en la empresa. Además, para cada vendedor
se almacena una lista con las ventas del año en curso (como máximo MAX_VENTAS) que
registran la marca y modelo del automóvil vendido y la fecha de la venta.

Se pide:
1. Diseñar dos estructuras separadas (TCoches y TAgentes) con los datos reseñados,
evitando la redundancia de información.
Implementar los siguientes subalgoritmos
(supónganse inicializadas las estructuras de datos):
2. MasCaros(...): devolverá la cantidad de modelos cuyo costo sea superior a una
cifra que se pase como parámetro. Además, imprimirá por pantalla la marca y modelo
de cada uno de dichos automóviles.
3. MejorVendedor(...): Devolverá el código de vendedor que más ha facturado.
4. MarcaMasVendida(...): devolverá la marca de automóvil del que mayor número de
unidades se ha vendido.
Se valorará la modularización, reutilización y legibilidad de código (cometarios, sangrado).
Ejercicio 2 (2.5 puntos)
Diseñar e implementar un subalgoritmo que acepte como entrada dos cadenas de
caracteres que representan números naturales largos y devuelva como salida otra cadena
que representa la multiplicación de ambos números naturales. Se supone que cada
carácter sólo representa un dígito del número. El subalgoritmo se llamará Multiplicar
y el tipo de cada número completo TNGrande.

‘2’ ‘4’ ‘8’ ‘0’ ‘ ‘ ’ ... ‘ ’


\ ‘3’ ‘2’ ‘2’ ‘4’ ‘0’ ‘\0’ ... ‘ ’
‘1’ ‘3’ ‘\0’ ‘ ’ ‘4’ ‘ ’ ... ‘ ’

Hay que distinguir entre la longitud máxima de dígitos que puede almacenar una cadena,
MAX_DIGITOS, y la longitud efectiva de cada número, ya que el primer dígito estará en la
posición 1 del array y el final estará marcado por un terminador, el ‘\0’. No es necesario
comprobar que los caracteres son dígitos, se supone que las cadenas de entrada están
validadas.
Además, hay que tener en cuenta los posibles desbordes, ya que el resultado será del
mismo tipo que los operandos: TNGrande.
Se valorará la modularización.

Ejercicio 3 (1 punto)
Dado el siguiente subalgoritmo escrito en pseudolenguaje,

CONST
N MAX = 100
TIPOS
R TpVector[0..MAX-1]
...
ALGORITMO R Operación(E TpVector v; E R n; S N c)
VAR
R res = 0.0
N i = 0
INICIO
c = 0
MIENTRAS i<MAX Y v[i] != 0.0 HACER
SI v[i] > n ENTONCES
res = res + v[i]
c = c + 1
FINSI
i = i + 1
FINMIENTRAS
DEVOLVER res/R(c)
FIN Operación

a) Escribir la función equivalente en el lenguaje C++, así como las constantes y tipos
necesarios para definirla (no es necesario escribir el programa principal, ni incluir
librerías, prototipos, ni ninguna otra parte del código).
b) Describir muy brevemente qué hace la función.

You might also like