Sei sulla pagina 1di 5

Dpto. Ing. de Sistemas y Automtica. Universidad de Sevilla.

er
Examen 1 Convocatoria. Informtica. 1 curso Grado en Ingeniera Aeroespacial
11 de Junio de 2013
NOMBRE:
N MATRCULA/D.N.I.:

APELLIDOS:

Escriba las respuestas en los recuadros indicados. Entregue todas las hojas con su nombre y apellidos.

CUESTIN 1 (3 Puntos)

CUESTIONES CORTAS

a) Suponiendo una cadena de texto almacenada en el vector cad, complete las lneas de cdigo
necesarias para que la cadena cad tenga todas sus letras maysculas. Los smbolos que no sean letras
minsculas permanecern inalterados.
cad=input(Introduzca texto,s);
L=length(cad);

for i=1:L
if cad(i)>='a' && cad(i)<='z'
cad(i)=cad(i)+'A'-'a';
end
end

b) Escriba la funcin redondea_par que reciba un nmero real positivo y devuelva el valor del
nmero entero par ms prximo. Por ejemplo, para el valor 3.2 devolver 4, para 2.8 devolver 2.
Puede usar la funcin fix de MATLAB que devuelve la parte entera de un nmero real.
function y=redondea_par(x)
parmenor=2*fix(x/2);
if x-parmenor<parmenor+2-x
y=parmenor;
else
y=parmenor+2;
end
end

c) Plantee las iteraciones necesarias para escribir un programa en MATLAB que muestre por pantalla la
figura de asteriscos de la derecha.
*******
*****
***
*

for i=1:4
for j=1:7
if j<i || j>7-i+1
fprintf(' ');
else
fprintf('*');
end
end
fprintf('\n');
end

d) Determine qu muestra por pantalla la ejecucin de la funcin serie


1

function serie
i=1;
v=[];
flag=1;
while(flag)
v(i)=f(i);
i=i+1;
flag=(i<10);
end
disp(v);
end

Las notas se publicarn en WebCT y el tabln virtual de la Escuela el 19 de Junio.

function x=f(y)
persistent aux
if isempty(aux)
aux=1;
else
aux=mod(aux+1,2);
end
x=y*aux;
end

Hoja 1/3

APELLIDOS:

Dpto. Ing. de Sistemas y Automtica. Universidad de Sevilla.


er
Examen 1 Convocatoria. Informtica. 1 curso Grado en Ingeniera Aeroespacial
11 de Junio de 2013
NOMBRE:
N MATRCULA/D.N.I.:

Escriba las respuestas en los recuadros indicados. Entregue todas las hojas con su nombre y apellidos.

CUESTIN 2 (3.5 Puntos)


Un grupo de jvenes planean hacer puenting, y quieren asegurarse de que la experiencia
es segura. Para ello realizan un modelo matemtico del salto y llegan a las siguientes
conclusiones:
1. Calculan un peso medio por saltador m=70 Kg, y una longitud de la cuerda L=20
m. La altura del puente de salto es H=50 m.
2. Por simplicidad, se supone que el saltador sigue una trayectoria perfectamente
vertical, donde y representa la distancia del saltador a la plataforma de salto.
3. El salto se compone de dos fases:
a) En la primera fase del salto, la cuerda no est tensa y no ejerce fuerza
sobre el saltador. Esta primera fase es por tanto de cada libre.
b) En la segunda fase del salto, cuando y>=L, la cuerda se tensa y ejerce
una fuerza de resistencia proporcional a la elongacin de la cuerda:
(y-L).

L
y
H

El modelo matemtico puede pues describirse por las ecuaciones diferenciales:

Primera fase : Si y (t ) < L


dy
=v
y ( 0) = 0
dt

dv
= g - vv
v(0) = 0
dt
m

Segunda fase : Si y (t ) L
dy
=v
dt
k

dv
= g - e (y - L) - v v
dt
m
m

y (t t+ ) = L
v(t t+ ) = v(t t )

