Programa para cálculo vetorial

Publicado por Levi Gomes (última atualização em 28/09/2011)

[ Hits: 19.236 ]

Homepage: http://levilinuxblog.blogspot.com.br/

Download Vetor.c




Esse script visa resolver problemas de cálculo vetorial básicos. O escrevi para me auxiliar nos estudos na faculdade.

Esse script foi inicialmente escrito em Pascal, mas resolvi portá-lo para C.

Espero que seja útil.

  



Esconder código-fonte

/*
Autor:
Levi Gomes de Oliveira
E-mail: levigomes1@hotmail.com
Em caso de dúvidas, bugs, sugestões, correções e/ou críticas, favor encaminhar ao e-mail acima.
Esse código foi escrito, compilado e testado sobre o Slackware GNU/Linux 13.1 32 bits.
*/

#include <stdio.h>
#include <math.h>

int soma_vetor() {
double a[3],b[3],soma[3];
int i;
char espera;

system ("clear");
printf (" Soma de vetores \n\n");
printf ("Os vetores devem ser da forma (a1,a2,a3) \n");
for (i=1;i<4;i++) {
printf ("\n Informe o coeficiente a%d \n ",i);
scanf ("%lg",&a[i-1]);
}
for (i=1;i<4;i++) {
printf ("\n Informe o coeficiente b%d \n ",i);
scanf ("%lg",&b[i-1]);
}
for (i=1;i<4;i++) {
soma[i-1]=a[i-1]+b[i-1];
}
printf ("\n O vetor resultante eh: \n");
printf ("(%lg ,", soma[0]);
printf (" %lg ,", soma[1]);
printf (" %lg) \n", soma[2]);
espera=getchar();
}

int multiplicacao_escalar() {
double a[3],b[3], k;
int i;
char espera;

system ("clear");
printf (" Multiplicacao de Vetor por Escalar\n\n");
printf ("O vetor deve ser da forma (a1,a2,a3) \n");
printf ("\n Insira o valor do escalar \n");
scanf("%lg",&k);
for (i=1;i<4;i++) {
printf ("\n Informe o coeficiente a%d \n ",i);
scanf ("%lg",&a[i-1]);
}
for (i=1;i<4;i++) {
b[i-1]=k*a[i-1];
}
printf ("\n O vetor resultante eh: \n");
printf ("(%lg ,", b[0]);
printf (" %lg ,", b[1]);
printf (" %lg) \n", b[2]);
espera=getchar();
}

int prod_interno() {
double a[3],b[3],prod[3], soma;
int i;
char espera;

system ("clear");
printf (" Produto Interno entre dois vetores \n\n");
printf ("Os vetores devem ser da forma (a1,a2,a3) \n");
for (i=1;i<4;i++) {
printf ("\n Informe o coeficiente a%d \n ",i);
scanf ("%lg",&a[i-1]);
}
for (i=1;i<4;i++) {
printf ("\n Informe o coeficiente b%d \n ",i);
scanf ("%lg",&b[i-1]);
}
for (i=1;i<4;i++) {
prod[i-1]=a[i-1]*b[i-1];
}
soma=0;
for (i=1;i<4;i++){
soma+=prod[i-1];
}
printf (" O Produto Interno entre os vetores eh: %lg \n", soma);
espera=getchar();
}

int prod_vetorial() {
double vet[3], a[3], b[3];
int i;
char espera;

system ("clear");
printf (" Produto Vetorial \n\n");
printf ("Os vetores devem ser da forma (a1,a2,a3) \n");
for (i=1;i<4;i++) {
printf ("\n Informe o coeficiente a%d \n ",i);
scanf ("%lg",&a[i-1]);
}
for (i=1;i<4;i++) {
printf ("\n Informe o coeficiente b%d \n ",i);
scanf ("%lg",&b[i-1]);
}
vet[0]= (a[1]*b[2] - b[1]*a[2]);
vet[1]= (a[2]*b[0] - b[2]*a[0]);
vet[2]= (a[0]*b[1] - b[0]*a[1]);
printf ("\n O vetor resultante eh: \n");
printf ("(%lg ,", vet[0]);
printf (" %lg ,", vet[1]);
printf (" %lg) \n", vet[2]);
espera=getchar();
}

