Primer Parcial 2013
Grado en Ingeniería Civil y Territorial
Informática
Solución del Primer examen parcial
Problema 1 (10 puntos)
El siguiente ejercicio consta de cuatro partes en cada una de las cuales se formula una pregunta
a la que debe responderse con la suficiente justificación:
1. ¿Qué resultado mostrará en pantalla el siguiente programa?
1
2
3
4
5
6
x= input(’Introduzca un numero real: ’);
if 1 < x < 5
disp(’BLANCO’)
else
disp(’NEGRO’)
end
2. El siguiente conjunto de instrucciones corresponde al fragmento de lectura del dato de
un determinado programa
1
2
3
4
5
6
7
while 1
n = input(’Dato? ’);
if n > 0 && n == 3*fix(n/3)
break
end
disp(’Dato erroneo’)
end
¿Qué debe cumplir el dato exigido para que finalice la lectura del dato y progrese elprograma?
3. ¿Qué resultado escribirá en pantalla el siguiente programa?
1
2
3
4
5
6
7
8
9
n = 0;
for i = 1:2:9000
if rem(i,2) == 0
n = n + i;
else
n = i;
end
end
disp(n)
4. Se considera la función
1 / 10
Solución del primer parcial de Informática 31/10/2013
function x = mifuncion(y,z)
while y >= z
y = y/2;
end
x = y;
return
end
1
2
3
4
5
6
7
¿Cuál es el resultado que mostrará en pantallael siguiente programa?
x = 16; y = 1; z = mifuncion(x,y); disp(z)
Solución
1. La expresión 1
2. n debe ser un número natural múltiplo de 3
3. La variable de control del buclefor toma, únicamente, valores impares. El último valor
impar que toma es 8999 que es el resultado que mostrará el programa.
4. El resultado final será 0.5. Recuérdese que las variables son locales y los nombres que
se les asigne son independientes en el programa y en la función.
Problema 2 (4 puntos)
Generar una matriz A de 5 filas y 4 columnas formada por la parte entera de números aleatorioscomprendidos entre -100 y 100 (0.8 puntos).
A continuación, sin utilizar bucles ni condicionales, escribir las sentencias adecuadas para:
a) Eliminar la última columna de la matriz (0.4 puntos)
b) Obtener la suma de cada fila de la matriz (0.4 puntos)
c) Conocer si todos los elementos tienen valores entre -100 y 100 (ambos incluidos). La respuesta del ordenador debe ser un escalar (0.6 puntos)
d)Conocer si hay algún elemento cuyo valor sea mayor que 90 o menor que -90. La respuesta
del ordenador debe ser un escalar (0.6 puntos)
e) Hacer cero los elementos que sean múltiplos de 5 (0.6 puntos)
f) Contar cuántos elementos son iguales a 3 (0.6 puntos)
Solución
1
2
3
4
5
6
7
8
A = fix(-100 + rand(5,4)*200);
% Apartado a)
A(:,end) = [];
% Apartado b)
sum(A’)
% Apartado c)
all(all(A >= -100 & A<= 100))
% Apartado d)
2 / 10
Solución del primer parcial de Informática 31/10/2013
9
10
11
12
13
any(any(A > 90 | A < -90))
% Apartado e)
A(rem(A,5) == 0) = 0;
% Apartado f)
length(A(A == 3))
Problema 3 (6 puntos)
Escribir un programa que permita obtener el gráfico de las siguientes funciones, superpuestas
en la misma ventana.
x2
)
2
Se debe representar en el intervalo [−3, 3] tomando puntoscada 0,1 unidades, con una
línea en color negro. (3 puntos)
Función 1: f (x) = e
x2
2
+ coseno(
Función 2: f (x) = seno(x2 |x|)
Se debe representar en el intervalo [−π, π] tomando 200 puntos equiespaciados, con una
línea en color rojo. (3 puntos)
Solución
1
2
3
4
5
6
7
8
x = -3:0.1:3;
y = exp(-x.^2/2) + cos(x.^2/2);
hold on
plot(x, y, ’k’)
x = linspace(-pi, pi, 200);
y =sin(x.^2.*sqrt(abs(x)));
plot(x, y, ’r’)
hold off
Problema 4 (10 puntos)
Escribir una función de retorno lógico y de nombre repet, que tenga como datos de entrada
un vector de elementos enteros y un número entero, y que averigüe si el número aparece
repetido en el vector (es decir, si está 2 o más veces). Si aparece repetido debe devolver cierto,
y falso en cualquier otro caso. El problema debe resolverse de las...
Regístrate para leer el documento completo.