Академический Документы
Профессиональный Документы
Культура Документы
Ejercicio 5.5.1 Construir una funcin llamada area que calcule el rea de un tringulo de
vrtices p, q y r.
Una vez construida, realizar la llamada a la funcin desde la ventana de comandos con los
siguientes datos para los vrtices: (1,0,0); (0,1,0); (0,0,1) y almacenar el resultado en la variable
areatri. Si la funcin es correcta, el resultado que se debe obtener es 0.8660.
Nota: El rea de un tringulo puede calcularse obteniendo el mdulo del producto vectorial de
dos de sus lados con origen en el mismo vrtice y dividiendo entre dos esta cantidad.
Ejercicio 5.5.2 Construir una funcin llamada sfac tal que dado un nmero natural n,
calcule la suma de 1 a n y el factorial de n. Hacer la llamada a la funcin para realizar el
clculo con el valor 8. Guardar el resultado en dos variables sum y fac.
Ejercicio 5.5.3 Disear una funcin de nombre burbuja que reciba un vector v y devuelva el
mismo vector ordenado de menor a mayor utilizando el mtodo de la burbuja.
Los elementos ordenados van apareciendo de uno en uno como las burbujas de un lquido en
ebullicin. Esta analoga da nombre al mtodo.
Ejercicio 5.5.4 Sea el fichero matriz.txt que contiene n lneas de datos, teniendo en cada
lnea n datos numricos enteros. A priori no se conoce el valor de n. Se desean almacenar
todos los datos del fichero, en disposicin idntica a como se encuentran en ste, en una
matriz A (nxn). Adems se quiere obtener la suma de todos los elementos de la matriz que no
estn en la diagonal principal.
Se pide escribir un programa M que realice las tareas anteriores, imprimiendo en pantalla
tanto la matriz A, como la suma que se pide, de la forma:
La suma es .......
Ejercicio 5.5.5 Sea un sistema de n partculas. Cada partcula viene determinada por su vector
de posicin ri y su masa mi. Se define el centro de masas como el punto cuyo vector de
posicin r se calcula mediante la siguiente expresin
1 n
r mi ri
m i 1
Sea el fichero sistema.txt que contiene la informacin del sistema de partculas. Tiene n lneas
(n se tendr que calcular) con 4 nmeros en coma flotante en cada una. Los tres primeros
nmeros forman el vector de posicin y el cuarto la masa de cada partcula.
Se pide disear un programa en lenguaje M que lea los datos del fichero y los guarde en una
matriz A de nx3 (para los vectores de posicin) y en un vector masas de n componentes (para
las masas). Se debe obtener como salida a pantalla el vector de posicin del centro de masas
del sistema de partculas.
Solucin Ejercicio 5.5.1
u=q-p;
v=r-p;
a=1/2*norm(cross(u,v));
end
>> areatri=area(a,b,c)
areatri =
0.8660
suma=0;fact=1;
for i=1:n
suma=suma+i;
fact=fact*i;
end
Por otro lado, se llama a la funcin desde la ventana de comandos con el valor de entrada 8 y
se almacena el resultado en las variables sum y fac.
>> [sum,fac]=sfac(8)
sum =
36
fac =
40320
Solucin Ejercicio 5.5.3
A continuacin, detallamos una funcin M que implementa el algoritmo de la burbuja:
function vo=burbuja(v)
n=length(v);
for k=1:n-1
ord=1;
for j=1:n-k
if v(j)>v(j+1)
aux=v(j);
v(j)=v(j+1);
v(j+1)=aux;
ord=0;
end
end
if (ord==1)break; end
end
vo=v
function vo=burbuja(v)
n=length(v);
ord=0; % variable para detectar cuando est ordenado
k=0; % contador del numero de pasos
% algoritmo de la burbuja
while ~ord
ord=1
k=k+1
for j=1:n-k
if v(j)>v(j+1)
aux=v(j);
v(j)=v(j+1);
v(j+1)=aux;
ord=0;
end
end
end
vo=v
Solucin Ejercicio 5.5.4
Una solucin al ejercicio propuesto se indica a continuacin:
fid=fopen('matriz.txt','r');
[A,cont]=fscanf(fid,'%d');
n=sqrt(cont);
frewind(fid);
[A,cont]=fscanf(fid,'%d',[n,n]);
A=A';
disp(A);
suma=0;
for i=1:n
for j=1:n
if (i==j) continue;end
suma=suma+A(i,j);
end
end
fprintf('La suma es %d\n',suma)
fclose(fid);