Académique Documents
Professionnel Documents
Culture Documents
EJERCICIO 6
1. Crear una funcin convdechex.m en Matlab que transforme un nmero real x escrito en
sistema decimal y devuelva como resultado el nmero correspondiente en el sistema
hexadecimal. Para esto puede inspirarse de la funcin convdecbin.m del texto. Verificar
sus resultados para los valores siguientes:
PARA PODER REALIZAR EN MATLAB SE TIENE QUE INTRODUCIR LOS SIGUIENTES
COMANDOS PARA PODER PROSEGUIR CON LAS FUNCIONES:
Cdigo:
x=input('x? ');
y = dec2hex(pent);
for i=1:10
mul = 16*pdec;
pdee(i) = floor(mul);
pdec = mul - pdee(i);
end
pdee
for i=1:10
if pdee(i) == 1,
pdee(i)= '1';
elseif pdee(i) == 0,
pdee(i)='0';
elseif pdee(i) == 2,
pdee(i)= '2';
elseif pdee(i) == 3,
pdee(i)= '3';
elseif pdee(i) == 4,
pdee(i)= '4';
elseif pdee(i) == 5,
pdee(i)= '5';
elseif pdee(i) == 6,
pdee(i)= '6';
elseif pdee(i) == 7,
pdee(i)= '7';
elseif pdee(i) == 8,
pdee(i)= '8';
elseif pdee(i) == 9,
pdee(i)= '9';
elseif pdee(i)== 10,
pdee(i)='a';
elseif pdee(i)==11,
pdee(i)= 'b';
elseif pdee(i)==12,
pdee(i)= 'c';
elseif pdee(i)==13,
pdee(i)= 'd';
elseif pdee(i)==14,
pdee(i)= 'e';
elseif pdee(i)==15,
pdee(i)= 'f';
else
pdee(i)='p';
end
end
fprintf('%2s',y); fprintf(','); fprintf('%2s' ,pdee); fprintf('\n');
2. Dado un nmero real x crear una funcin en Matlab que devuelva la mantisa (con sino) y
el exponente (con signo) del mismo nmero cuando este nmero es aproximado por una
mquina de 7 dits. (Si el exponente de pasa los limites requeridos por una mquina de 7
dits el programa tendra que mostrar un mensaje de error). Por ejemplo si el nmero es:
X = 3.141592645. = 0.3141592654*10^+1, el resultado de Matlab tendra que ser
0.3142 para la mantisa y 1 para el exponente.
Verificar sus resultados para los siguientes valores:
X1 = 5.4567876
X2 = -0.000004543
X3 = 43.7865*10^-9
X4 = 10.0
Aqu tambin se tiene que introducir los comandos, como del anterior problema
Nota Algunas funciones que podran ser tiles para este programa son
las siguientes:
- format long permite trabajar con 15 dgitos luego del punto decimal.
- mod (m,n) encuentra el resto de la divisin entera de (m) entre (n)
Cdigo:
x=input('x? ');
e=0;
n=3;
format long
while pent ~= 0,
e = e + 1;
xn = xn/10;
pent=floor(xn);
pdec = xn - pent;
end
for i=1:n
pdec= pdec/10;
x(n)=floor(pdec)
pdec=pdec-x(n);
ceil(pdec);
end