Sei sulla pagina 1di 14

UNIDAD 6

%Archivo seis_1.m %lee un dato de entrada y escribe %como dato de %salida si aprueba o reprueba. %Pide la calificacin calif=input('Dame la calificacin:\n'); if calif>=7.5 fprintf('Felicidades, ests aprobado.') end if calif<7.5 fprintf('Lo siento. Ests reprobado.') end Dame la calificacin: 8 Felicidades, ests aprobado.>> Dame la calificacin: 5 Lo siento. Ests reprobado.>> %Archivo seis_2.m %Lee un dato de entrada y escribe %como dato de %salida si aprueba o reprueba. %Pide la calificacin calif=input('Dame la calificacin:\n'); if calif>=7.5 fprintf('Felicidades, ests aprobado.') else fprintf('Lo siento. Ests reprobado.') end Dame la calificacin: 8 Felicidades, ests aprobado.>> Dame la calificacin: 5 Lo siento. Ests reprobado.>> %Archivo seis_3.m %Lee un dato de entrada y escribe %como dato de %salida si aprueba o reprueba. %Pide la calificacin calif=input('Dame la calificacin:\n'); if calif>=7.5 fprintf('Felicidades, ests aprobado.') elseif calif<7.5 fprintf('Lo siento, ests reprobado.') end Dame la calificacin: 8 Felicidades, ests aprobado.>> Dame la calificacin: 5 Lo siento, ests reprobado.>>

%Archivo seis_4.m %Lee un dato de entrada y escribe %como dato de %salida si aprueba o reprueba. %Pide la calificacin calif=input('Dame la calificacin:\n'); switch calif case{7.5,8,8.5,9,9.5,10} fprintf('Felicidades, ests aprobado.') case{0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5} fprintf('Lo siento, ests reprobado.') otherwise fprintf('No fue lo suficiente y ests reprobado.') end Dame la calificacin: 8 Felicidades, ests aprobado. Dame la calificacin: 6 No fue lo suficiente y ests reprobado. Dame la calificacin: 5 Lo siento, ests reprobado.>> %Archivo seis_5.m suma=0; for i=1:10 suma=suma+i; end fprintf('La suma es %g.',suma) La suma es 30. %Archivo seis_5a.m suma=0; for i=0:2:10 suma=suma+i; end fprintf('La suma es %g.',suma) La suma es 55. %Archivo seis_e.m %Clculo del factorial de n donde n %es un entero no negativo n=input('Dame un entero no negativo\n'); factorial_n=1; for i=1:n factorial_n=factorial_n*i; end fprintf('El factorial de %g es %g.',n,factorial_n) Dame un entero no negativo 100 El factorial de 100 es 9.33262e+157.Dame un entero no negativo 45 El factorial de 45 es 1.19622e+056.>> %Archivo seis_7.m %este archivo calcula la suma %de los elementos de una matriz n x m. n=input('Dame el nmero de renglones\n');

m=input('Dame el nmero de columnas\n'); %Lee los elementos %Inicializa la suma Suma=0; %Lee los elementos y los suma for i=1:n %Lee los elementos del rengln i y los sumas for j=1:m fprintf('Dame el elemento %g, %g', i, j); a(i,j)=input(' de la matriz\n'); suma=suma+a(i,j); end end fprintf('La suma total es %g',suma) Dame el nmero de renglones 3 Dame el nmero de columnas 2 Dame el elemento 1, 1 de la matriz 1 Dame el elemento 1, 2 de la matriz 2 Dame el elemento 2, 1 de la matriz 3 Dame el elemento 2, 2 de la matriz 4 Dame el elemento 3, 1 de la matriz 5 Dame el elemento 3, 2 de la matriz 6 La suma total es 58>> %Archivo seis_8.m %Este programa calcula el radio de las esferas de radio 1 hasta 5 %r es el radio de la esfera r=0; while r<5 r=r+1; vol=(4/3)*pi*r^3; fprintf('El radio es %g y el volumen es %g.\n',r,vol) end El radio es 1 y el volumen es 4.18879. El radio es 2 y el volumen es 33.5103. El radio es 3 y el volumen es 113.097. El radio es 4 y el volumen es 268.083. El radio es 5 y el volumen es 523.599. funtion x= factorial(n) %Archivo seies_9.m %Esta funcin calcula el factorial d n. %Este es el archivo factorial.m factorial=1; if n== 0 factorial=1; else for i=1:n factorial=factorial*i; end end x=factorial

>> factorial(3) ans = 6 >> factorial(4) ans = 24 >> factorial(5) ans = 120 %Archivo seis_10.m %Clculo del factorial de un entero %n con mensajes de error en el caso de que n no sea entero o sea negativo. n=input('Dame un entero n\n'); error=0; if floor(n)~=n %checa si es entero % floor(n) calcula la parte entera de n. Si x=3.4, floor (x)=3. error=1;% n no es entero end if n<0 %checa si n es negativo error=2; % n es negativo end if error==1 fprintf('el numero que me diste no es entero\n') elseif error ==2 fprintf('el numero que me diste es negativo\n') elseif error~=1&error~=2 x=factorial (n); fprintf ('el factor %g es %g. \n',n,x) end >> Seis_10 Dame un entero n -6 el numero que me diste es negativo >> Seis_10 Dame un entero n 4 el factor 4 es 24. >> Seis_10 Dame un entero n 1.4 el numero que me diste no es entero function[x1,x2]=cuadratica(a,b,c) %Esta funcin calcula las races x1 y x2 %de una ecuacin cuadrtica ax^2+bx+c=0 %Las dos soluciones son x1 y x2 %el archivo es cuadratica.m discriminante=(b^2-4*a*c); x1=(-b+sqrt(discriminante))/(2*a); x2=(-b-sqrt(discriminante))/(2*a); >> [x1,x2]=cuadratica(1,2,3) x1 = -1.0000 + 1.4142i x2 = -1.0000 - 1.4142i >> [x1,x2]=cuadratica(4,8,-60) x1 = 3

x2 = -5 function y =prueba(x); %Funcin de prueba para ver variables. fprintf('Acabado de entrar a prueba.\n') a=1; b=10; c=100; y= 3; fprintf('Estoy dentro de la funcin.\n') fprintf('Las variables son\n a= %g\n b= %g\n c= %g\n',a,b,c) fprintf('Saliendo de la funcin.\n') %Archivo seis_12. a=4; b=2; c=0.47; y =1; fprintf('Las variables antes de prueba son \n a= %g \n b= %g\n c= %g\n',a,b,c) y=prueba(1); fprintf('Estoy de regreso en el programa principal\n'); fprintf('Las variables son \n a= %g \n b= %g \n c= %g \n',a,b,c) >> Seis_12 Las variables antes de prueba son a= 4 b= 2 c= 0.47 Acabado de entrar a prueba. Estoy dentro de la funcin. Las variables son a= 1 b= 10 c= 100 Saliendo de la funcin. Estoy de regreso en el programa principal Las variables son a= 4 b= 2 c= 0.47 function y=prueba6_13 (a,b,c) a=a*2; b=b*10; c=c*100; y=4; fprintf('Estoy dentro de la funcin.\n') fprintf('Las variables son \n a= %g \n b= %g \n c= %g \n',a,b,c) fprintf('Saliendo de la funcin.\n') %Archivo seis_13. a=4; b=2; c=0.47; fprintf('Las variables antes de prueba6_13 son \n a= %g \n b= %g\n c= %g\n',a,b,c) p=prueba6_13 (a,b,c); fprintf('Estoy de regreso en el programa principal\n'); fprintf('Las variables son \n a= %g \n b= %g \n c= %g \n',a,b,c) >> Seis_13 Las variables antes de prueba6_13 son

