Programa para Cálculo Vetorial

Publicado por Levi Gomes (última atualização em 29/08/2011)

[ Hits: 8.929 ]

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

Download Vetor_procedural.pas




Esse script visa resolver problemas de cálculo vetorial básicos. O escrevi para me auxiliar nos estudos na faculdade. Todos os resultados impressos em tela estão usando precisão de 4 casas decimais, mas isso pode ser alterado de acordo com as necessidades do usuário.
Espero que seja útil.

  



Esconder código-fonte

{
* Autor: Levi Gomes de Oliveira
* E-mail: levigomes1@hotmail.com
* Em caso de dúvidas, críticas, sugestões e/ou correções, favor encaminhar
* ao e-mail acima.
* Esse algoritmo foi escrito, compilado e testado sobre o Slackware 13.1
* 32 bits, utilizando o fpc 2.4.4.
* Ele tem por objetivo resolver problemas básicos de cálculo vetorial.
* Escrevi para me auxiliar em meus estudos na faculdade.
* A precisão dos resultados impressos em tela podem ser alteradas a gosto
* do usuário, adotei com padrão quatro casas decimais, que para minhas
* necessidades atuais são suficientes.
* Aproveitem!!!
* }

program vetor;
uses crt;
var
i: integer;
opc:char;

{ Soma de Vetores }

procedure soma;
var
va,vb,vc: array[1..3] of real;

begin
clrscr;
writeln('OS DOIS VETORES DEVEM SER DA FORMA (A1,A2,A3) E (B1,B2,B3)');
writeln('PRESSIONE UMA TECLA PARA CONTINUAR');
readkey;
clrscr;
writeln('SOMA DE VETORES');
for i:=1 to 3 do
begin
writeln;
writeln('INSIRA O COEFICIENTE A',i);
read(va[i]); {A VARIAVEL VA[I] RECEBE OS COEFICIENTES DO VETEOR A INFORMADOS PELO USUARIO}
end; {AQUI E NECESSARIO INFORMAR QUE O COEFICIENTE DE I SEMPRE E SALVO NA POSICAO 1 DO VETOR EM OPERACAO, O DE J EM 2 E O DE K EM 3}
writeln('O VETOR INFORMADO EH:');
writeln('(',va[1]:4:4,', ',va[2]:4:4,', ',va[3]:4:4,')');
for i:=1 to 3 do
begin
writeln;
writeln('INSIRA O COEFICIENTE B',i);
read(vb[i]);{ESSE VETOR RECEBE OS COEFICIENTES DO VETOR B}
end;
writeln('O VETOR INFORMADO EH:');
writeln('(',vb[1]:4:4,', ',vb[2]:4:4,', ',vb[3]:4:4,')');
for i:=1 to 3 do
begin
vc[i]:= (va[i]+vb[i]); {NESSA LINHA EFETUA-SE O PROCESSAMENTO, O VETOR VC[I] RECEBE O RESULTADO DA SOMA DOS VETORES A E B}
end;
writeln;
writeln('O VETOR SOMA EH:');
writeln('(',vc[1]:4:4,', ',vc[2]:4:4,', ',vc[3]:4:4,')');
readkey;
end;

{ Multiplicação por Escalar }

procedure multiplicacao;
var
k: real;
va: array[1..3] of real;

begin
clrscr;
writeln('O VETOR DEVE SER DA FORMA (A1,A2,A3)');
writeln('PRESSIONE UMA TECLA PARA CONTINUAR');
readkey;
clrscr;
writeln('MULTIPLICACAO DE VETOR POR ESCALAR');
for i:=1 to 3 do
begin
writeln;
writeln('INFORME O COEFICIENTE A',i);
read(va[i]); {LEITURA DOS COEFICIENTES DE A}
end;
writeln('INSIRA O ESCALAR');
read(k); {A VARIAVEL K REPRESENTA O ESCALAR}
writeln('O VETOR EH INFORMADO EH:');
writeln('(',va[1]:4:4,', ',va[2]:4:4,', ',va[3]:4:4,')');
writeln;
writeln('O ESCALAR EH:', k:4:1);
writeln;
writeln('O VETOR RESULTANTE EH:');
writeln;
writeln('(',k*va[1]:4:4,', ',k*va[2]:4:4,', ',k*va[3]:4:4,')');
readkey;
end;

