Problemas Propuestos y Resueltos de Programación en Matlab

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 13

AACB-FIQT-UNI 2011-II

8) Escriba un programa en Matlab que halle el


PROBLEMAS PROPUESTOS Y menor nmero positivo de cuatro cifras que
RESUELTOS DE PROGRAMACIN EN cumpla: acba = ac * ba
MATLAB
9) Hacer un programa que calcule la siguiente
1) Leer el nmero natural N, y determinar el serie:
promedio de los nmeros naturales menores a S =
N que sean mltiplos de 3 mltiplos de 5. 1! 2! 3! 4! N!
......
2 2 3 3 4 4
x 2 x 2 x 2 x 2 N
x 2N
2) Disee un programa donde dados dos
polinomios (vectores) p y q, de cualquier grado Los datos son N y X, y asumir que se
(suponiendo que grado de p es mayor que el de ingresan valores vlidos.
q), y dados dos nmeros a y b (a<b), halle:
a) Las abscisas de las intersecciones. 10) Hacer un programa, donde dados los datos: ra,
b) Grafique ambas curvas en mismo grfico, ha, ka, rb, hb, kb, los radios y coordenadas del
en el intervalo de a hasta b centro de 2 circunferencias (asumir ra > rb),
c) Determine aproximadamente c, tal que determine mediante mensajes: si una est
p(c) = (p(a)+p(b))/2 estrictamente incluida en la otra, si son
d) A veces la curva de p, est por encima de tangentes internas, si se cruzan, si son
q, y a veces al revs. Hallar tangentes externas, si no se cruzan.
aproximadamente el nico punto ms alto,
considerando p y q a la vez, en el intervalo 11) Dados los vectores X,Y1,Y2, del mismo
de a hasta b. tamao, que representan las coordenadas de
dos curvas X,Y1 y X,Y2:
3) Hacer un programa donde se ingresa el dato a) Halle la integral de la curva X,Y, donde Y
entero N, y obtenga la matriz A de N*N, segn tiene las coordenadas mas
lo mostrado: Por ejemplo con N bajas 1 2 3 4 al comparar Y1 con
= 4,obtendr: A= Y2. 2 3 4 5
b) Halle 3 4 5 6 las races del
4 5 6 7 polinomio de grado 2
ajustado a la curva X,Y1
c) Grafique la derivada del polinomio de
4) Hacer un programa donde se ingresa el dato mayor grado ajustado a la curva X,Y2
entero N, y obtenga la matriz A de N*N, segn d) Determine
lo mostrado: Por ejemplo con N 1 2 3 4 cuantos puntos de la
= 4,obtendr: A= curva 5 4 3 2 X,Y1 estn debajo de
la 3 4 5 6 parbola y=x2
7 6 5 4

12) Hacer un programa que lea R, un nmero


5) Dadas las coordenadas x, y, de un punto A, entero, y muestre todos los tros pitagricos a,
adems si el punto B es (1,1). Determinar si el b, c, que cumplen con: a b c R y a2+b2=c2
segmento AB cruza, 0, 1 2 ejes.

6) Hacer un programa que lea los datos reales h, 13) Dada la matriz A, determine la suma de los
k, r, y determine el rea encerrada entre el cuadrados de los elementos que estn el rango
borde ms cercano al eje X de la circunferencia [c, d], donde c y d son datos.
(x-h)2 + (y-k)2 = r2 , y el eje X.
14) Dos vehculos A y B viajan por una pista que
7) Para calcular: S = 1! + 3! + 5! tiene una parte pedregosa entre los 20 y 40
+ ..... n trminos Km., como se muestra en la figura:
12 32 52
Escribir un programa que calcule S, luego de Los vehculos parten de los 0km y se sabe que,
leer el dato n en terreno pedregoso, el vehculo A viaja al
80% de su velocidad normal, mientras el

Problemas propuestos y resueltos de Programacin en Matlab. Prof. Miguel Sierra


