Programa para cálculo vetorial
Publicado por Levi Gomes (última atualização em 28/09/2011)
[ Hits: 19.575 ]
Homepage: http://levilinuxblog.blogspot.com.br/
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.
/*
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);
}
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Warcraft II Remastered no Linux? (8)
Instalação dualboot Windows 11 e Debian 13 (7)
Programa fora de escala na tela do pc (37)
Mint Xfce não mantém a conexão no wi-fi (0)
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (0)









