1ª PRUEBA DE
SEGUIMIENTO
MODELO 1
ESCUELA TÉCNICA SUPERIOR Nombre: INFORMÁTICA
DE INGENIEROS INDUSTRIALES Grupo: D.N.I: Noviembre 2014
NORMAS DEL EXAMEN
• La duración de la prueba será de 45 minutos.
• La solución se debe entregar en el folio del enunciado. Sólo se podrá hacer uso de dicho folio para escribirla.
• No se corregirá nada que no esté escrito con un método de escritura indeleble.
• No se permite el uso de ningún material salvo el ordenador del aula, un bolígrafo y papel.
• Solo se permite el uso de las siguientes funciones de MATLAB: size, length, rem, floor, ceil, rand, error,
warning, disp.
ENUNCIADO
1. Escribir una función de MATLAB, llamada decreciente, que reciba un vector de números, v, cuya
longitud debe ser un número impar, y devuelva un valor binario. La salida valdrá 1 si el vector de entrada es
monótono decreciente y 0 en caso contrario.
= [17, 16, 5, 4, −3] → =1 = [19, 19, 19, 5, 1.5, 1, 1] → =1
Ejemplos:
= [0, −1.2, 5, 6.3, 8] → =0 = [1, 1, 1, 1, 1] → =0
Nota: Si el vector de entrada no es válido según las especificaciones del enunciado, la función devolverá un
mensaje de error y terminará la ejecución.
1ª PRUEBA DE
SEGUIMIENTO
MODELO 1
ESCUELA TÉCNICA SUPERIOR Nombre: INFORMÁTICA
DE INGENIEROS INDUSTRIALES Grupo: D.N.I: Noviembre 2014
function [b] = decreciente(v)
%DECRECIENTE Indica si un vector es monótonamente decreciente
% La función devuelve un valor booleano que indica si el vector argumento
% de entrada es o no monótonamente decreciente. Si la salida es 1 el
% vector es decreciente. Si la salida es 0, no.
% En el caso de que el vector contenga todos los elementos iguales, la
% función debe devolver un 0.
% Arg. Entrada:
% * v: vector de números con tamaño impar
% Arg. Salida:
% * b: valor booleano que indica si v es monotonamente decreciente
% Chequeo de argumentos de entrada
if (nargin == 0)
error('No hay argumento de entrada')
elseif (rem(length(v),2)~=1)
error('El vector debe ser de tamano impar')
end
% Algoritmo
% Suponemos que es decreciente
b = 1;
for i=2:length(v)
% Si en algun momento crece, deja de ser monótonamente decreciente
if (v(i)>v(i-1))
b = 0;
end
end
% Caso particular: todos los elementos son iguales -> no es decreciente
if (v(1)==v(length(v)))
b = 0;
end
return
1ª PRUEBA DE
SEGUIMIENTO
MODELO 2
ESCUELA TÉCNICA SUPERIOR Nombre: INFORMÁTICA
DE INGENIEROS INDUSTRIALES Grupo: D.N.I: Noviembre 2014
NORMAS DEL EXAMEN
• La duración de la prueba será de 45 minutos.
• La solución se debe entregar en el folio del enunciado. Sólo se podrá hacer uso de dicho folio para escribirla.
• No se corregirá nada que no esté escrito con un método de escritura indeleble.
• No se permite el uso de ningún material salvo el ordenador del aula, un bolígrafo y papel.
• Solo se permite el uso de las siguientes funciones de MATLAB: size, length, rem, floor, ceil, rand, error,
warning, disp.
ENUNCIADO
2. Escribir una función de MATLAB, llamada posiciones, que reciba un vector de números enteros mayores
que 0, v, y los pase a un sistema de coordenadas cartesianas representado por una matriz M de dimensiones
mxn, donde m es el máximo valor del vector y n la longitud del vector.
Cada valor de v se representará en la altura correspondiente de M, siendo la fila inferior la correspondiente
a la altura 1 y la superior la correspondiente a la altura m. En caso de que no haya número del vector que se
corresponda con una posición M(x,y) de la matriz se pondrá el valor 0.
0 0 0 6 0
Ejemplos:
0 0 5 0 0
0 0 3 0 0 0
0 0 0 0 0
= [3, 2, 5, 6, 1] → = = [1.7, 2, 3.3, 1, 2, 2] → = 0 2 0 0 2 2!
3 0 0 0 0
1 0 0 1 0 0
0 2 0 0 0
0 0 0 0 1
Nota: Si el vector de entrada tiene un número real, este se truncará con la función floor y se pondrá en
M(x,y)=floor(y).
1ª PRUEBA DE
SEGUIMIENTO
MODELO 2
ESCUELA TÉCNICA SUPERIOR Nombre: INFORMÁTICA
DE INGENIEROS INDUSTRIALES Grupo: D.N.I: Noviembre 2014
function [M] = posiciones(v)
%POSICIONES Crea una matriz de alturas según los datos de v
% La función devuelve una matriz en la que se indica la 'altura' de cada
% uno de los elementos del vector v. Todos los elementos de v deberán ser
% positivos. Si no son enteros, se redondean hacia -infinito utilizando la
% función floor
% Arg. Entrada:
% * v: vector de números positivos
% Arg. Salida:
% * M: Matriz de números enteros con las alturas de cada uno de los
% elementos de la matiz
% Chequeo de argumentos de entrada
if (nargin == 0)
error('No hay argumento de entrada')
end
for i=1:length(v)
if (v(i)<=0)
error('Hay un valor fuera de los limites')
end
end
% Algoritmo
% Pasamos a enteros por si hay numeros reales
v_ent = floor(v);
% Calculamos el maximo del vector
max = v_ent(1);
for i=2:length(v_ent)
if (v_ent(i)>max)
max = v_ent(i);
end
end
% Creamos la matriz
M = zeros(max,length(v_ent));
for j=1:length(v_ent)
M(max-v_ent(j)+1,j) = v_ent(j);
end
return;
1ª PRUEBA DE
SEGUIMIENTO
MODELO 3
ESCUELA TÉCNICA SUPERIOR Nombre: INFORMÁTICA
DE INGENIEROS INDUSTRIALES Grupo: D.N.I: Noviembre 2014
NORMAS DEL EXAMEN
• La duración de la prueba será de 45 minutos.
• La solución se debe entregar en el folio del enunciado. Sólo se podrá hacer uso de dicho folio para escribirla.
• No se corregirá nada que no esté escrito con un método de escritura indeleble.
• No se permite el uso de ningún material salvo el ordenador del aula, un bolígrafo y papel.
• Solo se permite el uso de las siguientes funciones de MATLAB: size, length, rem, floor, ceil, rand, error,
warning, disp, input, fprintf.
ENUNCIADO
1. Escriba un fichero de comandos de MATLAB, llamado media_armonica, que calcule la media armónica
de los elementos de un vector. Dicho vector será introducido por teclado (se recomienda usar la función
input) y, tras los cálculos se imprimirá por pantalla el resultado. La media armónica de un vector de N
componentes se define como
(
"# $"%& ' =
1 1 1
)* + ), + ⋯ + ).
Ejemplos de ejecución:
>> media_armonica >> media_armonica
Indique el tamano del vector: 4 Indique el tamano del vector: 3
Indique el siguiente elemento del vector: 1 Indique el siguiente elemento del vector: 1
Indique el siguiente elemento del vector: 2 Indique el siguiente elemento del vector: 0
Indique el siguiente elemento del vector: 4 El elemento debe ser positivo. Indique otro valor: -1
Indique el siguiente elemento del vector: 5 El elemento debe ser positivo. Indique otro valor: 2
Indique el siguiente elemento del vector: 10
La media armonica del vector es 2.051282.
>> La media armonica del vector es 1.875000.
>>
Nota: Todos los elementos del vector deberán ser estrictamente positivos. En caso de que se introduzca un
valor no positivo para un elemento, se volverá a pedir dicho elemento hasta que el valor sea válido.
1ª PRUEBA DE
SEGUIMIENTO
MODELO 3
ESCUELA TÉCNICA SUPERIOR Nombre: INFORMÁTICA
DE INGENIEROS INDUSTRIALES Grupo: D.N.I: Noviembre 2014
% MEDIA_ARMONICA.m
% Este fichero de comandos solicita los valores de un vector del cual se
% quiere calcular la media armónica. Estos valores deberán ser positivos.
% Una vez que se ha calculado, se imprime por pantalla su valor.
% La media armónica de un vector de N elementos se define como:
% N
% ma = -----------------------
% 1 1 1
% --- + --- + ... + ---
% x1 x2 xN
% donde x1, x2 ... xN son los elementos del vector.
% Solicitamos el tamano del vector
tamano = input('Indique el tamano del vector: ');
while (tamano<1 || tamano~=round(tamano))
tamano = input('Por favor, introduzca un tamano valido (positivo): ');
end
% Creamos el vector de elementos
vector = zeros(1,tamano);
for i=1:tamano
% Solicitamos el elementos i-esimo
vector(i) = input('Indique el siguiente elemento del vector: ');
% Y lo seguimos solicitando mientras no sea correcto (positivo)
while (vector(i)<=0)
vector(i) = input('El elemento debe ser positivo. Indique otro valor: ');
end
end
% Calculamos la media armonica de vector
ma = 0;
for i=1:length(vector)
ma = ma + 1/vector(i);
end
ma = tamano/ma;
% Imprimimos el resultado por pantalla
fprintf('La media armonica del vector es %f.\n',ma);