a= 4 b= 2 c= 0.47 Estoy dentro de la funcin. Las variables son a= 8 b= 20 c= 47 Saliendo de la funcin. Estoy de regreso en el programa principal Las variables son a= 4 b= 2 c= 0.47 %Archivo seis_14.m %Programa para checar las variables globales y locales. global a a=3; fprintf('Valor de a antes de llamar a la funcin cambio 1 a= %g\n',a) cambio1 fprintf('Valor de a despues de cambio1 a= %g\n',a) cambio2(a) fprintf('Valor de a despues de cambio2 a= %g\n',a) %Archivo cambio1.m function x=cambio1(a) global a fprintf('Valor de a despues de haber entrado a cambio 1 a= %g\n',a) a=7; fprintf('Valor de a modificado en cambio1 a= %g\n',a) %Archivo cambio2.m function x=cambio2(a) fprintf('Valor de a despues de entrar a prueba 2 a= %g\n',a) a=12; fprintf('Valor de a modificado en prueba2 a= %g\n',a) >> Seis_14 Valor de a antes de llamar a la funcin cambio 1 a= 3 Valor de a despues de haber entrado a cambio 1 a= 3 Valor de a modificado en cambio1 a= 7 Valor de a despues de cambio1 a= 7 Valor de a despues de entrar a prueba 2 a= 7 Valor de a modificado en prueba2 a= 12 Valor de a despues de cambio2 a= 7 %Archivo seis_15.m x=input('Dame el valor de x:\n'); y=mayor_menor(x); fprintf('Termina la corrida.\n') %Archivo mayor_menor.m function y=mayor_menor (x) if x<0 fprintf('x es menor a 0.\n') y=x; return else fprintf('x es mayor o igual a 0.\n') end y=x;

>> Seis_15 Dame el valor de x: 0 x es mayor o igual a 0. Termina la corrida. >> Seis_15 Dame el valor de x: 8 x es mayor o igual a 0. Termina la corrida. >> Seis_15 Dame el valor de x: -6 x es menor a 0. Termina la corrida. function x=factorial(n) %Esta funcion calcula el factoria de n. %Este es el archivo factorial.m factorial=1 if n==0 factorial=1; else for i=1:n factorial=factorial*i; end end x=factorial; %Archivo fact_rec.m function x=fact_rec(n) if n~=1 x=n*fact_rec(n-1); else x=1; end >> fact_rec(6) ans = 720 >> identificador_archivo=fopen('ejemplo6_17.txt','r'); >> identificador_archivo identificador_archivo = -1 >> identificador_archivo=fopen('ejemplo6_17.txt','w'); >> identificador_archivo identificador_archivo = 3 >> identificador_datos=fopen('datos.txt','w'); >> identificador_datos=fopen('datos.txt','w') identificador_datos = 5 >> identificador_datos=fopen('datos.txt','w') identificador_datos = 6 >> dir Seis_12_1.m Seis_15.m Seis_4.m Seis_7.m prueba.m Seis_13.asv Seis_2.asv Seis_5.m Seis_8.m prueba6_13.m

. ..

Seis_11.asv Seis_11.m

cambio2.m cuadratica.m

fact_rec.m factorial.m

Seis_1.m Seis_10.m

Seis_2.m Seis_5a.m Seis_9.m datos.txt mayor_menor.m Seis_12.m Seis_14.m Seis_3.m Seis_6.m cambio1.m ejemplo6_17.txt prueba.asv >> otro=fopen('C:\nuevo\archivo.txt','w') otro = -1 >> fprintf('Escribe esto que va a la pantalla') Escribe esto que va a la pantalla>> >> fid1=fopen('archivo1.txt','w'); >> fid2=fopen('archivo2.txt','w'); >> fprintf(fid1,'aqui escribimos a archivo 1.txt\n'); >> fprintf(fid2,'aqui escribimos a archivo 2.txt\n'); >> fclose(3);fclose(4); >> Nombre=['Rivaldo';'Rolando';'Roberto';'Cafu ']; >> Apellido=['Vitor';'Luiz ';'Morae';'Nelso']; >> Edad=[30;26;32;29]; >> Goles=[3;2;1;4]; >> fprintf('%s %s\n%g\n%g\n',Nombre(2,:),Apellido(2,:),Edad(2,:),Goles(2,:)); Rolando Luiz 26 2 %Archivo Ejemplo6_5_1.m fid_brasil=fopen('Datos_de_Brasil.txt','w'); for i=1:length(Goles); fprintf(fid_brasil,'%7s,%5s,%2d,%1d\n',Nombre(i,:),Apellido(i,:), Edad(i,:),Goles(i,:)); end fclose(fid_brasil);

Seis_12.asv

Seis_13.m

%Este archivo es leer_datos.m fid_datos=fopen('Datos_de_Brasil.txt','r') %definimos las matrices de las variables Nombre=[]; Apellido=[]; Edad=[]; Goles=[]; while~feof(fid_datos) %lee el nombre cadena=fscanf(fid_datos,'%7c',1); Nombre=[Nombre;cadena]; coma=fscanf(fid_datos,'%1c',1); %lee el apellido cadena=fscanf(fid_datos,'%5c',1); Apellido=[Apellido;cadena]; coma=fscanf(fid_datos,'%1c',1); %lee la edad num=fscanf(fid_datos,'%2d',1); Edad=[Edad;cadena]; coma=fscanf(fid_datos,'%1c',1); %lee goles num=fscanf(fid_datos,'%1d',1);