AACB-FIQT-UNI 2011-II
vehculo B viaja al 70% de su velocidad g) El vector G, con los porcentajes de ventas
normal. de cada vendedor respecto al total de
Desarrollar un programa en Matlab que realice ventas.
lo siguiente:
Lea las velocidades de los dos vehculos en 19) Dados los puntos N con coordenadas
km/h, y el tiempo transcurrido en horas. guardadas en los vectores X e Y, cada uno de
Si ambas velocidades y el tiempo son longitud N, indicar las sentencias necesarias
mayores que cero: Imprima un mensaje para:
indicando que vehculo va adelante a) Determinar P el polinomio de mximo
(considerando que ambos parten grado que se ajuste mejor a los puntos
simultneamente) b) Determinar la interseccin del polinomio P
Si alguna de las velocidades o el tiempo, con la recta y = 3x-5
no es mayor que cero, imprima el mensaje c) Determinar las coordenadas del punto ms
de error correspondiente. alto.
d) Determinar cuantos puntos estn dentro de
15) Hacer un programa en lea X y N, y calcule S: la circunferencia de centro (h, k) y radio r
S = X - X2 + X3 - X4 e) Graficar la parbola que mejor se ajuste a
+ X5 -. (N trminos) los puntos
2 22.2! 23.3! 24.4! f) Determinar la distancia al origen, del punto
5
2 .5! mas alejado del origen
g) Hallar la integral de Y respecto a X
16) Escriba un programa que grafique el h) Determinar cuantos puntos estn en el 3er.
PARABOLOIDE HIPERBOLICO cuadrante
2 2
x y
( ) cz Datos a 20) La comisin de un vendedor (C ) se determina
2 2 segn el monto vendido en soles(V):
a b
leer: a, b, c, xmin, xmax, ymin, ymax Si 0 V 1000 C es el
10%
17) Hacer un programa que solicite ingresar N Si 1000< V 3000
puntos (Xi,Yi) del plano, y determine cuntos adicionalmente C es el 15% de
de los puntos estn en el 1er, 2do, 3er y 4to. cada sol que excede a los 1000
cuadrante, y cuntos en algn de los ejes (es Si 3000< V
decir, son 5 grupos excluyentes). Las adicionalmente C es el 20% de
coordenadas Xi estarn en el vector X de N cada sol que excede a los 3000
componentes, en forma similar para las Hacer un programa donde el dato sea V, y se
coordenadas Y. muestre como resultado C, a menos que V sea
negativo, en tal caso, se deber mostrar un
18) Dada la matriz V m*n , de las ventas (en $) de mensaje de error.
cada uno de los m vendedores en cada una de Nota: Si V es 3500, C ser: 1000*0.10 +
las n tiendas, indicar las sentencias necesarias 2000*0.15 + 500*0.20
para calcular:
a) El vector columna A, promedio de ventas 21) Hacer un programa que lee los datos a, b
de cada vendedor. (reales) y N (entero), y calcule la siguiente
b) B, el nmero del vendedor que realiz la sumatoria de 2*N trminos:
venta ms alta en alguna de las tiendas. S = a - b2 + a3 - b4 +
c) C, el nmero de la tienda que mas vendi a5 - . (2*N trminos)
d) D, el nmero del vendedor que ms 1! 2! 3!
vendi. 4! 5!
e) E, el nmero del vendedor que est en 2do. 22) Escriba un programa que calcule el volumen
lugar de ventas. molar V de un gas, utilizando la ecuacin de
f) Los vendedores pueden recibir estado de Van der Wals para un gas no ideal,
bonificacin en cada tienda. Por dada por
disposicin gerencial, la venta mnima del a
(P )(v b) RT
vendedor en cada tienda, para recibir
v2
bonificacin, es K. Calcular F, en cuantos
Se tiene como datos: P, a, b, R y T.
casos se recibir bonificacin.
Sugerencia: es una ecuacin cbica en V.

Problemas propuestos y resueltos de Programacin en Matlab. Prof. Miguel Sierra


