Sie sind auf Seite 1von 19

Programacin I

Examen
Grupo: 3G

Adrian Mauricio Salcedo Chitica 251933


26 de Noviembre del 2012

1. La presin atmosfrica (p) vara en funcin de la altura (h) segn la


siguiente expresin: p=1035*e-0.12h, donde la altura se mide en kilmetros
y la presin en milibares.
a) Escribir una funcin presion que calcule la presin para una altura
dada.
Funcin
function x = presion(h) % h = altura
e=2.71828; % (e)= constante 'numero de euler'
p=1035*e^(-0.12*h)
end

b) Queremos ahora observar en una grfica cmo vara la presin en


funcin de la altura. Para ello, definiremos a_vec como un vector de
alturas que toma los valores enteros entre 0km y 30km, aplicaremos la
funcin que hemos escrito para obtener los valores del vector de
presiones p_vec y dibujaremos la grfica con la altura en las abscisas y la
presin en las ordenadas. Agregue a esta grfica los rotulos de ejes y
encabezado correspondientes.
function p = presiongrafica( h )
%PRESIONGRAFICA, esto grafica los valores de la altura
e=2.71828; % (e)= constante 'numero de euler'
x=0:0.1:h;
p=x*1035*e^(-0.12*h);
plot(x,p);
TITLE('Grafica de presin en funcin de la altura');
XLABEL('Presion');
YLABEL('Altura');
grid;
end

2. El cuadrante de un punto (x,y) se puede determinar a partir del signo


de x e y. Escribir una funcin tal que dadas las coordenadas x e y, indique
a qu cuadrante pertenece el punto.
function c=cuadrante(x,y)
if (x>0)&&(y>0)
display('Tu punto esta
end
if (x<0)&&(y>0)
display('Tu punto esta
end
if (x<0)&&(y<0)
display('Tu punto esta
end
if (x>0)&&(y<0)
display('Tu punto esta
end
end

en el primer cuadrante :)');


en el segundo cuadrante :)');
en el tercer cuadrante :)');
en el Cuarto cuadrante :)');

3. Un profesor quiere analizar los resultados de los exmenes que propone


a sus alumnos. Cada alumno se examina 3 veces en un curso. Y en cada

ocasin realiza dos tipos de examen: un test y uno de problemas. Por


tanto, en total son 6 exmenes por alumno.
Primero hay que importar los datos calificaciones.

a) Calcular la media por cada tipo de examen en cada convocatoria. La


funcin debe devolver un vector con las 6 medias.
function mdc = mediaconvocatoria ( A )

% a)
Calcular la media por cada tipo de examen en cada convocatoria.
% La funcin debe devolver un vector con las 6 medias.
[m,n]=size(A);
p=0;
for i=1:m
p=p+A(i,2:7);
end
p=p/m;
fprintf('La media para cada tipo de examen es =\n %2.2f \n %2.2f \n
%2.2f \n %2.2f\n %2.2f \n %2.2f \n',p)
end

b) Calcular la media por alumno. Tambin se devolver un vector con


todas las medias.
function mda = mediaalumno ( A )
% b)
Calcular la media por alumno. Tambin se devolver un vector con todas
las medias.

[m,n]=size(A)
p=0;
for i=1:6
p=p+A(1:10,i);
end
pr=p/n;
fprintf('La media para alumno es =\n %2.2f \n',pr)
end

c) Escribir una funcin que indique el nmero de alumnos cuya nota


media es superior a la media de todos los exmenes para todos los
alumnos.
function Q=mediadcadauno(A)
% a)
Calcular la media por cada tipo de examen en cada convocatoria.
% La funcin debe devolver un vector con las 6 medias.
[m,n]=size(A);
p=0;