int prod_misto() {
double a[3],b[3],c[3],vet[3],prod[3],soma;
int i;
char espera;

system ("clear");
printf (" Produto Misto \n\n");
printf ("Os vetores devem ser da forma (a1,a2,a3) \n\n");
printf (" Vale ressaltar que primeiro realiza-se o produto vetorial depois o produto interno \n");
for (i=1;i<4;i++) {
printf ("\n Informe o coeficiente a%d \n ",i);
scanf ("%lg",&a[i-1]);
}
for (i=1;i<4;i++) {
printf ("\n Informe o coeficiente b%d \n ",i);
scanf ("%lg",&b[i-1]);
}
for (i=1;i<4;i++) {
printf ("\n Informe o coeficiente c%d \n ",i);
scanf ("%lg",&c[i-1]);
}
for (i=1;i<4;i++) {
vet[0]= (a[1]*b[2] - b[1]*a[2]);
vet[1]= (a[2]*b[0] - b[2]*a[0]);
vet[2]= (a[0]*b[1] - b[0]*a[1]);
}
for (i=1;i<4;i++) {
prod[i-1]=vet[i-1]*c[i-1];
}
soma=0;
for (i=1;i<4;i++){
soma+=prod[i-1];
}
printf (" O Produto Misto entre os vetores eh: %lg \n", soma);
espera=getchar();
}

int modulo_vetor() {
double a[3],b[3],mod,soma;
int i;
char espera;

system ("clear");
printf (" Modulo de um vetor \n\n");
printf ("O vetor deve ser da forma (a1,a2,a3) \n");
for (i=1;i<4;i++) {
printf ("\n Informe o coeficiente a%d \n ",i);
scanf ("%lg",&a[i-1]);
}
for (i=1;i<4;i++) {
b[i-1]=a[i-1]*a[i-1];
}
soma=0;
for (i=1;i<4;i++){
soma+=b[i-1];
}
mod=sqrt(soma);
printf (" O modulo do vetor eh: %lg \n", mod);
espera=getchar();
}

int main() {
char opc,segtela;
int teste;

do {
teste=0;
system ("clear");
printf (" Para utilizar esse software escolha a opcao desejada, digite o numero correspondente e tecle enter \n");
printf (" [1] Soma de dois Vetores \n");
printf (" [2] Multiplicacao de Vetor por Escalar \n");
printf (" [3] Produto Interno entre dois vetores \n");
printf (" [4] Produto Vetorial \n");
printf (" [5] Produto Misto \n");
printf (" [6] Modulo de um vetor \n");
printf (" [7] Sair \n");
opc=getchar();
switch (opc) {
  case '1': {
    soma_vetor();
    segtela=getchar();
    break;
  }
  case '2': {
    multiplicacao_escalar();
    segtela=getchar();
    break;
  }
  case '3': {
    prod_interno();
    segtela=getchar();
    break;
  }
  case '4': {
    prod_vetorial();
    segtela=getchar();
    break;
  }
  case '5': {
    prod_misto();
    segtela=getchar();
    break;
  }
  case '6': {
    modulo_vetor();
    segtela=getchar();
    break;
  }
  case '7': {
    printf (" Finalizando aplicacao ... \n\n");
    teste=1;
 }
    break;
   default: {
     teste=0;
     printf (" Opcao Invalida, voltando ao menu... \n");
    system ("sleep 1");
    break;
   }
  }
 } while (teste==0);
}

Scripts recomendados

Usando medidas de comprimento

Agenda

Testar o melhor método de organização C (inserção, bolha e shell-sort)

Exceções em C através de try-throw-catch

Molde para balões juninos


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts