Você está aqui: JavaScript ::: JavaScript para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a norma ou módulo de vetores nos espaços R2 e R3 usando JavaScript - Geometria Analítica e Álgebra Linear usando JavaScriptQuantidade de visualizações: 1941 vezes |
Em Geometria Analítica e Álgebra Linear, a magnitude, norma, comprimento, tamanho ou módulo (também chamado de intensidade na Física) de um vetor é o seu comprimento, que pode ser calculado por meio da distância de seu ponto final a partir da origem, no nosso caso (0,0). Considere o seguinte vetor no plano, ou seja, no espaço bidimensional, ou R2: \[\vec{v} = \left(7, 6\right)\] Aqui este vetor se inicia na origem (0, 0) e vai até as coordenadas (x = 7) e (y = 6). Veja sua plotagem no plano 2D: Note que na imagem já temos todas as informações que precisamos, ou seja, o tamanho desse vetor é 9 (arredondado) e ele faz um ângulo de 41º (graus) com o eixo x positivo. Em linguagem mais adequada da trigonometria, podemos dizer que a medida do cateto oposto é 6, a medida do cateto adjacente é 7 e a medida da hipotenusa (que já calculei para você) é 9. Note que já mostrei também o ângulo theta (__$\theta__$) entre a hipotenusa e o cateto adjacente, o que nos dá a inclinação da reta representada pelos pontos (0, 0) e (7, 6). Relembrando nossas aulas de trigonometria nos tempos do colegial, temos que o quadrado da hipotenusa é a soma dos quadrados dos catetos, ou seja, o Teorema de Pitágoras: \[a^2 = b^2 + c^2\] Como sabemos que a potenciação é o inverso da radiciação, podemos escrever essa fórmula da seguinte maneira: \[a = \sqrt{b^2 + c^2}\] Passando para os valores x e y que já temos: \[a = \sqrt{7^2 + 6^2}\] Podemos comprovar que o resultado é 9,21 (que arredondei para 9). Não se esqueça da notação de módulo ao apresentar o resultado final: \[\left|\vec{v}\right| = \sqrt{7^2 + 6^2}\] E aqui está o código JavaScript que nos permite informar os valores x e y do vetor e obter o seu comprimento, tamanho ou módulo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <html> <head> <title>Estudos JavaScript</title> </head> <body> <script type="text/javascript"> // vamos declarar os valores x e y var x = 7; var y = 6; // vamos calcular a norma do vetor var norma = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)); // mostra o resultado document.writeln("A norma do vetor é: " + norma); </script> </body> </html> Ao executar este código JavaScript nós teremos o seguinte resultado: A norma do vetor é: 9.219544457292887 Novamente note que arredondei o comprimento do vetor para melhor visualização no gráfico. Para calcular a norma de um vetor no espaço, ou seja, no R3, basta acrescentar o componente z no cálculo. |
Link para compartilhar na Internet ou com seus amigos: |
Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a distância entre dois pontos no plano em Java - Java para Geometria Analítica e Álgebra LinearQuantidade de visualizações: 5614 vezes |
Como calcular a Distância Euclidiana entre dois pontos usando Java. Em várias aplicações envolvendo geometria, principalmente no desenvolvimento de jogos em Java, é comum nos depararmos com a necessidade de calcular a distância entre dois pontos A e B. Nessa dica mostrarei como efetuar esse cálculo no R2, ou seja, no plano. Em outra dica eu abordo o cálculo no R3 (espaço). Comece analisando a imagem abaixo: Veja que temos um ponto A (x = 3; y = 6) e um ponto B (x = 9; y = 4). Para determinarmos a distância entre esses dois pontos no plano cartesiano, temos que realizar a análise tanto no sentido do eixo das abscissas (x) quanto no do eixo das ordenadas (y). Veja a fórmula: \[d_{AB} = \sqrt{\left(x_b - x_a\right)^2 + \left(y_b - y_a\right)^2}\] Agora, jogando os valores dos dois pontos da fórmula nós teremos: \[d_{AB} = \sqrt{\left(9 - 3\right)^2 + \left(6 - 4\right)^2}\] Que resulta em 6,32 (aproximadamente). E agora veja o código Java completo que lê as coordenadas dos dois pontos e mostra a distância entre eles: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; import java.util.Scanner; public class Estudos{ public static void main(String args[]){ Scanner entrada = new Scanner(System.in); // vamos ler os dados do primeiro ponto System.out.print("Informe o x do primeiro ponto: "); double x1 = Double.parseDouble(entrada.nextLine()); System.out.print("Informe o y do primeiro ponto: "); double y1 = Double.parseDouble(entrada.nextLine()); // vamos ler os dados do segundo ponto System.out.print("Informe o x do segundo ponto: "); double x2 = Double.parseDouble(entrada.nextLine()); System.out.print("Informe o y do segundo ponto: "); double y2 = Double.parseDouble(entrada.nextLine()); // vamos obter a distância entre eles double distancia = distancia2d(x1, y1, x2, y2); System.out.println("Distância entre os dois pontos: " + distancia); } // função que permite calcular a distância // entre dois pontos no plano (R2) public static double distancia2d(double x1, double y1, double x2, double y2){ double a = x2 - x1; double b = y2 - y1; double c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2)); return c; } } Ao executarmos este código nós teremos o seguinte resultado: Informe o x do primeiro ponto: 3 Informe o y do primeiro ponto: 6 Informe o x do segundo ponto: 9 Informe o y do segundo ponto: 4 Distância entre os dois pontos: 6.324555320336759 |
Delphi ::: VCL - Visual Component Library ::: TStringGrid |
Como usar o controle TStringGrid em suas aplicações Delphi - O componente TStringGrid do DelphiQuantidade de visualizações: 18705 vezes |
Um objeto da classe TStringGrid representa um controle de grid que pode ser usado em suas aplicações Delphi para simplificar o processo de se lidar com strings e objetos associados a esta. Veja a posição desta classe na hierarquia de classes do Delphi:System.TObject Classes.TPersistent Classes.TComponent Controls.TControl Controls.TWinControl Controls.TCustomControl Grids.TCustomGrid Grids.TCustomDrawGrid Grids.TDrawGrid Grids.TStringGrid Esta classe implementa também as interfaces IInterfaceComponentReference e IInterface. O uso mais frequente de um controle TStringGrid é quando queremos apresentar um conteúdo texto em um formato tabular. Este controle fornece muitas propriedades para controlar a aparência da grid, assim como eventos e métodos que tiram vantagem da organização tabular da grid ao responder às ações do usuário. Para adicionar um controle TStringGrid ao seu formulário você só precisa acessar a aba Additional no Tool Palette, clicar no controle e arrastá-lo para a posição desejada no formulário. Por padrão, um controle TStringGrid contém 5 linhas e 5 colunas. Novas linhas e novas colunas podem ser adicionadas por meio das propriedades RowCount e ColCount da classe TCustomGrid. Cada célula da grid pode ter seu valor definido ou acessado usando-se a propriedade Cells. Veja um trecho de código no qual definimos o conteúdo da célula situada na segunda linha da primeira coluna do TStringGrid: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- procedure TForm1.Button1Click(Sender: TObject); begin // vamos definir o conteúdo da célula na segunda linha // da primeira coluna da grid StringGrid1.Cells[0, 1] := 'Osmar J. Silva'; end; Um controle TStringGrid introduz a possibilidade de associar um objeto com cada string na grid. Estes objetos podem encapsular quaisquer informações ou comportamento representado pelas strings apresentadas ao usuário. Se as strings a serem apresentadas na grid representarem valores de campos dos registros de um conjunto de dados (dataset), devemos usar um TDBGrid em vez de um TStringGrid. |
PHP ::: PHP + MySQL ::: MySQL Improved Extension (mysqli) |
Como estabelecer uma conexão PHP + MySQL (Improved Extension (mysqli)) no modo Programação Orientada a Objetos - AtualizadoQuantidade de visualizações: 9835 vezes |
Nesta dica eu mostro como fazer uma conexão PHP + MySQL usando a extensão mysqli no modo POO (Programação Orientada a Objetos). Este modelo difere do modelo procedimental porque, em orientação a objetos, nós criamos um novo objeto da classe mysqli, em vez de simplesmente chamar a função mysqli_connect(). Veja o código completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- <? // constrói um novo objeto mysqli chamado conexao $conexao = new mysqli("localhost", "root", "osmar1234", "estudos"); // testa se a conexão foi efetuada com sucesso if(mysqli_connect_errno()){ die("Houve um erro de conexão: " . mysqli_connect_error()); } else{ print "Conexão com " . $conexao->host_info . " efetuada com sucesso."; } // fecha a conexão com o banco de dados $conexao->close(); // fecha a conexão ?> Se os parâmetros de conexão estiverem corretos, o seguinte resultado será exibido: Conexão com localhost via TCP/IP efetuada com sucesso. Esta dica foi revisada e atualizada para o PHP 8. |
Java ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Java Insertion Sort - Como ordenar um vetor de inteiros usando a ordenação Insertion Sort (Ordenação por Inserção)Quantidade de visualizações: 4268 vezes |
A ordenação Insertion Sort, Insertion-Sort, ou Ordenação por Inserção, possui uma complexidade de tempo de execução igual à ordenação Bubble Sort (Ordenação da Bolha), ou seja, O(n2). Embora mais rápido que o Bubble Sort, e ser um algorítmo de ordenação quadrática, a ordenação Insertion Sort é bastante eficiente para problemas com pequenas entradas, sendo o mais eficiente entre os algoritmos desta ordem de classificação, porém, nunca recomendada para um grande conjunto de dados. A forma mais comum para o entendimento da ordenação Insertion Sort é compará-la com a forma pela qual algumas pessoas organizam um baralho num jogo de cartas. Imagine que você está jogando cartas. Você está com as cartas na mão e elas estão ordenadas. Você recebe uma nova carta e deve colocá-la na posição correta da sua mão de cartas, de forma que as cartas obedeçam à ordenação. A cada nova carta adicionada à sua mão de cartas, a nova carta pode ser menor que algumas das cartas que você já tem na mão ou maior, e assim, você começa a comparar a nova carta com todas as cartas na sua mão até encontrar sua posição correta. Você insere a nova carta na posição correta, e, novamente, a sua mão é composta de cartas totalmente ordenadas. Então, você recebe outra carta e repete o mesmo procedimento. Então outra carta, e outra, e assim por diante, até não receber mais cartas. Esta é a ideia por trás da ordenação por inserção. Percorra as posições do vetor (array), começando com o índice 1 (um). Cada nova posição é como a nova carta que você recebeu, e você precisa inseri-la no lugar correto no sub-vetor ordenado à esquerda daquela posição. Vamos ver a implementação na linguagem Java agora? Observe o seguinte código, no qual temos um vetor de inteiros com os elementos {4, 6, 2, 8, 1, 9, 3, 0, 11}: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ // método que permite ordenar o vetor de inteiros // usando a ordenação Insertion Sort public static void insertionSort(int[] vetor){ // percorre todos os elementos do vetor começando // pelo segundo elemento for(int i = 1; i < vetor.length; i++){ int atual = vetor[i]; // o valor atual a ser inserido // começa a comparar com a célula à esquerda de i int j = i - 1; // enquanto vetor[j] estiver fora de ordem em relação // a atual while((j >= 0) && (vetor[j] > atual)){ // movemos vetor[j] para a direita e decrementamos j vetor[j + 1] = vetor[j]; j--; } // colocamos atual em seu devido lugar vetor[j + 1] = atual; } } public static void main(String args[]){ // vamos criar um vetor com 9 elementos int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11}; // exibimos o vetor na ordem original System.out.println("Ordem original:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } // vamos ordenar o vetor agora insertionSort(valores); // exibimos o vetor ordenado System.out.println("\n\nOrdenado:\n"); for(int i = 0; i < valores.length; i++){ System.out.print(valores[i] + " "); } } } Ao executar este código Java nós teremos o seguinte resultado: Sem ordenação: 4 6 2 8 1 9 3 0 11 Ordenada usando Insertion Sort: 0 1 2 3 4 6 8 9 11 |
GoLang ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas |
Como calcular a equação reduzida da reta em GoLang dados dois pontos pertencentes à retaQuantidade de visualizações: 654 vezes |
Nesta dica de Go veremos como calcular a equação reduzida da reta quando temos dois pontos pertencentes à esta reta. Não, nessa dica não vamos calcular a equação geral da reta, apenas a equação reduzida. Em outras dicas do site você encontra como como isso pode ser feito. Para relembrar: a equação reduzida da reta é y = mx + n, em que x e y são, respectivamente, a variável independente e a variável dependente; m é o coeficiente angular, e n é o coeficiente linear. Além disso, m e n são números reais. Com a equação reduzida da reta, é possível calcular quais são os pontos que pertencem a essa reta e quais não pertencem. Vamos começar então analisando a seguinte figura, na qual temos dois pontos que pertencem à uma reta: Note que a reta da figura passa pelos pontos A(5, 5) e B(9, 2). Então, uma vez que já temos os dois pontos, já podemos calcular a equação reduzida da reta. Veja o código GoLang completo para esta tarefa: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // pacote principal package main // vamos importar o módulo de formatação de // entrada e saída import "fmt" // esta é a função principal do programa func main() { // variáveis que vamos usar na resolução do problema var x1, y1, x2, y2, m, n float32 var sinal string // vamos ler as coordenadas do primeiro ponto fmt.Print("Coordenada x do primeiro ponto: ") fmt.Scanln(&x1) fmt.Print("Coordenada y do primeiro ponto: ") fmt.Scanln(&y1) // vamos ler as coordenadas do segundo ponto fmt.Print("Coordenada x do segundo ponto: ") fmt.Scanln(&x2) fmt.Print("Coordenada y do segundo ponto: ") fmt.Scanln(&y2) sinal = "+" // vamos calcular o coeficiente angular da reta m = (y2 - y1) / (x2 - x1) // vamos calcular o coeficiente linear n = y1 - (m * x1) // coeficiente linear menor que zero? O sinal será negativo if n < 0 { sinal = "-" n = n * -1 } // mostra a equação reduzida da reta fmt.Printf("Equação reduzida: y = %.2fx %s %.2f", m, sinal, n); } Ao executar este código GoLang nós teremos o seguinte resultado: Coordenada x do primeiro ponto: 5 Coordenada y do primeiro ponto: 5 Coordenada x do segundo ponto: 9 Coordenada y do segundo ponto: 2 Equação reduzida: y = -0,75x + 8,75 Para testarmos se nossa equação reduzida da reta está realmente correta, considere o valor 3 para o eixo x da imagem acima. Ao efetuarmos o cálculo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- >> y = (-0.75 * 3) + 8.75 y = 6.5000 temos o valor 6.5 para o eixo y, o que faz com que o novo ponto caia exatamente em cima da reta considerada na imagem. |
Veja mais Dicas e truques de GoLang |
Dicas e truques de outras linguagens |
JavaScript - Como converter uma string em um valor de ponto-flutuante em JavaScript usando a função parseFloat() |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |