Professional Documents
Culture Documents
Universidad de Málaga
16 FEBRERO 2004
Nombre:
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.
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]
Universidad de Málaga
16 FEBRERO 2004
Nombre:
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.
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.