Professional Documents
Culture Documents
TECNOLÓGICA DE
TORREÓN
Modelo de programación avanzada
N NUMEROS PRIMOS
POR GERARDO ALBERTO MARTINEZ ESPARZA
pause(6)
clc;
n=input('ingrese un numero entero positivo\n');
if n>0
for k=0:1:n
if k<n
m = ((1+k)/2)*k;
disp(m)
end
end
else
fprintf('El numero ingresado no es correcto,
intentelo nuevamente');
end
El código de operación:
Cuando el numero ingresado se guarda en la variable “n”, entra
en una estructura if, que se ejecuta siempre y cuando la variable
n sea mayor que cero.
Cuando esa condición se cumple entra una estructura “for” que
tiene el numero de iteraciones de la variable “n” con incrementos
de 1 en 1 en la variable k.
Luego entra una condición en la que si k es menor que n se
ejecute la estructura if.
En cada iteración va guardando los números en la variable “m”.
Al final de las iteraciones se imprime con la función display.
UNIVERSIDAD TECNOLÓGICA DE TORREÓN
PRÁCTICA NO. 1. PROGRAMACIÓN AVANZADA EN MATLAB
RESOLVER LA ECUACIÓN
CUADRÁTICA
POR GERARDO ALBERTO MARTINEZ ESPARZA
d = (-b);
e = ((b^2)-(4*a*c));
f = sqrt(e);
g = (d+f)/(2*a);
i = (d-f)/(2*a);
if e<0
fprintf('No existe solucion en numeros reales, es un
compuesto conjugado');
else
fprintf('El valor de x1 es: %g\n',g);
fprintf('El valor de x2 es: %i\n',i);
end
%% Metodo burbuja
for k1=1:1:cnt
for k2=1:1:cnt
if (mcmnn(1,k1)>mcmnn(1,k2))
aux = mcmnn(1,k1);
mcmnn(1,k1)=mcmnn(1,k2);
mcmnn(1,k2)=aux;
end
end
end
Luego los datos que fueron guardados en el arreglo se ordenan
por medio del método burbuja, haciendo comparaciones entre
los datos, creando un segundo arreglo.
%% Algoritmo
m = 1;
d = 1;
k = 2;
n = 1;
while (d ~= cnt)
r = mcmnn(1,1) * m;
res = mcmnn(1,k) * n;
if (res < r)
n = n + 1;
elseif (res > r)
m = m + 1;
d = 1;
k = 2;
else
d = d + 1;
k = k + 1;
n = 2;
end
end
fprintf('minimo comun multiplo de sus numeros
es: %d',r);
clear;
mcd = false;
while true
n1 = input('ingrese el primer numero: ');
n2 = input('ingrese el segundo numero: ');
if n1 > 0 & n2 >0 & n1 ~= n2
if n1 > n2
% Esta parte del codigo introduce el numero
menor en n1 y el mayor en n2
aux = n1;
n1 = n2;
n2 = aux;
end
i = n1;
while ~mcd & i >= 1
if mod(n1,i) == 0 & mod (n2,i) == 0
fprintf('%i es el mcd entre %i
y %i.',i,n1,n2);
mcd = true;
else
i = i-1;
end
end
break
else
if n1 == n2
fprintf('los numeros son igualas, intentalo
nuevamente.\n');
else
fprintf('los numeros ingresados no son
correctos, intentalo nuevamente.\n');
end
end
end
UNIVERSIDAD TECNOLÓGICA DE TORREÓN
PRÁCTICA NO. 1. PROGRAMACIÓN AVANZADA EN MATLAB
if(mod(NumD(1,k),2)==1)
y='1';
elseif(mod(NumD(1,k),2)==0)
y='0';
end
NumB(1,k)=y;
end
for(k=1:1:100)
cnt=cnt+1;
y=dato;
y=floor(x/16);
NumD(1,cnt)=y;
x=x/16;
if(y==0)
break
end
end
for(k=1:1:cnt)
if(mod(NumD(1,k),16)==1)
y='1';
elseif(mod(NumD(1,k),16)==2)
y='2';
elseif(mod(NumD(1,k),16)==3)
y='3';
elseif(mod(NumD(1,k),16)==4)
y='4';
elseif(mod(NumD(1,k),16)==5)
y='5';
elseif(mod(NumD(1,k),16)==6)
y='6';
elseif(mod(NumD(1,k),16)==7)
y='7';
elseif(mod(NumD(1,k),16)==8)
y='8';
elseif(mod(NumD(1,k),16)==9)
y='9';
elseif(mod(NumD(1,k),16)==10)
y='A';
elseif(mod(NumD(1,k),16)==11)
y='B';
elseif(mod(NumD(1,k),16)==12)
y='C';
elseif(mod(NumD(1,k),16)==13)
y='D';
elseif(mod(NumD(1,k),16)==14)
y='E';
elseif(mod(NumD(1,k),16)==15)
y='F';
elseif(mod(NumD(1,k),16)==0)
y='0';
end
NumHex(1,k)=y;
end
%% De Binario a Decimal
case 3
clear;
clc;
fprintf('Seleccionaste la Opcion de Binario a Decimal');
fprintf('\nIngrese el Numero en Binario a Convertir: ');
dato=input(' ');
a=num2str(dato);
b=length(a);
for (k=1:1:b)
Num(1,k)=str2num(a(k));
end
%Invertimos los numeros del Vector
k=1;
e=b;
while k<e
aux=Num(1,k);
Num(1,k)=Num(1,e);
Num(1,e)=aux;
k=k+1;
e=e-1;
end
Decimal=0;
Mul=1;
y=0;
for(k=1:b)
if(Num(1,k)==1)
y=1*Mul;
elseif(Num(1,k)==0)
y=0*Mul;
end
Mul=Mul*2;
lista2(1,k)=y;
end
Decimal=sum(lista2);
end
%Invertimos los numeros del Vector
k=1;
e=b;
while k<e
aux=Num(1,k);
Num(1,k)=Num(1,e);
Num(1,e)=aux;
k=k+1;
e=e-1;
end
Decimal=0;
Mul=1;
y=0;
for(k=1:b)
if(Num(1,k)==1)
y=1*Mul;
elseif(Num(1,k)==0)
y=0*Mul;
end
Mul=Mul*2;
lista2(1,k)=y;
end
Decimal=sum(lista2);
x=0;
y=0;
x=Decimal;
cnt=1;
NumD(1,1)=Decimal;
for(k=1:1:100)
cnt=cnt+1;
y=Decimal;
y=floor(x/16);
NumD(1,cnt)=y;
x=x/16;
if(y==0)
break
end
end
for(k=1:1:cnt)
if(mod(NumD(1,k),16)==1)
y='1';
elseif(mod(NumD(1,k),16)==2)
y='2';
elseif(mod(NumD(1,k),16)==3)
y='3';
elseif(mod(NumD(1,k),16)==4)
y='4';
elseif(mod(NumD(1,k),16)==5)
y='5';
elseif(mod(NumD(1,k),16)==6)
y='6';
elseif(mod(NumD(1,k),16)==7)
y='7';
elseif(mod(NumD(1,k),16)==8)
y='8';
elseif(mod(NumD(1,k),16)==9)
y='9';
elseif(mod(NumD(1,k),16)==10)
y='A';
elseif(mod(NumD(1,k),16)==11)
y='B';
elseif(mod(NumD(1,k),16)==12)
y='C';
elseif(mod(NumD(1,k),16)==13)
y='D';
elseif(mod(NumD(1,k),16)==14)
y='E';
elseif(mod(NumD(1,k),16)==15)
y='F';
elseif(mod(NumD(1,k),16)==0)
y='0';
end
NumHex(1,k)=y;
end
%% De Hexadecimal a Binario
case 5
clear;
clc;
fprintf('\nSeleccionaste la Opcion de Hexadecimal a Binario');
fprintf('\nIngrese el Numero en Hexadecimal a Convertir: ');
dato=input(' ','s');
a=num2str(dato);
b=length(dato);
for (k=1:1:b)
NumS(k)=cellstr(a(k));
end
%Invertimos los numeros del Vector
k=1;
e=b;
while k<e
aux=NumS(1,k);
NumS(1,k)=NumS(1,e);
NumS(1,e)=aux;
k=k+1;
e=e-1;
end
for(k=1:1:b)
if(NumS{1,k}=='a'||NumS{1,k}=='A')
NumS{1,k}='10';
elseif(NumS{1,k}=='b'||NumS{1,k}=='B')
NumS{1,k}='11';
elseif(NumS{1,k}=='c'||NumS{1,k}=='C')
NumS{1,k}='12';
elseif(NumS{1,k}=='d'||NumS{1,k}=='D')
NumS{1,k}='13';
elseif(NumS{1,k}=='e'||NumS{1,k}=='E')
NumS{1,k}='14';
elseif(NumS{1,k}=='f'||NumS{1,k}=='F')
NumS{1,k}='15';
end
end
Decimal=0;
Mul=1;
y=0;
for (k=1:1:b)
NumN(k)=str2double(NumS(k));
end
for(k=1:b)
if(NumN(1,k)==1)
y=1*Mul;
elseif(NumN(1,k)==2)
y=2*Mul;
elseif(NumN(1,k)==3)
y=3*Mul;
elseif(NumN(1,k)==4)
y=4*Mul;
elseif(NumN(1,k)==5)
y=5*Mul;
elseif(NumN(1,k)==6)
y=6*Mul;
elseif(NumN(1,k)==7)
y=7*Mul;
elseif(NumN(1,k)==8)
y=8*Mul;
elseif(NumN(1,k)==9)
y=9*Mul;
elseif(NumN(1,k)==10)
y=10*Mul;
elseif(NumN(1,k)==11)
y=11*Mul;
elseif(NumN(1,k)==12)
y=12*Mul;
elseif(NumN(1,k)==13)
y=13*Mul;
elseif(NumN(1,k)==14)
y=14*Mul;
elseif(NumN(1,k)==15)
y=15*Mul;
elseif(NumN(1,k)==0)
y=0*Mul;
end
Mul=Mul*16;
lista2(1,k)=y;
end
Decimal=sum(lista2);
x=0;
y=0;
x=Decimal;
cnt=1;
NumD(1,1)=Decimal;
for(k=1:1:100)
cnt=cnt+1;
y=Decimal;
y=floor(x/2);
NumD(1,cnt)=y;
x=x/2;
if(y==1)
break
end
end
if(mod(NumD(1,k),2)==1)
y='1';
elseif(mod(NumD(1,k),2)==0)
y='0';
end
NumB(1,k)=y;
end
%% De Hexadecimal a Decimal
case 6
clear;
clc;
fprintf('\nSeleccionaste la Opcion de Hexadecimal a Decimal');
fprintf('\nIngrese el Numero en Hexadecimal a Convertir: ');
dato=input(' ','s');
a=num2str(dato);
b=length(dato);
for (k=1:1:b)
NumS(k)=cellstr(a(k));
end
%Invertimos los numeros del Vector
k=1;
e=b;
while k<e
aux=NumS(1,k);
NumS(1,k)=NumS(1,e);
NumS(1,e)=aux;
k=k+1;
e=e-1;
end
for(k=1:1:b)
if(NumS{1,k}=='a'||NumS{1,k}=='A')
NumS{1,k}='10';
elseif(NumS{1,k}=='b'||NumS{1,k}=='B')
NumS{1,k}='11';
elseif(NumS{1,k}=='c'||NumS{1,k}=='C')
NumS{1,k}='12';
elseif(NumS{1,k}=='d'||NumS{1,k}=='D')
NumS{1,k}='13';
elseif(NumS{1,k}=='e'||NumS{1,k}=='E')
NumS{1,k}='14';
elseif(NumS{1,k}=='f'||NumS{1,k}=='F')
NumS{1,k}='15';
end
end
Decimal=0;
Mul=1;
y=0;
for (k=1:1:b)
NumN(k)=str2double(NumS(k));
end
for(k=1:b)
if(NumN(1,k)==1)
y=1*Mul;
elseif(NumN(1,k)==2)
y=2*Mul;
elseif(NumN(1,k)==3)
y=3*Mul;
elseif(NumN(1,k)==4)
y=4*Mul;
elseif(NumN(1,k)==5)
y=5*Mul;
elseif(NumN(1,k)==6)
y=6*Mul;
elseif(NumN(1,k)==7)
y=7*Mul;
elseif(NumN(1,k)==8)
y=8*Mul;
elseif(NumN(1,k)==9)
y=9*Mul;
elseif(NumN(1,k)==10)
y=10*Mul;
elseif(NumN(1,k)==11)
y=11*Mul;
elseif(NumN(1,k)==12)
y=12*Mul;
elseif(NumN(1,k)==13)
y=13*Mul;
elseif(NumN(1,k)==14)
y=14*Mul;
elseif(NumN(1,k)==15)
y=15*Mul;
elseif(NumN(1,k)==0)
y=0*Mul;
end
Mul=Mul*16;
lista2(1,k)=y;
end
Decimal=sum(lista2);
MULTIPLICACION DE MATRICES
POR GERARDO ALBERTO MARTINEZ ESPARZA
A='s';
while(A =='s'|| A == 'S')
%% titulo y nota
fprintf('este programa multiplica dos matrices NxN\n \n');
fprintf('Nota: Este programa solo sirve para numeros decimales\n,unn requisito para poder realizar la
multiplicacion, es que \n el numero de filas de la primera matriz sea igual al numero \n de columnas
de la segunda matriz');
pause(5)
clc;
%% Reconocimiento de numero de filas y columnas de matriz 1 y 2.
fprintf('\nIngrese el numero de filas de la primera matriz')
nf1=input(' ');
a=nf1;
fprintf('\nIngrese el numero de columnas de la primera matriz')
nc1=input(' ');
b=nc1;
fprintf('\nIngrese el numero de filas de la segunda matriz')
nf2=input(' ');
c=nf2;
fprintf('\nIngrese el numero de columnas de la segunda matriz')
nc2=input(' ');
d=nc2;
pause(2)
clc;
%% mostrar numero de columnas y filas de matriz 1, matriz2 y matriz resultante
fprintf('El numero de filas y columnas de cada matriz es:\n');
fprintf('Matriz 1 : %i x %i \n',a,b);
fprintf('Matriz 2 : %i x %i \n',c,d);
nfr = a;
ncr = d;
fprintf('Matriz resultante : %i x %i',nfr,ncr);
pause(4)
clc;
dato = 0;
cnt = 0;
cnt2=1;
if b==c
%% Datos ingresados en cada coordenada de matriz 1.
fprintf('Ingrese datos de matriz #1\n');
while cnt2<=b
while (cnt<a)
fprintf('\n ingrese el dato de la fila %d, columna %d: ', cnt + 1,cnt2);
dato = input(' ');
if (isnumeric(dato))
cnt = cnt+1;
matriz1(cnt,cnt2) = dato;
end
end
cnt2=cnt2+1;
cnt=0;
end
pause(3)
clc;
%% Datos ingresados en cada coordenada de matriz 2.
dato2 = 0;
cnt3 = 0;
cnt4=1;
fprintf('Ingrese datos de matriz #2\n');
while cnt4<=d
while (cnt3<c)
fprintf('\n ingrese el dato de la fila %d, columna %d: ', cnt3 + 1,cnt4);
dato2 = input(' ');
if (isnumeric(dato2))
cnt3 = cnt3+1;
matriz2(cnt3,cnt4) = dato2;
end
end
cnt4=cnt4+1;
cnt3=0;
end
clc;
%% multiplicacion de matriz 1 y matriz 2.
for m=1:1:a
for j=1:1:d
mult1=0;
sum1=0;
for i=1:1:b
mult1 = matriz1(m,i)* matriz2(i,j);
sum1 = sum1 + mult1;
end
matriz3(m,j)=sum1;
end
end
%% Mostrar matriz 1, matriz2 y matriz resultante.
fprintf('La matriz #1 es la siguiente:\n');
disp(matriz1)
fprintf('La matriz #2 es la siguiente:\n');
disp(matriz2)
fprintf('La matriz resultante es la siguiente:\n');
disp(matriz3)
else
fprintf('El numero de columnas de la matriz #1 \ndebe ser igual al numero de filas de la matriz
#2.\n');
fprintf('Por favor verifique que el numero de columnas de la matriz #1 \nsea igual al numero de
filas de la matriz #2.');
end
pause(6)
clc;
%% Termino de programa, opcion de ejecutar nuevamente.
fprintf('\n ¿Desea volver a ejecutar este programa? (S/N): ');
A=input(' ', 's');
end
clc;
%% agradecimiento
fprintf('Gracias por usar este programa');
pause(3)
clc;
clear;
Programa para escribir un número con palabras
UNIVERSIDAD TECNOLÓGICA DE TORREÓN
PRÁCTICA NO. 1. PROGRAMACIÓN AVANZADA EN MATLAB
n1 = dato / 10000;
a = dato / 1000;
n2 = mod(a,10);
b = dato / 100;
n3 = mod(b,10);
c = dato / 10;
n4 = mod(c,10);
n5 = mod(dato,10);
if dato==1||dato==2||dato==3||dato==4||dato==5
if dato==1
fprintf('uno');
end
if dato==2
fprintf('dos');
end
if dato==3
fprintf('tres');
end
if dato==4
fprintf('cuatro');
end
if dato==5
fprintf('cinco');
end
else
if(isnumeric(dato))
if(dato > 10000)
fprintf('El Número Ingresado Excede El Rango De Valores Permitidos');
else
if(n1 == 1)
fprintf('Diez Mil');
end
%Sentencia Para Determinar Los Millares
if(n2 >= 1)&&(n2 < 2)
fprintf('Mil ');
elseif(n2 >= 2)&&(n2 < 3)
fprintf('Dos Mil ');
elseif(n2 >= 3)&&(n2 < 4)
fprintf('Tres Mil ');
elseif(n2 >= 4)&&(n2 < 5)
fprintf('Cuatro Mil ');
elseif(n2 >= 5)&&(n2 < 6)
fprintf('Cinco Mil ');
elseif(n2 >= 6)&&(n2 < 7)
fprintf('Seis Mil ');
elseif(n2 >= 7)&&(n2 < 8)
fprintf('Siete Mil ');
elseif(n2 >= 8)&&(n2 < 9)
fprintf('Ocho Mil ');
elseif(n2 >= 9)
fprintf('Nueve Mil ');
end
if(n4 == 2 && n5 == 0)
fprintf('Veinte');
elseif(n4 >= 2)&&(n4 < 3)
fprintf('Veinti');
elseif(n4 == 3 && n5 == 0)
fprintf('Treinta');
elseif(n4 >= 3)&&(n4 < 4)
fprintf('Treinta y ');
elseif(n4 == 4 && n5 == 0)
fprintf('Cuarenta');
elseif(n4 >= 4)&&(n4 < 5)
fprintf('Cuarenta y ');
elseif(n4 == 5 && n5 == 0)
fprintf('Cincuenta');
elseif(n4 >= 5)&&(n4 < 6)
fprintf('Cincuenta y ');
elseif(n4 == 6 && n5 == 0)
fprintf('Sesenta');
elseif(n4 >= 6)&&(n4 < 7)
fprintf('Sesenta y ');
elseif(n4 == 7 && n5 == 0)
fprintf('Setenta');
elseif(n4 >= 7)&&(n4 < 8)
fprintf('Setenta y ');
elseif(n4 == 8 && n5 == 0)
fprintf('Ochenta');
elseif(n4 >= 8)&&(n4 < 9)
fprintf('Ochenta y ');
elseif(n4 == 9 && n5 == 0)
fprintf('Noventa');
elseif(n4 >= 9)
fprintf('Noventa y ');
end