You are on page 1of 9

pauta.

%P1: sencos
x=-pi:pi/25:pi;
ysin=sin(x);
ycos=cos(x);
plot(x,ysin,'r-');
hold on
plot(x,ycos,'b-');
%-------------------------------%P2: randplot
x=0:0.1:10;
y=100*rand(1,100);
plot(x,y,'--*')
%-------------------------------%P3
function total = total_compra( vector )
total = sum(vector);
if(total>1000)
total=total*0.8;
end
%-------------------------------%P4
function nota = promedio_final( vector )
nota=sum(vector)/length(vector);
if(nota>=40)
disp('alumno aprobado');
elseif(nota<40 && nota >=3.7)
disp('examen de segunda');
else
disp('alumno reprobado');
end
end
%-------------------------------%P5
function salario = salario_semanal(horas)
if(horas <= 40)
salario = horas * 16;
else
salario = 16*40+20*(horas-40);
end
end

-1-

pauta.m

%-------------------------------%P6
function calorias_consumidas = calorias( vector )
% peso dormir sentado caminar correr
calorias_consumidas = 1.08* vector(2) + 1.66*vector(3);
peso = vector(1);
if peso>=20 && peso < 50
calorias_consumidas = calorias_consumidas + 3.1*vector(4) + 7.3*vector(5);
elseif peso>=50 && peso < 70
calorias_consumidas = calorias_consumidas + 4.8*vector(4) + 9.3*vector(5);
elseif peso>=70 && peso < 100
calorias_consumidas = calorias_consumidas + 6.5*vector(4) + 11.4*vector(5);
end
%en el caso que el peso no caiga en una de estas 3 categorias, no esta definido que
%hay que hacer. Se puede mostrar un mensaje indicando que no hay una formula de calorias
%para el peso dado, o bien, hacer un calculo alternativo.
end
%-------------------------------%P7
function positivos = positivos_while( vector )
i=1;
n=length(vector);
positivos = 0;
p=1;
while i<=n
if vector(i)>0
positivos(p)=vector(i);
p = p + 1;
end
i=i+1;
end
end
%-------------------------------%P8
function positivos = positivos_for( vector )
positivos = 0;
p=1;
for i=1:1:length(vector);
if vector(i)>0
positivos(p)=vector(i);
p = p + 1;
end
end
end

-2-

pauta.m

%-------------------------------%P9
function contador = cuenta(vector)
positivos = 0;
negativos = 0;
ceros = 0;
for i=1:1:length(vector);
if vector(i)>0
positivos = positivos +1;
elseif vector(i)<0
negativos = negativos + 1;
else
ceros = ceros + 1;
end
end
contador = [positivos negativos ceros];
end
%-------------------------------%P10
function est = estadisticas( vector )
%sin usar funciones mean() min() ni max()
sumanotas=0;
min=80; %tomamos un minimo tan grande, que al ser comparado siempre pierda
max=0; %tomamos un maximo tan pequeo, que al ser comparado siempre pierda
n=length(vector);
for i=1:1:n
sumanotas=sumanotas + vector(i);
if vector(i)<min
min=vector(i);
end
if vector(i)>max
max=vector(i);
end
end
prom=sumanotas/n;
est=[min max prom];
end
%-------------------------------%P11
function s=suma(eps)
%iniciamos la suma acumulada en 0
s=0;
n=2;
%tomamos el termino 1 y 2 de la sumatoria
t1=1;
%1/factorial(1)
t2=1/factorial(2); %1/factorial(2)
%agregamos a la suma los terminos 0 1 y 2
s = s + 1 + 1 +t2;
-3-

pauta.m

%calculamos nuevos terminos hasta que la resta entre los 2 ultimos


%sea menor a un epsilon dado.
while (abs(t1-t2)>eps)
t1=t2;
%incrementeamos n y calculamos un nuevo termino
n=n+1
t2=1/factorial(n);
s=s+t2;
end
end
%-------------------------------%P12
function r=area(a,b,eps)
%Primero se calcula el area 1 vez (para tener un valor inicial de comparacin)
n=2;
d=(b-a)/(n-1);
area1=0;
x=a;
for i=1:n-1
area1=area1+f(x);
x=x+d;
end
area1=area1*d;
area2 =0;
%variable que es como un "switch" que indica si se ha cumplido la condicin de convergencia
o no.
cond = 1;
%luego se calcula el area tantas veces como sea necesario:
while(cond == 1)
n=n+1
d=(b-a)/(n-1);
area2=0;
x=a;
for i=1:n-1
area2=area2+f(x);
x=x+d;
end
area2=area2*d;
%Si se cumple la condicin, "apagamos" el switch (tambien se puede usar un break)
if(abs(area1-area2)<eps)
cond=0;
else
%Si no, se reemplaza el valor anterior del area
%por el actual, y se calcula nuevamente
area1=area2;
end
end
%cuando converge, entregamos el valor final del area.
r=area2;
end
-4-