for i=1:m
p=p+A(i,2:7);
end
p=p/m;
% b)
Calcular la media por alumno. Tambin se devolver un vector con todas
las medias.
p=0;
for i=1:6
p=p+A(1:10,i);
end
pr=p/n;
suma_examenes=0;
media_examenes=0;
suma_total_examenes=0;
cont=0;
for y=1:n
for x=1:m
suma_examenes=suma_examenes+A(x,y);
end
media_examenes= suma_examenes/(m); %media examenes c/u
fprintf('%s %d %s %f \n','la media del examen :',y,' es
',media_examenes);
end
for y=1:n
suma_total_examenes=suma_total_examenes+media_examenes;
end
media_total_examenes=suma_total_examenes/(n);
fprintf('%s %d \n','la media de los examenes es ',media_total_examenes);
for x=1:m
if (p)>(pr)
cont= cont+1;
end
end
fprintf('%s %d
\n','EL TOTAL DE ALUMNOS DE MEDIAS MAYORES A LA DE LOS
EXAMENES ES',cont);
end

Utiliza para todo esto el archivo Calificaciones que se encuentra en la plataforma


de este debes obtener los datos para el ejercicio.

4. Elaborar un script que ingrese datos de una matriz de m x n elementos


todos Ingresados por teclado y despliegue a la pantalla las posiciones de
los elementos repetidos en la matriz junto al valor repetido.
% Elaborar un script que ingrese datos de una matriz de m x n elementos todos
Ingresados por teclado y despliegue a la pantalla las posiciones de los
elementos repetidos en la matriz junto al valor repetido.
function matriz=repetidos(A)
n=length(A);
k=1;
while k<=n
[elemento, repitencia]=find(A==A(k));
fprintf('El elemento%3d\n se repite%3d veces \n en.. %d \n
',A(k),length(repitencia),[elemento, repitencia]);
A(repitencia)=[];
n=length(A);
end
end

5. Escriba un Script para resolver este problema. Un rey persa, al conocer


el juego de ajedrez quiso pagarle a su creador por tan fantstico
juego.
Despus de mucha insistencia,
el creador del juego
pidi como recompensa el total de granos de arroz, si en cada casilla del
tablero, se pone el doble de granos de la casilla anterior, empezando en
1. Es decir, en la primera casilla se pone un grano, en la segunda dos
granos, en la tercera cuatro granos, en la cuarta ocho granos, y as. Las
64 casillas del tablero. Calcule
el total de granos necesarios para
pagarle al creador del juego. Adems, si 3 granos pesan 0.1 gramos, cual
es el peso total del arroz a pagar.
function rey
clc;
arroz=0;
for i=1:64
arroz=i+(arroz*2);
end
arroz=arroz/2;
gramos=(arroz/30);%Se usa una regla de tres
fprintf('El total de granos que se necesita pagar el rey es..
total del arroz a pagar es.. %f\n',arroz,gramos);

%f \n El peso

6. Elabore un script que solicite una matriz de m x n elementos que


corresponda a un sistema de ecuaciones lineales y se muestre a la
pantalla la matriz
r educida e indique si el sistema tiene solucin
nica o multiple.
function a=reducida
m=input('Ingrese el tamao de las filas : ');
n=input('Ingrese el tamao de las columnas: ');
for i=1:m
for j=1:n
fprintf('ingrese M[%d][%d]: ',i,j);
M1(i,j)=input('');
end
end
R=rref(M1) %El comando rref produce la forma reducida escalonada por ?las de
una matriz usando la eliminacion de Gauss-Jordan
if R==eye(m,n)
disp('Solucion unica')
else
disp('Solucion Multiple')
end

7. Una esfera de aluminio sometida a una corriente electrica constante,


se mide la temperatura de la
esfera a intervalos de tiempo denidos, la siguiente tabla muestra los
resultados de la prueba

Obtenga un polinomio de 4 orden que aproxime el comportamiento de la


temperatura con respecto al
tiempo.
function ea=esferadealuminio(D)
[m,n]=size(D);
x=D(:,1); % Genera un vector
y=D(:,2); % Genera un vector
p=polyfit(x,y,4); % Elegimos grado 4
z=polyval(p,x);
hold on;
disp('EL polinomio de cuarto orden es...')
disp(p)
plot(x,z)
end

8. Determine las races de los siguientes polinomios:


a) x2+ 2x 3 = 0
>> a=[1 2 3]
a=
1

>> ra=roots(a)
ra =
-1.0000 + 1.4142i
-1.0000 - 1.4142i
>>

b) 2y 5y3= 4y2 3,4y3+ 9y 8

c) 3z5+ 4z3 9z + 5 = 0
>> c=[3 0 4 0-9 5]
c=
3

-9

>> rc=roots(c)
rc =
-0.7082 + 1.4924i
-0.7082 - 1.4924i
0.7082 + 0.3305i
0.7082 - 0.3305i
>>

9. Calcule el producto punto y producto cruz de los siguentes vectores (1,


2, 3,) y (3,4,5)
>> a=[1 2 3]
a=
1

>> b=[3 4 5]
b=
3

>> dot(a,b)
ans =
26

>> dot(b,a)
ans =
26

>> a=[1 2 3]
a=
1

>> b=[3 4 5]
b=
3

>> c=cross(a,b)
c=
-2

-2

Das könnte Ihnen auch gefallen