{ Produto Interno }

procedure interno;
var
va, vb, prod: array[1..3] of real;
soma:real;

begin
clrscr;
writeln('OS VETORES DEVEM SER DA FORMA: (A1,A2,A3) E (B1,B2,B3)');
writeln;
writeln('PRESSIONE UMA TECLA PARA CONTINUAR');
readkey;
clrscr;
writeln('PRODUTO INTERNO');
for i:=1 to 3 do
begin
writeln;
writeln('INSIRA O COEFICIENTE A',i);
read(va[i]); {LEITURA DOS COEFICIENTES DE A}
end;
for i:=1 to 3 do
begin
writeln;
writeln('INSIRA O COEFICIENTE B',i);
read(vb[i]); {LEITURA DOS COEFICIENTES DE B}
end;
writeln;
writeln('O VETOR A EH:');
writeln('(',va[1]:4:4,', ',va[2]:4:4,', ',va[3]:4:4,')');
writeln;
writeln('O VETOR B EH:');
writeln('(',vb[1]:4:4,', ',vb[2]:4:4,', ',vb[3]:4:4,')');
for i:=1 to 3 do
begin
prod[i]:=va[i]*vb[i];
end;
soma:=0;
for i:=1 to 3 do
begin
soma:= soma + prod[i];
end;
writeln;
writeln('O PRODUTO INTERNO ENTRE OS DOIS VETORES INFORMADOS EH:', soma:4:4); {A VARIAVEL INT RECEBE O RESULTADO DA OPERACAO}
readkey;
end;

{ Produto Vetorial }

procedure vetorial;
var
va,vb,vc: array[1..3] of real;

begin
clrscr;
writeln('OS VETORES DEVEM SER DA FORMA (A1,A2,A3) E (B1,B2,B3)');
writeln;
writeln('PRESSIONE UMA TECLA PARA CONTINUAR');
readkey;
clrscr;
writeln('PRODUTO VETORIAL');
writeln;
for i:=1 to 3 do
begin
writeln;
writeln('INSIRA O COEFICIENTE A',i);
read(va[i]); {LEITURA DOS COEFICIENTES DE A}
end;
writeln;
for i:=1 to 3 do
begin
writeln;
writeln('INSIRA O COEFICIENTE B',i);
read(vb[i]); {LEITURA DOS COEFICIENTES DE B}
end;
writeln('O VETOR A EH:');
writeln('(',va[1]:4:4,', ',va[2]:4:4,', ',va[3]:4:4,')');
writeln;
writeln('O VETOR B EH:');
writeln('(',vb[1]:4:4,', ',vb[2]:4:4,', ',vb[3]:4:4,')');
vc[1]:= (va[2]*vb[3] - vb[2]*va[3]); {O VETOR C RECEBE  O VETOR RESULTANTE DA OPERACAO}
vc[2]:= (va[3]*vb[1] - vb[3]*va[1]);
vc[3]:= (va[1]*vb[2] - vb[1]*va[2]);
writeln;
writeln('O PRODUTOR VETORIAL ENTRE A E B EH:');
writeln('(',vc[1]:4:4,', ',vc[2]:4:4,', ',vc[3]:4:4,')');
readkey;
end;

{ Produto Misto }

procedure misto;
var
va,vb,vc,vx,prod: array[1..3] of real;
soma: real;