pauta.m

%-------------------------------%P13
%a)
function p = promedio(x,y)
p=sum(x.*y)/sum(y);
end
%---%b)
function d = desviacion(x,y)
p=promedio(x,y);
N=sum(y);
C=x-p;
C=C.^2;
C=C.*y;
C=C/N;
C=sum(C);
d=sqrt(C);
end
%---%c)
X=rand(1,50);
Y=ceil(10*rand(1,50));
P=promedio(X,Y);
d=desviacion(X,Y);
h1=P-d;
h2=P+d;
plot(X,Y,'*')
hold on
plot([h1 h1],[0 10],'-')
plot([h2 h2],[0 10],'-')
plot([P P],[0 10],'r--')
xlabel('numeros')
ylabel('repeticiones')
hold off
%-------------------------------%P14
%a)
function y=f(x)
y=cos(2*x-(pi/2)).^3+2*sin(x./2);
end
%---%b)
function r= area(a,b,n)
s=0;
delta=(b-a)/(n-1);
for i=2:n-1
s=s+f(a+(i-1)*delta);
end
s=f(a)/2 + s + f(b)/2;
r=s*delta;
end
-5-

pauta.m

%---%c)
X=linspace(0,pi,32);
Y=f(X);
plot(X,Y,'-')
hold on
for i=1:32
plot([X(i) X(i)], [0,Y(i)],'--r')
end
title(area(X(1),X(32),length(X)));
hold off
%-------------------------------%P15
%a)
Formula para E2: =B2+C2+D2 o bien =suma(B2:D2)
Luego se copia y pega esta formula en las demas celdas de la columna E.
Ya que al no tener referencias estaticas, la formula cambiara de fila automaticamente.
Tambien se puede usar el 'cuadradito' de la esquina inferior derecha de la celda y
desplazarlo por toda la columna
%---%b)
C34: =suma(E2:E32)
C35: =C34/contar(E2:E32) o bien =C34/31
C36: =max(E2:E32)
C37: =min(E2:E32)
%---%c)
Formula para F2: =si(B2>=3; si(C2>=3; si(D2>=5; B2;"") ;"") ;"")
Se propaga analogamente a la explicacin dada en la parte a)

%---%d)
Formula para G2: =100*E2/$C$34
Dado que estamos usando una referencia estatica para C34 (usando signo peso), no tendremos
problemas al propagar la formula como lo hemos hecho anteriormente.

-6-

pauta.m

%-------------------------------%P16
<html>
<head>
<title> Comida! </title>
</head>
<body>
<h1> <i>Piramide de alimentos</i> <h1>
<img src="piramide.jpg"> </img>
<ul>
<li> Cereales </li>
<li><font color="green"> Verduras </font></li>
<li> Frutas </li>
<li> Grasas </li>
<li> Lacteos </li>
<li><font color="red"> Carnes </font></li>
</ul>
<a href="http://www.choosemyplate.gov/">Fuente</a>
</body>
</html>
%-------------------------------%P17
Ver imagen al final de este documento.
%-------------------------------%P18
%a)
f:= x-> (1-cos(x))/ x
%---%b)
evalf( f(3*Pi/4) )
%---%c)
solve(f(x)=0,x)
%---%d)
limit(f(x),x=0)
%---%e)
diff(f(x),x) y diff(f(x),x,x) o bien, f'(x) y f''(x)
%---%f)
plot(f(x), x = -3*Pi .. 3*Pi)
%---%g)
taylor(f(x), x)
-7-

pauta.m

%---%h)
sum(f(x), x = 1 .. 10)
%-------------------------------%Bonus
%a)
function coef = coeficientes(par1, par2,par3 )
A= [ par1(1) par1(2) 1 ;
par2(1) par2(2) 1 ;
par3(1) par3(2) 1 ]
b= [

-par1(1)^2 - par1(2)^2 ;
-par2(1)^2 - par2(2)^2 ;
-par3(1)^2 - par3(2)^2 ]

sol = inv(A)*b;
coef= [sol(1) sol(2) sol(3)];
end
%---%b)
function[centro , r] = circunferencia(a,b,c)
centro=[-a/2 -b/2];
r=sqrt((a/2)^2+(b/2)^2-c);
end
%---%c)
function pertenencia( c,r,p )
d=sqrt( (c(1)-p(1))^2 + (c(2)-p(2))^2);
if d>r
disp('punto fuera');
elseif d<r
disp('punto dentro');
else
disp('punto en el borde');
end
end
%-------------------------------%--------------------------------

-8-

You might also like