Donde y(t) y v(t) representan respectivamente la altura descendida en el salto y la velocidad en el instante t,
g=9.81m/s2 es la aceleracin de la gravedad, ke=150 N/m es la constante elstica de la cuerda y =15 Kg/m es la
constante de friccin aerodinmica del aire. Las condiciones iniciales de la segunda fase reflejan el hecho de que la
altura y(t) y la velocidad v(t) en el comienzo de la segunda fase son las del final de la primera fase. Se pide:
1. Empleando el mtodo de Euler de integracin de EDOs, desarrolle la funcin prueba_salto que integre las
ecuaciones diferenciales del problema desde el instante t=0 hasta el instante en que la variable y(t)
permanezca en la franja [ye-1,ye+1] durante ms de tres segundos, donde ye=L+m*g/ke es el punto de
equilibrio que se alcanza una vez las oscilaciones de la cuerda se amortiguan. La funcin devolver los
vectores de tiempo, t, de posicin y, y de velocidad v.
Nota: La integracin comenzar siempre con las ecuaciones de la primera fase, y debern cambiar a las de
segunda fase cuando y(t)>=L. Es posible tambin que se vuelva de nuevo a primera fase si y(t)<L en algn
momento. Tome como paso de integracin h=0.1 seg.
function [t,y,v]=prueba_salto()
m=70; %(Kg) Masa del saltador
L=20; %(m) Longitud de la cuerda
H=50; %(m) Altura del puente
g=9.81; %(m/s^2) Aceleracin de la gravedad
ke=150; %( N/m ) Constante elstica de la cuerda
ro=15; %(Kg/m) constante de friccin aerodinmica del aire
h=0.1; % (seg) Paso de integracin
% Condiciones iniciales
y(1)=0;
v(1)=0;
t(1)=0;
fin=0;
k=1;
ye=L+m*g/ke

Las notas se publicarn en WebCT y el tabln virtual de la Escuela el 19 de Junio.

Hoja 2/3

APELLIDOS:

Dpto. Ing. de Sistemas y Automtica. Universidad de Sevilla.


er
Examen 1 Convocatoria. Informtica. 1 curso Grado en Ingeniera Aeroespacial
11 de Junio de 2013
NOMBRE:
N MATRCULA/D.N.I.:

Escriba las respuestas en los recuadros indicados. Entregue todas las hojas con su nombre y apellidos.

while(~fin)
%Actualizacin de variables
y(k+1)=y(k)+h*(v(k));
if y(k)<=L % Tramo 1
v(k+1)=v(k)+h*(g-ro*v(k)*vabs(v(k))/m);
else % Tramo 2
v(k+1)=v(k)+h*(g-ke*(y(k)-L)/m-ro*v(k)*vabs(v(k))/m);
end
t(k+1)=t(k)+h;
% Deteccin de fin
if(y(k)<ye-1 || y(k)>ye+1) % Si nos salimos de la franja, reseteamos kf
kf=k;
end
if (k-kf)*h>=3 % Si hace ms de 3 seg que no nos salimos de la franja
fin=1;
end
k=k+1;
end
end

2. Funcin comprueba_seguridad que recibiendo como argumentos los resultados de la simulacin de la


funcin anterior, determine si el salto es seguro. Se entiende que el salto es seguro si el valor mximo de y(t)
no excede H-5 (al altura del puente menos 5 metros) y la tensin mxima de la cuerda no excede el 80% de
la resistencia terica prevista (este dato se pasa tambin como argumento a la funcin).La tensin de la
cuerda, T, se puede calcular como T= k(y-L)
La funcin debe mostrar un mensaje por pantalla con el siguiente formato de ejemplo:

Elongacion mxima segura. Maximo y(t)=38.3 m < 45 m