Goles=[Goles;cadena]; end_of_line=fscanf(fid_datos,'%1c',1); end fclose(fid_datos); >> leer_datos fid_datos = 13 >> who Your variables are: coma fid2 identificador_datos x end_of_line fid_brasil n x1 error fid_datos num x2 fid i otro y fid1 identificador_archivo p >> Nombre Nombre = Rivaldo Rolando Roberto Cafu >> Apellido Apellido = Vitor Luiz Morae Nelso >> Edad Edad = Vitor Luiz Morae Nelso >> Goles Goles = Vitor Luiz Morae Nelso >> A=[4 -28; 30 46]; B=27; C='MATLAB'; D=[4; -9; -3]; >> fid_binario=fopen('binario.dat','w') fid_binario = 13 >> fwrite(fid_binario,A,'double') ans = 4 >> fwrite(fid_binario,B,'short') ans = 1 >> fwrite(fid_binario,C,'char') ans = 6 >> fwrite(fid_binario,D,'long') ans = 3 >> fclose(fid_binario) ans = 0 >>

Apellido Edad Goles Nombre a

ans b c cadena calif

>> fid_bin=fopen('binario.dat','r') fid_bin = 15 >> [A,cuenta]=fread(fid_bin,[2,2],'double') A= 4 -28 30 46 cuenta = 4 >> B=fread(fid_bin,[1],'short') B= 27 >> C=fread(fid_bin,[6],'char') C= 77 65 84 76 65 66 >> C=C' C= 77 65 84 76 65 66 >> C=setstr(C) C= MATLAB >> D=fread(fid_bin,[2 1],'long') D= 4 -9 >> fclose(fid_bin) ans = 0 >>

>> A=[

2702

0; 25 27 3; A= 2702 2507 0 25 27 3 5 7 330 >> csvwrite('matriz.csv',A) >>

2507

330]

>> d=csvread('lista_6_6.csv') d= 1 2 3 4 5 6

PROBLEMA 1.3
>> t=-1:0.001:5; >> ut=(t>=0); >> plot(t,ut) >> axis([-1 6 -1 2])

>> t=-1:0.001:5; >> rt=tripuls(t); >> plot(2*t,rt) >> axis([-2 2 -1 2])

>> t=-1:0.001:5; >> xt=(t>=0)&(t<=2); >> plot(t,xt) >> axis([-1 3 -1 2])

>> t=-1:0.001:5; >> xt1=(10*exp(-3*t)).*ut; >> plot(t,xt1) >> axis([-1 3 -1 11]) >> xt1=(3*exp(-t)).*cos(2*t).*ut; >> xt1=(3*exp(-t)).*cos(2*t).*ut; >> t=-1:0.001:5; >> xt1=(3*exp(-t)).*cos(2*t).*ut; >> plot(t,xt1) >> axis([-1 6 -1 4]) >> t=-1:0.001:5; >> xt1=2*sin(3*t-(pi/2))-cos(2*t); >> plot(t,xt1) >> axis([-2 6 -4 4])

>> t=-1:0.001:5; >> xt1=sin(5*t)-sin(pi*t); >> plot(t,xt1) >> axis([-2 6 -3 3]) >> title('rafael Orlando Gonzalez renteria')

PROBLEMA 1.5.
>> t=-1:0.001:5; >> ut=(t>=0); >> ut2=(t>=2); >> ut4=(t>=4); >> xt1=exp(-t)+exp(-t).*(exp(2*t-4)-1).*ut2-(exp(t-4).*ut4); >> plot(t,xt1) >> axis([-2 6 -1 4]) >> title('rafael Orlando Gonzalez r') >> t=-1:0.001:5; >> ut5=(t<=pi/2); >> ut6=(t>=pi); >> ut7=(t>=((3*pi)/2)); xt2=cos(t).*(ut5-2*ut6)+cos(t).*(ut7); >> plot(t,xt2) >> axis([-2 6 -1 3]) >> title('rafael Orlando Gonzalez r')