Programa para Cálculo Vetorial
Publicado por Levi Gomes (última atualização em 29/08/2011)
[ Hits: 8.887 ]
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
Nenhum comentário foi encontrado.
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
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Estou com sede em aprender sobre o nosso querido Linux. (1)
big linux sem audio como resolver (2)
Como faz para dar um update-grub por shell script [RESOLVIDO] (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta