MATLAB \/ OCTAVE - Programação - Sistema resultante de forças (3D) Escrever um algoritmo que peça ao usuário: * O número de forças; * As coordenadas dos pontos (iniciais e finais) que descreve cada forças ou os ângulos que cada força faz com os eixos; Isto é, em cada força que o usuário for descrever pergunte se ele deseja entrar com as coordenadas dos pontos desta força, ou se ele quer inserir os ângulos que essa força faz com os eixos (x,y, e z). O módulo de cada força; O algoritmo deverá mostrar ao usuário apenas: A força resultante (cartesiana), com as componentes Frx (î), Fry (j) e Frz (k); O módulo da força resultante; Os ângulos diretores (alfa,beta e gama) que a força resultante faz com os eixos x,y e z.
n = input('Insira o número de forças: '); % Le o numero de forças\nfor i=1:n % Para cada força\ntipo = input('Coordenadas (C) ou Ângulos (A) ?','s');\nif tipo=='C'\nFx = input('Insira x inicial: ');\nFy = input('Insira y inicial: ');\nFz = input('Insira z inicial: ');\nFx = input('Insira x final: ')-Fx;\nFy = input('Insira y final: ')-Fy;\nFz = input('Insira z final: ')-Fz;\nelse\nf = input('Insira o módulo: ');\na = input('Insira o ângulo (rad) em relação ao eixo x: ')\nb = input('Insira o ângulo (rad) em relação ao eixo y: ')\nc = input('Insira o ângulo (rad) em relação ao eixo z: ')\nFx = f*cos(a); Fy = f*cos(b); Fz = f*cos(c);\nend\nend
A seguir vamos incrementar o código para a cada iteração fazer o cálculo pedido:
n = input('Insira o número de forças: '); % Le o numero de forças\nF = [0,0,0]; % Força resultante\nfor i=1:n % Para cada força\ntipo = input('Coordenadas (C) ou Ângulos (A) ?','s');\nif tipo=='C'\nFx = input('Insira x inicial: ');\nFy = input('Insira y inicial: ');\nFz = input('Insira z inicial: ');\nFx = input('Insira x final: ')-Fx;\nFy = input('Insira y final: ')-Fy;\nFz = input('Insira z final: ')-Fz;\nelse\nf = input('Insira o módulo: ');\na = input('Insira o ângulo (rad) em relação ao eixo x: ')\nb = input('Insira o ângulo (rad) em relação ao eixo y: ')\nc = input('Insira o ângulo (rad) em relação ao eixo z: ')\nFx = f*cos(a); Fy = f*cos(b); Fz = f*cos(c);\nend\nF = F + [Fx,Fy,Fz];\nend
Ao final teremos a força resultante, bastando-nos apenas determinar os resultados e imprimir:
n = input('Insira o número de forças: '); % Le o numero de forças
F = [0,0,0]; % Força resultante
for i=1:n % Para cada força
tipo = input('Coordenadas (C) ou Ângulos (A) ?','s');
if tipo=='C'
Fx = input('Insira x inicial: ');
Fy = input('Insira y inicial: ');
Fz = input('Insira z inicial: ');
Fx = input('Insira x final: ')-Fx;
Fy = input('Insira y final: ')-Fy;
Fz = input('Insira z final: ')-Fz;
else
f = input('Insira o módulo: ');
a = input('Insira o ângulo (rad) em relação ao eixo x: ')
b = input('Insira o ângulo (rad) em relação ao eixo y: ')
c = input('Insira o ângulo (rad) em relação ao eixo z: ')
Fx = f*cos(a); Fy = f*cos(b); Fz = f*cos(c);
end
F = F + [Fx,Fy,Fz];
end
Fx = F(1); Fy = F(2); Fz = F(3);
fprintf('Projeções cartesianas: (%.2f,%.2f,%.2f)\n',Fx,Fy,Fz);
f = sqrt(F(1)^2+F(2)2+F(3)2);
fprintf('Módulo: %.2f\n',f);
a = acos(Fx/f); b = acos(Fy/f); c = acos(Fz/f);
fprintf('Ângulos diretores: (%.2f,%.2f,%.2f)\n',a,b,c);
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar