Você está na página 1de 6

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO

Facultad de Informtica y Electrnica


Escuela de Ingeniera Electrnica, Telecomunicaciones y Redes EDA HERRAMIENTAS

FUNCIONES

Nombre: Alex Aguirre P. Semestre: Quinto

(335)

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO Facultad de Informtica y Electrnica Escuela de Ingeniera Electrnica, Telecomunicaciones y Redes HERRAMIENAS EDA I. DATOS INFORMATIVOS Nombre: Alex Aguirre P. (335) Semestre: Quinto II. OBJETIVOS 1. 2. Desarrollar los conocimientos para la creacin de funciones en MATLAB Comprender la utilidad que tienen las funciones.

III. DESARROLLO DE LA TAREA 1. Desarrollar: a. Escribir una funcin que calcule el permetro de un crculo dado su radio.
function per = perimetro(r) %Calcula el permetro de una circunferencia per=2*pi*r;

b. Escribir una funcin que calcule el rea de un crculo dado su radio.


function A = area(r) %Calcula el area de un circulo A=pi*r*r;

c. Modificar la funcin anterior para que dado el radio, calcule tanto el rea como la longitud de la circunferencia.
function [P,A] = area_per(r) %Calcula el area y perimetro A=pi*r*r; P=2*pi*r;

2. Escribir una funcin que calcule las dos races de una ecuacin de segundo grado: ax2+bx+c=0. a, b, y c son parmetros de entrada.
function [x1,x2]=raices(a,b,c) %Calcula las raices de una ecuacion cuadratica discr=(b^2)-(4*a*c); x1=(-b+sqrt(discr))/(2*a); x2=(-b-sqrt(discr))/(2*a); if discr<0 disp('Raices imaginarias'); else disp('Raices reales'); end

3. Desarrollar a. Escribir una funcin que convierta un nmero binario en hexadecimal.


function nb16=conv(nb2) %Convierte un numero binario a hexadecimal n=length(nb2); nb2=fliplr(nb2); acc=0; for a=1:n acc=acc+(nb2(a)*(2^(a-1))); end nb16=dec2hex(acc);

b. Escribir una funcin (base2base) que convierta una cadena que representa un nmero en cualquier base a cualquier otra base que se indique.
function nby=base2base(nbx,x,y) %Convierte un numero expresado en base x, a base y n=length(nbx); nbx=fliplr(nbx); base10=0; for a=1:n base10=base10+(nbx(a)*(x^(a-1))); end fprintf('Numero en base %d\n',y); if (y==16) nby=dec2hex(base10); else a=1; while (base10>=y) nby(a)=mod(base10,y); base10=floor(base10/y); a=a+1; end nby(a)=base10; nby=fliplr(nby); end

4. La siguiente funcin calcula la parbola y=x2 entre n y -n a intervalos de 0.1:


function y = x(n) % x Calcula la funcin y=x2 % La funcin se representa entre los valores -n y n x=-n:0.1:n; y=x.^2; plot(x,y); grid;

a. Escribir dicha funcin y comprobar su funcionamiento.


function y = x(n) % x Calcula la funcin y=x^2 % La funcin se representa entre los valores -n y n x=-n:0.1:n; y=x.^2; plot(x,y); grid;

>> n=2; >> ys=x(n);

b. Modificar la funcin para que podamos calcular la funcin y=xp, donde p sea cualquier valor positivo.
function y = x(p,n) % x Calcula la funcin y=x^p % La funcin se representa entre los valores -n y n x=-n:0.1:n; y=x.^p; plot(x,y); grid;

5. La presin atmosfrica (p) vara en funcin de la altura (h) segn la siguiente expresin: p=1035*e-0.12h, donde la altura se mide en kilmetros y la presin en milibares. a. Escribir una funcin presin que calcule la presin para una altura dada (utilizar la funcin de MATLAB exp).
function p=presionatm(h) %Calculo de la presion atmosferica p=1035*exp(-0.12*h);

b. Queremos ahora observar en una grfica cmo vara la presin en funcin de la altura. Para ello, definiremos a_vec como un vector de alturas que toma los valores enteros entre 0km y 30km, aplicaremos la funcin que hemos escrito para obtener los valores del vector de presiones p_vec y dibujaremos la grfica con la altura en las abscisas y la presin en las ordenadas: >> a_vec=(1:30); >> p_vec=presion(a_vec); >> plot(a_vec,p_vec,'g');

6. Disear una funcin en MATLAB que calcule la superficie y volumen de un cilindro dados su radio (r) y altura (h) (V=r2h, S=2r2+2rh).
function [s,v]=cilindro(r,h) %Calcula la superficie y el volumen de un cilindro v=pi*r^2*h; s=(2*pi*r^2)+(2*pi*r*h);

7. Sabiendo que la resistencia total de 3 resistencias conectadas en serie es: rt= r1 + r2 + r3 y que si dichas resistencias se conectan en paralelo, entonces su resistencia total es: 1/rt = 1/r1 + 1/r2 + 1/r3 Escribir una funcin tal que dadas 3 resistencias calcule su resistencia total conectadas en paralelo y en serie.
function [reqs, reqp]=requiv(r1,r2,r3) %Calcula la resitencia equivalente en serie y paralelo reqs=r1+r2+r3; reqp=1/((1/r1)+(1/r2)+(1/r2)); fprintf('Resistencia en serie: %f ohms\nResistencia en paralelo: %f ohms\n',reqs,reqp)

8. Sabiendo que cada carcter se representa con 8 bits, escribir una funcin tal que dada una cadena de unos y ceros que representa una palabra en binario (la longitud de la cadena debe ser mltiplo de 8), devuelva la palabra (con caracteres) que representa. utilizar la funcin length para conocer la longitud de la cadena y la funcin reshape para separar la cadena de unos y ceros en grupos de 8 bits.
function pcar=bin2ascii(pbin) %Convierte una cadena expresada en binario a caracteres n=length(pbin); pbin=fliplr(pbin); ncar=floor(n/8); if (mod(n,8)~=0) ncar=ncar+1; for a=(n+1):(8*ncar) pbin(a)=0; end end for a=1:ncar acc(a)=0; b=8*(a-1)+1; c=0; for k=b:(b+7) acc(a)=acc(a)+(pbin(k)*(2^c)); c=c+1; end end acc=fliplr(acc); pcar=char(acc);

Você também pode gostar