Programa para cálculo vetorial
Publicado por Levi Gomes (última atualização em 28/09/2011)
[ Hits: 19.669 ]
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);
}
Um algoritmo genético para o TSP (Travel Salesman Problem)
ArkaPoing (arkanoid+pingpoing hehe)
Nenhum comentário foi encontrado.
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
O que houve com slackware ??? (12)
Alterar conteúdo de dica [RESOLVIDO] (3)
Vou destruir sua infância:) (5)









