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/
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.
{ * 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.
Método de eliminação de Gauss com pivotamento parcial
Crivo de Eratóstenes Simples em Pascal
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)