AACB-FIQT-UNI 2011-II
regin de interseccin es verde, los exteriores
23) Hacer un programa que calcule PC, el son de color negro, y las lneas de las figuras
promedio del curso, considerando que el son blancas.
alumno ha dado examen Sustitutorio. Hacer un programa en Matlab, que lea las
Los datos a leer son: EP (el Parcial), EF (el coordenadas X, Y de un punto, y escriba como
Final) y ES (el Sustitutorio). resultado el color del punto.
El curso tiene peso 1 para el Parcial, y peso 2
para el Final.
El Sustitutorio puede reemplazar al Parcial al 30) Hacer un programa que lea, una por una, las
Final, dependiendo de con cual caso se obtenga notas del examen final de N alumnos, y que
el mayor promedio PC. realice lo siguiente:
La condicin para que valga el Sustitutorio es Muestre las notas de mayor a menor
que el promedio previo (sin el Sustitutorio) sea Muestre las notas de los alumnos que
mayor o igual a 6.1, o cuando alguno: EP o EF, superan el promedio
sean cero, si no es as, se debe mostrar un El profesor hace un ajuste de notas,
mensaje indicando que el Sustitutorio no es sumando 1 punto a todos, pero sin
vlido. sobrepasar el 20, entonces, muestre el
nuevo promedio.
24) Hacer un programa donde se ingresa el dato
entero N, y obtenga la matriz A de N*N, 4 3 2 1
segn el ejemplo: Dato N = 4, 5 4 3 2
obtendr: A= Solucin de 6 5 4 3 problemas
propuestos 7 6 5 4
de programacin
en Matlab
%Problema 1
25) Hacer un programa que luego de leer N puntos N=input('Ingrese N= ');
(Xi,Yi), representados como vectores X e Y, S=0;
grafique la el trozo de parbola que mejor se n=0;
ajuste a los puntos. for i=1:N-1
if((rem(i,3)==0) |
26) Asumiendo como datos el vector X, y el vector (rem(i,5)==0))
t, que corresponden a los espacios y tiempo del S=S+i;
recorrido de un mvil. Graficar el espacio n=n+1;
recorrido, la velocidad y la aceleracin, versus end;
el tiempo. end;
Sugerencia: obtener un polinomio que se ajuste p=S/n;
y represente el recorrido X.
disp(p);
Adems: V = (dX/dt)

27) Asumiendo que las notas finales de los cursos %Forma alternativa
de un alumno estn en el vector F, y sus N=input('Ingrese N= ');
crditos respectivos en el vector C: a=[];
a) Obtenga el promedio ponderado del for i=1:N-1
alumno. if((rem(i,3)==0) |
(rem(i,5)==0))
b) Obtenga el promedio ponderado depurado a= [a i];
del alumno. end;
end;
28) Dada la matriz cuadrada A, obtener la matriz p=mean(a);
B, consistente solo en los elementos de A cuyas disp(p);
filas y columnas son pares.

29) La parbola y = x2 y la circunferencia x2+y2 =


%Problema 2
62, definen un grupo de regiones, cada una de p=input('polinomio p= ');
un color: El interior de la parbola es amarillo, q=input('polinomio q= ');
el interior de la circunferencia es azul, la a=input('a= ');

Problemas propuestos y resueltos de Programacin en Matlab. Prof. Miguel Sierra


