Programa para Cálculo Vetorial
Publicado por Levi Gomes (última atualização em 29/08/2011)
[ Hits: 8.996 ]
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.
Operações simples e avançadas com matrizes
Crivo de Eratóstenes Simples em Pascal
Nenhum comentário foi encontrado.
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
firefox nao guarda meus logins nos sites (1)
Instalar debian testing (13) "por cima" do debian 12 (2)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (1)