Tensin mxima segura. Mximo T(t)=2714 N < 3000 N
O la correspondiente frase en negativo llegado el caso.
function []=comprueba_seguridad(t, y, v, Tmax)
L=20; %(m) Longitud de la cuerda
H=50; %(m) Altura del puente
ke=150; %( N/m ) Constante elstica de la cuerda
ymax=0;
n=length(t);
for k=1:n %Buscamos elongacin mxima
if y(k)>ymax
ymax=y(k);
end
end
if ymax>H-5;
fprintf('Elongacin mxima no segura. Mximo y(t)=%f m > %f m\n',ymax,H-5);
else
fprintf('Elongacin mxima segura. Mximo y(t)=%f m < %f m\n',ymax,H-5);
end
if ke*(y(k)-L)>Tmax*0.8
fprintf('Tensin mxima no segura. Mximo T(t)=%f N > %f N\n',ke*(y(k)-L),Tmax*0.8);
else
fprintf('Tensin mxima segura. Mximo T(t)=%f N < %f N\n',ke*(y(k)-L),Tmax*0.8);
end
end

Las notas se publicarn en WebCT y el tabln virtual de la Escuela el 19 de Junio.

Hoja 3/3

APELLIDOS:

Dpto. Ing. de Sistemas y Automtica. Universidad de Sevilla.


er
Examen 1 Convocatoria. Informtica. 1 curso Grado en Ingeniera Aeroespacial
11 de Junio de 2013
NOMBRE:
N MATRCULA/D.N.I.:

Escriba las respuestas en los recuadros indicados. Entregue todas las hojas con su nombre y apellidos.

CUESTIN 3 (3.5 Puntos)


La conjetura de Legendre afirma que siempre existe un nmero primo entre dos cuadrados
perfectos consecutivos. Es decir, siempre podemos encontrar al menos un nmero primo entre n 2 y
(n + 1) 2 , para n 2 . Por ejemplo si n = 3 , tenemos entre 9 y 16 a los nmeros primos 11 y 13
(Recuerde que un nmero primo es aquel que slo es divisible por l mismo y la unidad).
Se pide:
a) Programe en MATLAB la funcin legendre que compruebe la conjetura para un nmero
entero n y devuelva en un vector la lista de todos los nmeros primos comprendidos entre n 2 y

(n + 1) 2 . Puede crear funciones auxiliares si lo requiere.


function v=legendre(n)

v=[];
cont=1;
for i=n:n*n
if esprimo(i)
v(cont)=i;
cont=cont+1;
end
end
end
function r=esprimo(n)
r=1;
if n>1
d=2;
while mod(n,d)~=0 && d*d<n && r==1
d=d+1;
end
if d*d<=n
r=0;
end
end
end

Las notas se publicarn en WebCT y el tabln virtual de la Escuela el 19 de Junio.

Hoja 4/3

APELLIDOS:

Dpto. Ing. de Sistemas y Automtica. Universidad de Sevilla.


er
Examen 1 Convocatoria. Informtica. 1 curso Grado en Ingeniera Aeroespacial
11 de Junio de 2013
NOMBRE:
N MATRCULA/D.N.I.:

Escriba las respuestas en los recuadros indicados. Entregue todas las hojas con su nombre y apellidos.

b) Programe en MATLAB la funcin comprueba_conjetura que comprueba la conjetura para


los valores comprendidos entre n=2 y n=20. La funcin crear un fichero de texto, cuyo
nombre se pasa como argumento, con el siguiente formato:

Primos entre n=4 y 9 -> 5,7


Primos entre n=9 y 16 -> 11, 13
Primos entre n=16 y 25 -> 17, 19, 23
etc
Nota: Emplee la funcin del apartado a
function comprueba_conjetura(nombre)

fid=fopen(nombre,'wt');
if(fid<0)
disp('Error de apertura del fichero');
else
for i=2:20
v=legendre(i);
fprintf(fid,'Primos entre n=%d y %d ->',i*i,(i+1)*(i+1));
for j=1:length(v)-1
fprintf(fid,'%d, ',v(j));
end
fprintf(fid,'%d\n\n',v(length(v)));
end
fclose(fid);
end
end

Las notas se publicarn en WebCT y el tabln virtual de la Escuela el 19 de Junio.

Hoja 5/3

Potrebbero piacerti anche