int main(void) { int vetor_x1 = 10, vetor_y1 = 7; int *vetor_x2 = NULL, *vetor_y2 = NULL; produto_escalar (5, &vetor_x1, &vetor_y1); printf("Novo vetor = {%i, %i}\n", vetor_x1, vetor_y1); vetor_x2 = &vetor_x1; vetor_y2 = &vetor_y1; produto_escalar(3, vetor_x2, vetor_y2); printf("Novo vetor = {%i %i}\n", *vetor_x2, *vetor_y2); return 0; }
int main(int argc, const char *argv[]) { int *x,*y,tamanho,i; /* pede os dados do ususario */ printf ( "Digite o tamanho do vetor\n" ); scanf ( "%d", &tamanho ); x=(int*)malloc(sizeof(int)*tamanho); y=(int*)malloc(sizeof(int)*tamanho); /* completa os vetores */ printf ( "primeiro vetor\n" ); for (i=0;i<tamanho ;i++ ) { printf ( "digite o valor \n" ); scanf ( "%d",&x[i] ); } printf ( "segundo vetor\n" ); for (i=0;i<tamanho;i++ ) { printf ( "digite o valor\n" ); scanf ( "%d", &y[i] ); } /* chama a funcao que calcula o produto */ produto_escalar(x,y,tamanho); return 0; }
int main(int argc, const char *argv[]) { int *v1, *v2, n, cont; //vetor 1, vetor 2, numero de elementos, contador; puts("Informe o tamanho do vetor:"); scanf("%d", &n); v1 = (malloc(sizeof(int) * n)); //alocar n endereços de memoria para o vetor 1; v2 = (malloc(sizeof(int) * n)); //alocar n endereços de memoria para o vetor 2; printf ( "Lendo o primeiro vetor...\n" ); read_array(n, v1); //vetor 1 recebe os valores; printf ( "Lendo o segundo vetor...\n" ); read_array(n, v2); //vetor 2 recebe os valores; printf("O produto escalar é: %d\n", produto_escalar(n, v1, v2)); // printa o retorno da função produto escalar que recebe os dois vetores e o tamanho deles e depois calcula o produto escalar. return 0; }
Vetor projecao_ortogonal(Vetor v, Vetor w){ return (produto_escalar(v,w)/w.norma()/w.norma())*w; }