cos (q) = u.v / |u||v|
arccos(q) = ângulo procurado
Logo temos : cos .h:#define MAX 100
double ang(double x1[MAX] , double x2[MAX] , int dimensao);
e cos.c :
#include
#include
#include "cos.h"
#define PI 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303820
void main (){
double x1[MAX],x2[MAX];
double coss ;
int dimensao,i;
printf("Entre com a dimensao dos vetores\n");
scanf("%d",&dimensao);
printf("Dimensao = %d\n",dimensao);
printf("Entre com as cordenadas de x1\n");
for (i=0;i
printf("%d esima coordenada ",i+1);
scanf("%lf",&x1[i]);
}
printf("Entre com as cordenadas de x2\n");
for (i=0;i
printf("%d esima coordenada ",i+1);
scanf("%lf",&x2[i]);
}
coss = ang(x1,x2,dimensao);
printf ("Cosseno de x1 , x2 = %lf \n",coss);
double param, result;
param = coss;
result = acos (param) * 180.0 / PI;
printf ("The arc cosine of %lf is %lf degrees.\n", param, result );
}
double ang(double x1[MAX] , double x2[MAX] , int dimensao){
//cos (q) = u.v / |u||v|
double coss;
double produto=0;
double norma1=0 , norma2=0;
int i;
//produto
for (i=0;i< dimensao ;i++){
produto += x1[i] * x2 [i];
}
//norma1
for(i=0;i
norma1 += x1[i] * x1[i];
}
norma1=sqrt(norma1);
//norma2
for(i=0;i
norma2 += x2[i] * x2[i];
}
norma2=sqrt(norma2);
//cosseno
coss= produto/(norma1*norma2);
return (coss);
}
Nenhum comentário:
Postar um comentário