Anda di halaman 1dari 13

ejer 1

%1. Realice un programa que reciba 8 valores y


%los almacene en un vector y los imprima.
v=[zeros(1,8)];
for i=1:8;
p=input('ingrese numero: ');
v(1,i)=p;
end
disp(v);

ejer 2
%Modifique el programa del problema (1)
%para que encuentre el menor elemento del arreglo.
v=[zeros(1,8)];
for i=1:8;
p=input('ingrese numero: ');
v(1,i)=p;
end
m=min(min(v));
disp(m);

ejer 3
%Desarrolle un programa que genere un arreglo de numeros
%de tamao N y calcule la suma
%de los elementos de las posiciones impares.
n=input('ingrese la cantidad de terminos: ');
s=0;
v=[zeros(1,n)];
for i=1:n;
p=input('ingrese numero: ');
v(1,i)=p;
if (-1)^i<0;
s=p+s;
end
end
disp(s)

ejer 4

%Desarrolle un programa que calcule la suma del menor y mayor elemento en un arreglo
de
%tamao N.
n=input('ingrese tamao de vector: ');
v=zeros(1,n);
for i=1:n;
p=input('ingrese numero: ');

v(1,i)=p;
end
mi=min(min(v));
ma=max(max(v));
s=ma+mi;
fprintf('la suma del maximo y del minimo es %g \n',s);

ejer 5
%Realice un algoritmo que forme un vector del que no se sabe el numero de
elementos. El
%programa debe calcular el promedio de los elementos y formar dos nuevos
arreglos, uno
%con los elementos menores o iguales al promedio y otro con los mayores.
n=input('ingrese tamao del vector: ');
v=zeros(1,n);
s=0;
for i=1:n;
b=input('ingrese numero: ');
v(1,i)=b;
s=s+b;
end
pro=(s/n);
vmax=zeros(1,n);
vmin=zeros(1,n);
for i=1:n;
if v(1,i)>pro;
vmax(1,i)=v(1,i);
else
vmin(1,i)=v(1,i);
end
end
fprintf('el promedio es ');
disp(pro);
fprintf('y los elementos mayores que el promedio son: ');
disp(vmax);
fprintf('y los elementos menores o iguales que el promedio son: ');
disp(vmin);

ejer 6
%Elabore un programa que calcule la varianza de un grupo de datos
positivos de tamao
%desconocido.
n=input('ingrese cantidad de datos positivos: ');
s=0;
for i=1:n;
g=input('ingrese dato: ');
s=s+g;
end

pro=(s/n);
varianza=((s-pro)^2)/n;
fprintf('la varianza de los datos son : %g \n',varianza);