AACB-FIQT-UNI 2011-II
b=input('b= '); x=input('Ingrese x= ');
m=length(p); n=length(q); y=input('Ingrese y= ');
for i=1:m-n if((x>0)&(y>0))
q=[0 q]; %completa el grado disp('corta 0 ejes');
de q elseif((x<=0)&(y<=0))
end; disp('corta 2 ejes');
r=roots(p-q);%halla else
intersecciones disp('corta 1 eje');
disp('intersecciones'); end;
disp(r);
x=a:0.01:b; %Problema 9:
y1=polyval(p,x); %Primera forma
y2=polyval(q,x); N= input('Ingrese el nmero de
plot(x,y1,x,y2); trminos de la serie = ');
pa=polyval(p,a); x= input('Ingrese el valor de x
pb=polyval(p,b); = ');
pc=(pa+pb)/2; S=0;
d=abs(y1-pc); f=1;
[k i]=min(d); for i= 1:N
disp('c aproximado= '); f=f*i;
disp(x(i)) %El punto c buscado S= S+f/(x^i*2^(i/2));
(aprox.) end;
%otra forma a continuacion disp('La sumatoria da =');
p(m)=p(m)-pc; %iguala el pol. a disp(S);
pc
c=roots(p); %Segunda forma
c=c(c>=a & c<=b); %en intervalo N= input('Ingrese el nmero de
a,b trminos de la serie = ');
disp('c = '); x= input('Ingrese el valor de x
disp(c) %El punto c buscado = ');
%hallando el maximo global en S=0;
a,b f=1;
[mp i]=max(y1); d=1;
[mq j]=max(y2); for i= 1:N
if(mp>mq) f=f*i;
disp(x(i)); d=d*x*2^(0.5);
else S= S+ f/d;
disp(x(j)); end;
disp('La sumatoria da =');
disp(S);
%Problema 3
N=input('Ingrese N= '); %Tercera forma
A=zeros(N,N); N= input('Ingrese el nmero de
A(1,:)=1:N; trminos de la serie = ');
for i=2:N x= input('Ingrese el valor de x
A(i,:)=A(i-1,:)+1; = ');
end; S=0;
for i=2:2:N for i= 1:N
A(i,:)=A(i,N:-1:1); f=1;
end; for j= 1:i f es el
disp(A); factorial de i
f=f*j;
%Problema 5 end;

Problemas propuestos y resueltos de Programacin en Matlab. Prof. Miguel Sierra


AACB-FIQT-UNI 2011-II
S= S+f/(x^i*2^(i/2)); v1= input('Ingrese la velocidad
end; del vehculo A en km/h =');
disp('La sumatoria da ='); v2= input('Ingrese la velocidad
disp(S); del vehculo B en km/h =');
t= input('Ingrese el tiempo
%Cuarta forma transcurrido en horas =');
%Usando la funcin factorial(n) if (v1>0 & v2>0 & t>0)
= n! if (t<(20/v1))
N= input('Ingrese el nmero de e1= v1*t;
trminos de la serie = '); elseif
x= input('Ingrese el valor de x (t<((20/v1)+(20/(v1*0.8))))
= '); e1= 20+v1*0.8*(t-20/v1);
S=0; else
for i= 1:N e1= 40+v1*(t-
S= S + (20/v1)+(20/(v1*0.8)));
factorial(i)/(x^i*2^(i/2)); end;
end;
disp('La sumatoria da ='); if (t<(20/v2))
disp(S); e2= v2*t;
elseif
%Problema 10 (t<((20/v2)+(20/(v2*0.7))))
ra= input('Ingrese el radio de e2= 20+v2*0.7*(t-20/v2);
A (El programa asume ra>rb): else
ra= '); e2= 40+v2*(t-
ha=input('Ingrese la coordenada (20/v2)+(20/(v2*0.7)));
X del centro de A='); end;
ka=input('Ingrese la coordenada disp(e1);
Y del centro de A='); disp(e2);
rb= input('Ingrese el radio de
B: rb= '); if (e1>e2)
hb=input('Ingrese la coordenada disp('El vehculo A est
X del centro de B='); mas adelantado');
kb=input('Ingrese la coordenada elseif (e2>e1)
Y del centro de B='); disp('El vehculo B est
d=((ha-hb)^2+(ka-kb)^2)^0.5; mas adelantado');
%distancia entre los centros else
if(d<(ra-rb)) disp('Estn empatados');
disp('La B est includa en end;
A') else
elseif(d==(ra-rb)) disp('Error de datos');
disp('B es tangente interna end;
de A');
elseif(d<(ra+rb)) %Problema 15:
disp('B se cruza con A'); disp('Serie de N trminos');
elseif(d==(ra+rb)) X= input('Ingrese X =');
disp('B es tangente externa N= input('Ingrese N =');
de A'); S=0;
else %(d>(ra+rb)) p=1;
disp('B no se cruza con A'); for i= 1:N
end; p=p*i;
if (rem(i,2)==0)
%Problema 14 S=S-(X/2)^i/p;
else

Problemas propuestos y resueltos de Programacin en Matlab. Prof. Miguel Sierra


AACB-FIQT-UNI 2011-II
S=S+(X/2)^i/p; disp ('Error en el dato de
end; ventas');
end; elseif(V<=1000)
disp(S); C=0.1*V;
disp (V);
%Problema 16 elseif (V<=3000)
disp('Grfico del Paraboloide C=100+ 0.5*(V-1000);
hiperblico'); disp (V);
a= input('Ingrese a ='); elseif (V>3000) %o se puede
b= input('Ingrese b ='); poner solo: else
c= input('Ingrese c ='); C=100+2000*0.15+0.2*(V-
xmin= input('Ingrese x min ='); 3000);
xmax= input('Ingrese x max ='); disp (C);
ymin= input('Ingrese y min ='); end;
ymax= input('Ingrese y max =');
x=linspace(xmin,xmax); %Problema 21
y=linspace(ymin,ymax); disp('Serie de 2*N trminos');
[x y]=meshgrid(x,y); a= input('Ingrese a =');
z=(x.^2/a^2-y.^2/b^2)/c; b= input('Ingrese b =');
surfl(x,y,z); N= input('Ingrese N =');
shading interp; S=0;
p=1;
%Problema 18 for i= 1:2*N
V=[ 2 7 3; 5 0 9; 1 4 8; 0 3 1] p=p*i;
%a Promedio por cada vendedor if (rem(i,2)==1)
A=mean(V')' S=S+a^i/p;
%b Nmero del vendedor que else
realiz alguna venta ms alta S=S-b^i/p;
[m i]=max(V'); end;
[r, B]= max(m) end;
%C Tienda que mas vendi disp(S);
[T C]=max(sum(V))
%D Vendedor que mas vendi %Problema 22
[S D]= max(sum(V')') disp('Ecuacin de Van der
%E Vendedor que est en segundo Walls');
lugar de ventas P= input('Ingrese P =');
S=sum(V')'; a= input('Ingrese a =');
[m i]= max(S); b= input('Ingrese b =');
S(i)=0; R= input('Ingrese R =');
[m E]= max(S) T= input('Ingrese T =');
%F Nmero de casos con V=roots([P, -P*b-R*T, a, -
bonificacin a*b]); % Polinomio en V de
k=5 %ejemplo grado 3
F=sum(sum(V>=k)) disp('Raices de la ecuacion de
%G Porcentaje de ventas de cada Van der Walls, V=');
vendedor disp(V);
G=sum(V')'./sum(sum(V))*100
%Problema 23
%Problema 20 EP= input('Ingrese el examen
V= input('Ingrese el monto parcial =');
vendido ='); EF= input('Ingrese el examen
if (V<0) final =');

Problemas propuestos y resueltos de Programacin en Matlab. Prof. Miguel Sierra


AACB-FIQT-UNI 2011-II
ES= input('Ingrese el examen disp('Verde');
sustitutorio ='); elseif(y<x^2)
P=(EP+2*EF)/3; % antes del disp('Azul');
sustitutorio else
P1=(ES+2*EF)/3; % reemplaza el disp('Blanco');
parcial end;
P2=(EP+2*ES)/3; % reemplaza el end;
final %Forma Alternativa b:
if ((P<6.1)& (EP~=0) & (EF~=0)) clc;
disp ('El sustitutorio no es x=input('ingrese coordenada X=
vlido'); ');
elseif(P1>= P2) y=input('ingrese coordenada Y=
PC=P1; ');
disp(PC); if(x^2+y^2>36)
else if(y>x^2)
PC=P2; disp('Amarillo');
disp(PC); else
end; if(y<x^2)
disp('Negro');
%Problema 29 else
clc; disp('Blanco');
x=input('ingrese coordenada X= end;
'); end;
y=input('ingrese coordenada Y= else
'); if(x^2+y^2<36)
if((x^2+y^2>36)&(y>x^2)) if(y>x^2)
disp('Amarillo'); disp('Verde');
elseif((x^2+y^2>36)&(y<x^2)) else
disp('Negro'); if(y<x^2)
elseif((x^2+y^2<36)&(y>x^2)) disp('Azul');
disp('Verde'); else
elseif((x^2+y^2<36)&(y<x^2)) disp('Blanco');
disp('Azul'); end;
else end;
disp('Blanco'); else
end; disp('Blanco');
end;
%Forma Alternativa a: end;
clc;
x=input('ingrese coordenada X= %Problema 30
'); clc;
y=input('ingrese coordenada Y= N=input('Ingrese la cantidad de
'); alumnos=');
if(x^2+y^2>36) for i=1:N
if(y>x^2) x(i)=input('Ingrese
disp('Amarillo'); nota=');
elseif(y<x^2) end;
disp('Negro'); z=sort(x);
else z=fliplr(z);
disp('Blanco'); disp('Notas de mayor a menor');
end; disp(z);
elseif(x^2+y^2<36) y=x(x>mean(x));
if(y>x^2) disp('Notas que superan el

Problemas propuestos y resueltos de Programacin en Matlab. Prof. Miguel Sierra


AACB-FIQT-UNI 2011-II
promedio'); plot(x,y);
disp(y);
for i=1:N
if(x(i)< 20) %Programa prog01.m
x(i)=x(i)+1; %indica si las dos matrices son
end; iguales
end; a=[1 2; 3 4]
disp('Notas ajustadas'); b=[1 2; 3 4]
disp(x); if(isequal(a,b)) %isequal
disp('Nuevo promedio') compara dos matrices, si son
disp(mean(x)); iguales da 1
disp('son iguales');
%Forma Alternativa a: else
clc; disp('son diferentes');
N=input('Ingrese la cantidad de end;
alumnos=');
x=[];
for i=1:N %Programa prog02.m
nota=input('Ingrese %indica si dos matrices leidas,
nota='); son iguales
x=[x nota]; a=input('ingrese la primera
end; matriz: ');
z=-sort(-x); b=input('ingrese la segunda
disp('Notas de mayor a menor'); matriz: ');
disp(z); if(isequal(a,b))
disp('Notas que superan el disp('son iguales');
promedio'); else
for i=1:N disp('son diferentes');
if(x(i)>mean(x)) end;
disp(x(i));
end;
end; %Programa prog03.m
x= x+(x<20); %ajuste %Leer dos polinomios, hallar
disp('Notas ajustadas'); las raices reales de ambos,
disp(x); luego hallar las %coordenadas
disp('Nuevo promedio') x,y de sus intersecciones, y
disp(mean(x)); graficarlos evidenciando
%las intersecciones.
clc;
clear all;
p=input('Ingrese el primer
polinomio: ');
%Programa muestra01.m q=input('Ingrese el segundo
%grafica un polinomio en el polinomio: ');
intervalo desde a hasta b rp=roots(p);
clc; rp=rp(imag(rp)==0); %imag es
p=input('Ingrese un vector la parte imaginaria de un
polinomio: '); nmero, como real
a=input('limite inferior: '); rq=roots(q); % si la
b=input('limite superior: '); parte imaginaria es cero, el
x=a:(b-a)/100:b; nmero es real
%x=linspace(a,b); rq=rq(imag(rq)==0);
y=polyval(p,x); disp('raices reales de p');

Problemas propuestos y resueltos de Programacin en Matlab. Prof. Miguel Sierra


AACB-FIQT-UNI 2011-II
disp(rp');
disp('raices reales de q');
disp(rq'); %funcin divp.m
lp=length(p);lq=length(q); function y=divp(N) %Ejemplo
if (lp>lq) de funcin Matlab. y contiene
q=[zeros(1,lp-lq) q]; el resultado
else i=1:N/2;
p=[zeros(1,lq-lp) p]; y=i(mod(N,i)==0);
end
r=roots(p-q);
r=r(imag(r)==0); %Programa prog06.m
x=r; %Dado un numero k, hallar los
y=polyval(p,x); primos de 2 hasta k
disp('intersecciones:'); %Hace uso de la funcion divp,
disp([x';y']); recin creada
xmin=min(x); clc;
xmax=max(x); k=input('Ingrese un numero
x0=linspace(xmin-2,xmax+2); entero: ');
%vector intervalo que contiene v=2:k;
las 2 intersecc. p=[];
yp=polyval(p,x0); for i=v
yq=polyval(q,x0); if (sum(divp(i)) == 1)
plot(x0,yp,'r',x0,yq,'k'); p=[p i];
end
end
%Programa prog04.m disp('primos=');
%hallar d el vector que disp(p);
contiene los divisores propios
de N
clc;
N=input('Ingrese un entero: '); 1)
d=[]; clc;
for i= 1:N/2 x=input('ingrese coordenada X= ');
if (mod(N,i)==0) y=input('ingrese coordenada Y= ');
d=[d i]; %va if((x^2+y^2>36)&(y>x^2))
insertando los divisores en el disp('Amarillo');
vector d elseif((x^2+y^2>36)&(y<x^2))
end disp('Negro');
end elseif((x^2+y^2<36)&(y>x^2))
disp('divisores:'); disp('Verde');
disp(d); elseif((x^2+y^2<36)&(y<x^2))
disp('Azul');
else
%Programa prog05.m disp('Blanco');
%hallar d, el vector que end;
contiene los divisores propios
de N. No usa for. Forma Alternativa a:
clc; clc;
N=input('Ingrese un entero: '); x=input('ingrese coordenada X= ');
i=1:N/2; y=input('ingrese coordenada Y= ');
d=i(mod(N,i)==0); if(x^2+y^2>36)
disp('divisores:'); if(y>x^2)
disp(d); disp('Amarillo');

Problemas propuestos y resueltos de Programacin en Matlab. Prof. Miguel Sierra


AACB-FIQT-UNI 2011-II
elseif(y<x^2) D=b; d=a;
disp('Negro'); end;
else r=rem(D,d);
disp('Blanco'); while(r~=0)
end; D=d;
elseif(x^2+y^2<36) d=r;
if(y>x^2) r=rem(D,d);
disp('Verde'); end;
elseif(y<x^2) mcd=d;
disp('Azul'); disp('mcd=');
else disp(mcd);
disp('Blanco');
end; 3)
end; clc;
N=input('Ingrese la cantidad de
forma Alternativa b: alumnos=');
clc; for i=1:N
x=input('ingrese coordenada X= '); x(i)=input('Ingrese nota=');
y=input('ingrese coordenada Y= '); end;
if(x^2+y^2>36) z=sort(x);
if(y>x^2) z=fliplr(z);
disp('Amarillo'); disp('Notas de mayor a menor');
else disp(z);
if(y<x^2) y=x(x>mean(x));
disp('Negro'); disp('Notas que superan el promedio');
else disp(y);
disp('Blanco'); for i=1:N
end; if(x(i)< 20)
end; x(i)=x(i)+1;
else end;
if(x^2+y^2<36) end;
if(y>x^2) disp('Notas ajustadas');
disp('Verde'); disp(x);
else disp('Nuevo promedio')
if(y<x^2) disp(mean(x));
disp('Azul');
else 4)
disp('Blanco'); Forma Alternativa a:
end; clc;
end; N=input('Ingrese la cantidad de alumnos=');
else x=[];
disp('Blanco'); for i=1:N
end; nota=input('Ingrese nota=');
end; x=[x nota];
end;
2) z=-sort(-x);
clc; disp('Notas de mayor a menor');
a=input('Ingrese a='); disp(z);
b=input('Ingrese b='); disp('Notas que superan el promedio');
if(a>=b) for i=1:N
D=a; d=b; if(x(i)>mean(x))
else disp(x(i));

Problemas propuestos y resueltos de Programacin en Matlab. Prof. Miguel Sierra


AACB-FIQT-UNI 2011-II
end; N=input('Ingrese N= ');
end; A=zeros(N,N);
x= x+(x<20); %ajuste A(1,:)=1:N;
disp('Notas ajustadas'); for i=2:N
disp(x); A(i,:)=A(i-1,:)+1;
disp('Nuevo promedio') end;
disp(mean(x)); for i=2:2:N
A(i,:)=A(i,N:-1:1);
PROBLEMA 1 end;
p=input('polinomio p= '); disp(A);
q=input('polinomio q= ');
a=input('a= ');
b=input('b= '); PROBLEMA 3
m=length(p); n=length(q); function y=mediana(p);
for i=1:m-n p=sort(p);
q=[0 q]; %completa el grado n=length(p);
de q if(rem(n,2)==0)
end; y=(p(n/2)+p(n/2+1))/2;
r=roots(p-q);%halla else
intersecciones y=p(floor(n/2)+1);
disp('intersecciones'); end;
disp(r);
x=a:0.01:b;
y1=polyval(p,x); PROBLEMA 4
y2=polyval(q,x); N=input('Ingrese N= ');
plot(x,y1,x,y2); S=0;
pa=polyval(p,a); n=0;
pb=polyval(p,b); for i=1:N-1
pc=(pa+pb)/2; if((rem(i,3)==0) |
d=abs(y1-pc); (rem(i,5)==0))
[k i]=min(d); S=S+i;
disp('c aproximado= '); n=n+1;
disp(x(i)) %El punto c buscado end;
(aprox.) end;
%otra forma a continuacion p=S/n;
p(m)=p(m)-pc; %iguala el pol. a disp(p);
pc
c=roots(p); PROBLEMA 4 ALTERNATIVO
c=c(c>=a & c<=b); %en intervalo N=input('Ingrese N= ');
a,b a=[];
disp('c = '); for i=1:N-1
disp(c) %El punto c buscado if((rem(i,3)==0) |
%hallando el maximo global en (rem(i,5)==0))
a,b a= [a i];
[mp i]=max(y1); end;
[mq j]=max(y2); end;
if(mp>mq) p=mean(a);
disp(x(i)); disp(p);
else
disp(x(j));
PROBLEMA 5
a=input('Ingrese a= ');
PROBLEMA 2 b=input('Ingrese b= ');

Problemas propuestos y resueltos de Programacin en Matlab. Prof. Miguel Sierra


AACB-FIQT-UNI 2011-II
T=input('Ingrese T= '); a) Insertarse en un vector fila v, inicialmente
S=0; vaco: las sumas de las columnas y las sumas
k=a; %primer trmino; de las filas.
i=1; b) Debe determinarse si todos los elementos del
vector v son iguales, se sugiere que verifique
while (k>T) que son iguales a su primer elemento, segn
S=S+k; esto, mostrar el mensaje de que A cumple o
i=i+1; no cumple.
if(rem(i,2)==0)
k=b^i/factorial(i); 4) (4 puntos) Hacer un solo programa que lea el dato
else N para formar las matrices de N*N:
a)
k=a^i/factorial(i); 1 1 1 1 11
1 1 1 1 11b)
end; 0 0... 0 0 1 0
1 1 0 0 01
end; 1 0 1 0 01 0 0... 0 1 0 0
disp(i); 1 0 0 1 01 ...
disp(S); . 0 0 1 00 0
1 0 0 .... 1 1 0 1 0 00 0
1 1 1 ...1 1 1 1 1 1 ...1 1 1
PROBLEMA 6
x=input('Ingrese x= '); 5) (4 puntos) Determine lo que imprime en
y=input('Ingrese y= '); pantalla el siguiente programa.
if((x>0)&(y>0)) x=input('Ingrese el ltimo dgito a la
disp('corta 0 ejes'); derecha de su cdigo: ');
elseif((x<=0)&(y<=0)) k=mod(x+5, 3) + 1;
disp('corta 2 ejes'); v=[ ];
else for i= k:(k+3)
disp('corta 1 eje'); if (mod(i,2)==0)
end; v=[v i v];
else
EXAMEN FINAL DE PROGRAMACIN
v=[i v];
DIGITAL end
end
1) (3 puntos) Escriba un programa que calcule S, v(mod(v,2)==0)=[ ];
luego de leer n: disp(v);
p=[ 1 -12 0 0 0];
3 2
4 2
5 2
6 2
(n 2)
S .... k=mod(k,2)+1;
2 2 *3 2 *3* 4 2 *3* 4 *5 2 * 3 * for
4 * .... n * (n 1)
i= *k:4
if mod(i,2)==0
2) (5 puntos) Dada la ecuacin general de segundo p=polyder(p);
grado: Ax2+Bxy+Cy2+Dx+Ey+F=0 end;
Se denomina discriminante al binomio: k = B2 - end
4AC y= polyval(p,k);
Adems, se sabe que:
disp(y);
Si k >0, la grafica ser una hiprbola.
Si k =0: si A y C son iguales a cero, la grafica Duracin: 120 minutos
es una recta, sino, ser una parbola.
Si k <0: si A y C son iguales, la grafica ser una
circunferencia, sino, ser una elipse. 1)
Desarrollar un programa en Matlab que realice lo clc;
siguiente: n=input('Ingrese n entero: ');
Solicite al usuario el ingreso de los coeficientes de x=2:(n+1);
la ecuacin general de segundo grado. y=factorial(x);
Escriba un mensaje indicando el tipo de grafica que x=(x+1).^2;
tendr la ecuacin. x(2:2:end)=-x(2:2:end);
S=sum(x./y);
3) (4 puntos) Hacer un programa que lea una matriz
cuadrada A de N*N y que indique cumple que
todas sus filas y columnas suman igual, as:

Problemas propuestos y resueltos de Programacin en Matlab. Prof. Miguel Sierra


AACB-FIQT-UNI 2011-II

disp('S = '); a(:,N)=1;


disp(S); for i= 1:N
a(i,i)=1;
end;
2) b=zeros(N);
clc; b(1,:)=1;
A=input('Ingrese A: '); b(N,:)=1;
B=input('Ingrese B: '); for i= 1:N
C=input('Ingrese C: '); b(N-i+1,i)=1;
D=input('Ingrese D: '); end;
E=input('Ingrese E: '); disp('a:');
F=input('Ingrese F: '); disp(a);
k=B*B-4*A*C; disp('b:');
if k>0 disp(b);
disp('Hiprbola');
elseif(k==0) 5)
if (A==0 & C==0) x=input('Ingrese el ltimo
disp('Recta'); dgito a la derecha de su
else cdigo: ');
disp('Parbola'); k=mod(x+5,3)+1;
end v=[];
else for i= k:(k+3)
if (A==C) if (mod(i,2)==0)
v=[v i v];
disp('Circunferencia'); else
else v=[i v];
disp('Elipse'); end
end end
end v(mod(v,2)==0)=[];
disp(v);
3) p=[ 1 -1 0 0 0];
clc; k=mod(k,2)+1;
A=input('Ingrese la matriz for i= k:4
cuadrada A: '); if mod(i,2)==0
N=length(A); p=polyder(p);
v=[]; end;
v=[v, sum(A), sum(A')]; end
k=v(1); y= polyval(p,k);
t=sum(A==k); disp(y);
if t==N
disp('A cumple'); Respuestas:
else X= 0,3,6,9:
disp('A no cumple'); 5 3 3 5 3
end 3
36
4)
clc; X= 1,4,7:
N=input('Ingrese un nmero 3 1 1 3 1
entero N: '); 1
a=zeros(N); 36
a(1,:)=1;
a(N,:)=1; X= 2,5,8:
a(:,1)=1; 5 3 3
6

Problemas propuestos y resueltos de Programacin en Matlab. Prof. Miguel Sierra

También podría gustarte