begin
clrscr;
writeln('OS VETORES DEVEM SER DA FORMA (A1,A2,A3), (B1,B2,B3), (C1,C2,C3)');
writeln;
writeln('VALE RESSALTAR QUE PRIMEIRO SE CALCULA O PRODUTO VETORIAL DEPOIS O INTERNO');
writeln;
writeln('PRESSIONE UMA TECLA PARA CONTINUAR');
readkey;
clrscr;
writeln('PRODUTO MISTO');
for i:=1 to 3 do
begin
writeln;
writeln('INSIRA O COEFICIENTE A',i);
read(va[i]); {LEITURA DOS COEFICIENTES DE A}
end;
for i:=1 to 3 do
begin
writeln;
writeln('INSIRA O COEFICIENTE B',i);
read(vb[i]); {LEITURA DOS COEFICIENTES DE B}
end;
for i:=1 to 3 do
begin
writeln;
writeln('INSIRA O COEFICIENTE C',i);
read(vc[i]); {LEITURA DOS COEFICIENTES DE C}
end;
vx[1]:= (va[2]*vb[3] - vb[2]*va[3]); {PRODUTO VETORIAL}
vx[2]:= (va[3]*vb[1] - vb[3]*va[1]); {VX[I] RECEBE O RESULTADO DO PRODUTO VETORIAL}
vx[3]:= (va[1]*vb[2] - vb[1]*va[2]);
for i:=1 to 3 do
begin
prod[i]:=vx[i]*vc[i];
end;
soma:=0;
for i:=1 to 3 do
begin
soma:= soma + prod[i];
end;
writeln('O VETOR A EH:');                                        {RESULTADO DA OPERACAO}
writeln('(',va[1]:4:4,', ',va[2]:4:4,', ',va[3]:4:4,')');
writeln('O VETOR B EH:');
writeln('(',vb[1]:4:4,', ',vb[2]:4:4,', ',vb[3]:4:4,')');
writeln('O VETOR C EH:');
writeln('(',vc[1]:4:4,', ',vc[2]:4:4,', ',vc[3]:4:4,')');
writeln;
writeln('O PRODUTO MISTO ENTRE OS VETORES A,B E C EH:', soma:4:4);
readkey;
end;

{ Módulo de um Vetor }

procedure modulo;
var
va, vb: array[1..3] of real;
soma, modulo: real;

begin
clrscr;
writeln(' MODULO DE UM VETOR ');
writeln;
writeln(' O VETOR DEVE SER DA FORMA (a1,a2,a3) ');
for i:=1 to 3 do
begin
writeln;
writeln('INSIRA O COEFICIENTE A',i);
read(va[i]); {LEITURA DOS COEFICIENTES DE A}
end;
for i:=1 to 3 do
begin
vb[i]:=va[i]*va[i];
end;
soma:=0;
for i:=1 to 3 do
begin
soma:= soma + vb[i];
end;
modulo:= sqrt(soma);
writeln(' O MODULO DO VETOR INFORMADO E ', modulo:4:4);
readkey;
end;

{ Procedimento para Sair do Programa}

procedure sair;
begin
writeln;
writeln(' FINALIZANDO APLICATIVO ... ');
writeln;
end;

{ Programa Principal }

begin
repeat
clrscr;
writeln(' PARA UTILIZAR ESSE SOFTWARE, ESCOLHA A OPCAO DESEJADA, DIGITE O NUMERO CORRESPONDENTE E TECLE ENTER ');
writeln(' [1] SOMA DE DOIS VETORES ');
writeln(' [2] MULTIPLICACAO DE VETOR POR ESCALAR ');
writeln(' [3] PRODUTO INTERNO ENTRE DOIS VETORES ');
writeln(' [4] PRODUTO VETORIAL ');
writeln(' [5] PRODUTO MISTO ');
writeln(' [6] MODULO DE UM VETOR ');
writeln(' [7] SAIR ');
writeln(' OPCAO: ');
gotoxy(9,10);
read(opc);
case opc of
   '1': soma;
   '2': multiplicacao;
   '3': interno;
   '4': vetorial;
   '5': misto;
   '6': modulo;
   '7': sair;
end;
until ((opc='1000') or (opc='7'));
end.

Scripts recomendados

Método de eliminação de Gauss com pivotamento parcial

GTK em (Free)Pascal

Crivo de Eratóstenes Simples em Pascal

Calculadora Oppensource

Eleição simples


  

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