ejer 7
%Elabore un programa que encuentre la posicion del elemento mayor
n=input('ingrese tamao del vector : ');
ve=zeros(1,n);
for i=1:n;
t=input('ingrese terminos: ');
ve(1,i)=t;
end
m=max(max(ve));
for i=1:n;
if ve(1,i)==m;
f=i;
end
end
fprintf('el maximo valor es %g y su posicion es la fila 1 y la columna
%g\n',m,f);

ejer 8
%dos vectores a y b de tamao n genere un nuevo vector p de igual
%tamao cuya componente i-nesima p sea el producto de las componentes
%i-esima de a y b (p=ab)
n=input('ingrese el tamao de vector');
a=floor(10*rand(1,10));
b=floor(10*rand(1,10));
p= zeros(1,n);
for i=1:n;
p(1,i)=a(1,i)*b(1,i);
end
disp(p);

ejer 9
%para que el arreglo P sea generado mediante el
%producto de las componentes de los arreglos A y B pero tomados en orden
inverso, es
%decir, el producto del primer elemento de A con el _ultimo elemento de
B; del segundo
%elemento de A con el pen_ultimo de B y asi__ sucesivamente
n=input('ingrese el tamao de vector');
a=floor(10*rand(1,10));
b=floor(10*rand(1,10));
p= zeros(1,n);
for i=n:-1:1;
c=b(1,i);

for i=1:n;
d=a(1,i);
p(1,i)=c*d;
end
end
disp(p);

ejer 10
%Desarrolle un programa que sume los elementos de un vector de tamao N,
excepto el
%primero, el del medio y el _ultimo. (Que pasa si N es par?)
n=input('ingrese tamoo de vector: ');
s=0;
z=zeros(1,n);
for i=1:n;
x=input('ingrese numero: ');
z(1,i)=x;
end
for i=2:n-1;
s=s+z(1,i);
end
if i==n/2;
sum=s;
else
sum=s-z(1,ceil(n/2));
end
disp(sum);

ejer 11
%Implemente un programa que encuentre las posiciones que ocupan
%el elemento menor y mayor de un vector de N elementos.
n=input('ingrese tamao del vector: ');
c=zeros(1,n);
for i=1:n;
b=input('ingrese elemento del vector: ');
c(1,i)=b;
end
ma=max(max(c));
mi=min(min(c));
for i=1:n;
if c(1,i)==ma;
f=i;
end
if c(1,i)==mi;
g=i;
end
end
fprintf('el mayor elemento es %g y su posicion es fila 1, columna %g
\n',ma,f);
fprintf('y el menor elemento es %g y su posicion es fila 1, columna %g
\n',mi,g);

ejer 12
%escriba un programa que escriba si un vector es simetrico
n= input('ingrese tamao del vector: ');
x= zeros(1,n);
for i=1:n
x(1,i) =input('ingrese numero: ');
end
k=1; detener=1;
while (k <= n/2)& (detener ==1);
if x(k)~=x(n+1-k);
detener =0;
end
k=k+1;
end
disp(x);
if (detener ==1);
disp('el vector es simetrico');
else
disp('el vector no es simetrico');
end

ejer 13
%determine si el vector ingresado es uribista
n=input('ingrese tamo de vector: ');
p=n;
A=zeros(1,n);
for i=1:n
b=input('ingrese numero: ');
A(1,i)=b;
end
s=0;
k=1;
while k<=n
[elemento, repitencia]=find(A==A(k));
fprintf('El elemento %g se repite %g
veces\n',A(k),length(repitencia));
A(repitencia)=[];
n=length(A);
if length(repitencia)>s;
y=length(repitencia);
end
s=length(repitencia);
end
if y >(p/2);
disp('el vector es uribista');
else
disp('el vector no es uribista');
end

ejer 14
%Dados dos arreglos U y V realice un programa que genere U interceptado
V .
n=input('ingrese tamao de primer vector: ');
x=zeros(1,n);
y=zeros(1,m);
for i=1:n
a=input('ingrese numero de primer vector:');
x(1,i)=a;
end
m=input('ingrese tamao del segundo vector: ');
for i=1:m
b=input('ingrese numero de segundo vector:');
y(1,i)=b;
end
I=intersect(x,y);
disp('la interceccion de los 2vectores es');
disp(I)

ejer 15
%Escriba un programa que dado un arreglo unidimensional y su tamao,
elimine sus elementos
%repetidos, dejando un elemento en cada caso
n=input('ingrese tamao de vector: ');
a=zeros(1,n);
for i=1:n
q=input('ingrese elemento del vector: ');
a(1,i)=q;
end
k=1;
while k<=n
j=1;
while j<=n
if k~=j
if a(k)==a(j)
a(j)=[];
n=length(a);
end
end
j=j+1;
end
k=k+1;
end
display(a);

end
display(a);

ejr 16
%Dado un arreglo de tama~no N, encuentre la moda, es decir, el valor que
se presenta mas
%numero de veces entre sus elementos.
n=input('ingrese tamo de vector: ');
A=zeros(1,n);
for i=1:n
b=input('ingrese numero: ');
A(1,i)=b;
end
m=mode(A);
fprintf('el elemento que mas se repite es %g \n',m);

ejer 17
% sucesion de fibonacci
n=input('ingrese numero de elementos de fibonacci: ');
f=zeros(1,n);
f(1)=1;f(2)=1;
for k=3:n
f(k)=f(k-2)+f(k-1);
end
disp(f);

ejer 18
%Implemente un programa que genere un arreglo y muestre:
%a) Numero de datos repetidos en el arreglo.
%b) Numero de valores impares
%c) Numero de valores pares
n=input('ingrese tamo de vector: ');
A=zeros(1,n);
in=0;
pa=0;
for i=1:n
b=input('ingrese numero: ');
A(1,i)=b;
if (-i)^b <0;
in=in+1;

else
end

pa=pa+1;

end
s=0;
k=1;
while k<=n
[elemento, repitencia]=find(A==A(k));
fprintf('El elemento %g se repite %g
veces\n',A(k),length(repitencia));
A(repitencia)=[];
n=length(A);
if length(repitencia)>=2
s=s+1;
end
end
fprintf('el numero de datos repetidos son %g y la cantida de impares son
%g y los pares %g \n',s,in,pa);

ejer 19
%Desarrolle un programa que lea dos arreglos A y B
%y forme un nuevo arreglo U cuyos
%elementos corresponden a la union de los
%conjuntos definidos por A y B
p=input('ingrese tamao de primer vector: ');
x=zeros(1,p);
for i=1:p
t=input('ingrese numero de primer vector:');
x(1,i)=t;
end
m=input('ingrese el tamao del segundo vector
y=zeros(1,m+p);
for i=p+1:m+p
b=input('ingrese numero de segundo vector:');
y(1,i)=b;
end
a=zeros(1,m+p);
for i=1:p
a(1,i)=x(1,i);
end
for i=p+1:m+p
a(1,i)=y(1,i);
end
n=length(a);
k=1;
while k<=n
j=1;
while j<=n
if k~=j
if a(k)==a(j)
a(j)=[];
n=length(a);

: ');

end
end
j=j+1;
end
k=k+1;
end
display(a);

ejer 20
%Escriba un programa que lea el tamao de una matriz
%y sus elementos y calcule la matriz transpuesta
m=input('ingrese cantidad de filas de la matriz: ');
n=input('ingrese cantidad de columnas de la matriz: ');
v=zeros(m,n);
for k=1:m
a=k;
fprintf('.....ingrese elementos de la fila %g...... \n',a);
for i=1:n
v(k,i)=input('ingrese elemento de la fila: ');
end
end
trasp=v';
disp('la traspuesta es: ');
disp(trasp);

eje 21
%Implemente un programa que lea el tamao de una matriz
%y sus elementos y encuentre los elementos mayor y menor
%con sus respectivas posiciones.
m=input('ingrese cantidad de filas de la matriz: ');
n=input('ingrese cantidad de columnas de la matriz: ');
v=zeros(m,n);
for k=1:m
a=k;
fprintf('.....ingrese elementos de la fila %g...... \n',a);
for i=1:n
v(k,i)=input('ingrese elemento de la fila: ');
end
end
ma=max(max(v));
mi=min(min(v));
for k=1:m
for i=1:n
if v(k,i)==ma;
x=k;
y=i;
end

end
end
for k=1:m
for i=1:n
if v(k,i)==mi;
z=k;
w=i;
end
end
end
fprintf('el mayor es %g y esta en la fila %g y la columna %g \n',ma,x,y);
fprintf('y el menor es %g y esta en la fila %g y la columna %g
\n',mi,z,w);

ejer 22
%Haga un programa que lea el tamao de una matriz y sus elementos
%y convierta la matriz en un arreglo unidimensional.
%La conversion debe hacerse por las filas, es decir, mover la
%primera fila del vector, a continuacion la segunda la, etc
m=input('ingrese cantidad de filas de la matriz: ');
n=input('ingrese cantidad de columnas de la matriz: ');
v=zeros(m,n);
for k=1:m
a=k;
fprintf('.....ingrese elementos de la fila %g...... \n',a);
for i=1:n
v(k,i)=input('ingrese elemento de la fila: ');
end
end
b=[v(:)]';
disp(b);

eje 23
%Haga un programa que lea el tamao de una matriz y sus elementos
%y convierta la matriz en un arreglo unidimensional.
%La conversion debe hacerse por las columnas, es decir, mover la
%primera columna del vector, a continuacion la segunda la, etc
m=input('ingrese cantidad de filas de la matriz: ');
n=input('ingrese cantidad de columnas de la matriz: ');
v=zeros(m,n);
for k=1:m
a=k;
fprintf('.....ingrese elementos de la fila %g...... \n',a);

for i=1:n
v(k,i)=input('ingrese elemento de la fila: ');
end
end
b=[v(:)];
disp(b);

ejer 26
%Escriba un programa que genere la siguiente matriz:
%a) La primera fila y la primera columna tienen como elementos
%los numeros del 0 al n .
%b) Los demas elementos se obtienen de multiplicar cada elemento
%de la fila uno por cada elemento de la columna uno
n=input('ingrese tamao de la matriz cuadrada : ');
v=zeros(n+1);
v(1,1)=0;
for k=1:n
v(1,k+1)=k;
v(k+1,1)=k;
end
for k=2:n+1
for i=2:n+1
v(i,k)=((v(1,i))*(v(k,1)));
end
end
disp(v);

eje 27
%Realice un programa que determine si una matriz A es simitrica
%(A es simetrica si A'=A).
m=input('ingrese cantidad de filas de la matriz: ');
n=input('ingrese cantidad de columnas de la matriz: ');
v=zeros(m,n);
for k=1:m
a=k;
fprintf('.....ingrese elementos de la fila %g...... \n',a);
for i=1:n
v(k,i)=input('ingrese elemento de la fila: ');
end
end
if (v')==v
disp('la matris es simetrica');
else
disp('la matris no es simetrica');
end

ejer 28
%Realice un programa que determine si una matriz A es antisimetrica
%(A es antisimetrica si A'=-A).
m=input('ingrese cantidad de filas de la matriz: ');

n=input('ingrese cantidad de columnas de la matriz: ');


v=zeros(m,n);
for k=1:m
a=k;
fprintf('.....ingrese elementos de la fila %g...... \n',a);
for i=1:n
v(k,i)=input('ingrese elemento de la fila: ');
end
end
if (v')==-v
disp('la matris es antisimetrica');
else
disp('la matris no es antisimetrica');
end

ejer 29
%Implemente un programa que ingrese una matriz m x n y
%ordene en forma creciente los elementos de las columnas del arreglo
m=input('ingrese cantidad de filas de la matriz: ');
n=input('ingrese cantidad de columnas de la matriz: ');
b=zeros(m,n);
for k=1:m
a=k;
fprintf('.....ingrese elementos de la fila %g...... \n',a);
for i=1:n
b(k,i)=input('ingrese elemento de la fila: ');
end
end
v=[b(:)];
n=length(v);
% ORDENAMIENTO CRECIENTE DE BURBUJA
for i=1:n
for j=1:n-i
if v(j)>v(j+1)
aux=v(j);
v(j)=v(j+1);
v(j+1)=aux;
end
end
end
display('ORDENADO EN FORMA CRECIENTE')
display(v)

ejer 30
%Dada una matriz simetrica, realice un programa que la
%convierta a triangular inferior

m=input('ingrese cantidad de filas de la matriz: ');


n=input('ingrese cantidad de columnas de la matriz: ');
v=zeros(m,n);
for k=1:m
a=k;
fprintf('.....ingrese elementos de la fila %g...... \n',a);
for i=1:n
v(k,i)=input('ingrese elemento de la fila: ');
end
end
a=tril(v);
disp('la matriz triangular inferior es: ');
disp(a);