Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear

Como calcular vetor unitário em Python - Python para Física e Engenharia

Quantidade de visualizações: 814 vezes
Um vetor unitário ou versor num espaço vetorial normado é um vetor (mais comumente um vetor espacial) cujo comprimento ou magnitude é 1. Em geral um vetor unitário é representado por um "circunflexo", assim: __$\hat{i}__$.

O vetor normalizado __$\hat{u}__$ de um vetor não zero __$\vec{u}__$ é o vetor unitário codirecional com __$\vec{u}__$.

O termo vetor normalizado é algumas vezes utilizado simplesmente como sinônimo para vetor unitário. Dessa forma, o vetor unitário de um vetor __$\vec{u}__$ possui a mesma direção e sentido, mas magnitude 1. Por magnitude entendemos o módulo, a norma ou comprimento do vetor.

Então, vejamos a fórmula para a obtenção do vetor unitário:

\[\hat{u} = \dfrac{\vec{v}}{\left|\vec{v}\right|}\]

Note que nós temos que dividir as componentes do vetor pelo seu módulo de forma a obter o seu vetor unitário. Por essa razão o vetor nulo não possui vetor unitário, pois o seu módulo é zero, e, como sabemos, uma divisão por zero não é possível.

Veja agora o código Python que pede as coordenadas x e y de um vetor 2D ou R2 e retorna o seu vetor unitário:

# vamos precisar do módulo Math
import math

# função principal do programa
def main():
  # vamos ler os valores x e y
  x = float(input("Informe o valor de x: "))
  y = float(input("Informe o valor de y: "))
     
  # o primeiro passo é calcular a norma do vetor
  norma = math.sqrt(math.pow(x, 2) + math.pow(y, 2))
    
  # agora obtemos as componentes x e y do vetor unitário
  u_x = x / norma
  u_y = y / norma
    
  # mostra o resultado
  print("O vetor unitário é: (x = {0}; y = {1})".format(u_x, u_y))
  
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Informe o valor de x: -4
Informe o valor de y: 6
O vetor unitário é: (x = -0.5547001962252291; y = 0.8320502943378437)

Veja agora uma modificação deste código para retornarmos o vetor unitário de um vetor 3D ou R3, ou seja, um vetor no espaço:

# vamos precisar do módulo Math
import math

# função principal do programa
def main():
  # vamos ler os valores x, y e z
  x = float(input("Informe o valor de x: "))
  y = float(input("Informe o valor de y: "))
  z = float(input("Informe o valor de z: "))
     
  # o primeiro passo é calcular a norma do vetor
  norma = math.sqrt(math.pow(x, 2) + math.pow(y, 2) + math.pow(z, 2))
    
  # agora obtemos as componentes x, y e z do vetor unitário
  u_x = x / norma
  u_y = y / norma
  u_z = z / norma
    
  # mostra o resultado
  print("O vetor unitário é: (x = {0}; y = {1}; z = {2})".format(
    u_x, u_y, u_z))
  
if __name__== "__main__":
  main()

Ao executarmos este novo código nós teremos o seguinte resultado:

Informe o valor de x: 3
Informe o valor de y: 7
Informe o valor de z: 5
O vetor unitário é: (x = 0.329292779969071; y = 0.7683498199278324; z = 0.5488212999484517)


PHP ::: Dicas & Truques ::: Data e Hora

PHP para iniciantes - Como converter segundos para horas no formato HH:MM:SS usando a função gmdate() do PHP

Quantidade de visualizações: 188 vezes
Nesta dica mostrarei o uso da função gmdate() da linguagem PHP para convertermos, de forma bem rápida, um determinado número de segundos em horas no formato HH:MM:SS. É claro que há uma infinidade de formas de se fazer isso em PHP. Porém, essa é uma das mais simples, pois não exige nenhum cálculo.

Veja o código completo para o exemplo:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>

<?php
  $segundos = 134;
  echo "$segundos segundos equivale a " .
    gmdate("H:i:s", $segundos);
?>
 
</body>
</html>

Ao executar este código nós teremos o seguinte resultado:

134 segundos equivale a 00:02:14


C# ::: Coleções (Collections) ::: List<T>

Como inserir um novo elemento em uma posição N de uma List<T> do C# usando a função Insert()

Quantidade de visualizações: 9081 vezes
Em algumas situações gostaríamos de inserir um novo elemento em uma determinada posição de uma List<T>, ou seja, queremos ser capazes de inserir o novo elemento em qualquer posição, e não somente no final da lista. Para isso podemos usar o método Insert(). Veja sua assinatura:

public void Insert(
  int index,
  T item
)
Veja que só precisamos fornecer o índice no qual o elemento será inserido e o elemento em si. Veja um exemplo:

static void Main(string[] args){
  // vamos criar um objeto da classe List<T>
  List<int> valores = new List<int>();

  // vamos inserir quatro valores na lista
  valores.Add(5);
  valores.Add(2);
  valores.Add(6);
  valores.Add(9);

  // vamos usar o laço foreach para percorrer os elementos na lista
  Console.WriteLine("Elementos na lista:");
  foreach(int v in valores){
    Console.WriteLine(v);    
  }

  // vamos inserir um novo elemento no índice 2
  valores.Insert(2, 20);

  // vamos usar o laço foreach para percorrer os elementos na lista novamente
  Console.WriteLine("Elementos na lista:");
  foreach(int v in valores){
    Console.WriteLine(v);    
  }

  // vamos pausar a execução
  Console.ReadKey();
}

Ao executarmos este código teremos o seguinte resultado:

Elementos na lista:
5
2
6
9
Elementos na lista:
5
2
20
6
9

Este método pode lançar uma exceção do tipo ArgumentOutOfRangeException se o índice fornecido for menor que 0 ou superior à quantidade de itens na lista.


JavaScript ::: Dicas & Truques ::: Algorítmos Úteis

Como testar se uma palavra (ou frase) é palíndroma em JavaScript

Quantidade de visualizações: 11756 vezes
Palíndromo é uma palavra, frase ou número que permanece igual quando lida de trás para diante. Por extensão, palíndromo é qualquer série de elementos com simetria linear, ou seja, que apresenta a mesma sequência de unidades nos dois sentidos.

Uma palavra palíndroma é aquela cuja sequência de letras é simétrica, permitindo uma leitura idêntica da esquerda para a direita ou da direita para a esquerda: ovo, osso, reler, anilina.

Veja um código JavaScript que pede para o usuário informar um palavra e, em seguida, informa se a palavra é palíndroma ou não:

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; 
  charset=iso-8859-1" />
<title>Estudos JavaScript</title>
</head>
<body>
  
<script type="text/javascript">
  function palin(pal){
    var palindroma = true;
    pal = pal.toUpperCase();
  
    for(var i = 0; i < (pal.length / 2); i++){
      if(pal.charAt(i) != pal.charAt(pal.length - i - 1)){
        palindroma = false;
      }
    }
	
    return palindroma;
  }
  
  // testa se uma palavra é palindroma
  var palavra = window.prompt("Informe a palavra", 
    "palavra");
  if(palin(palavra)){
    alert("Esta palavra é palindroma");
  }
  else{
    alert("Esta palavra NÃO é palindroma"); 
  }
</script>
   
</body>
</html>



Python ::: Python para Engenharia ::: Unidades de Medida

Como converter Metros Quadrados em Quilômetros Quadrados em Python - Python para Física e Engenharia

Quantidade de visualizações: 403 vezes
Em muitas situações nós temos uma medida de área em m2 e queremos transformá-la em km2, ou seja, converter Metros Quadrados para Quilômetros Quadrados. Para isso só precisamos dividir os metros quadrados por 1.000.000.

Veja a fórmula:

\[\text{Quilômetros Quadrados} = \frac{\text{Metros Quadrados}}{1.000.000} \]

Agora veja o código Python que pede para o usuário informar a medida de área em metros quadrados e a converte para quilômetros quadrados. Note que mostrei como exibir o resultado em notação científica e sem notação científica:

# função principal do programa
def main():
  # vamos ler a medida em metros quadrados
  m_quadrados = float(input("Informe os metros quadrados: "))
  
  # agora calculamos os quilômetros quadrados
  km_quadrados = m_quadrados / 1000000.00
    
  # e mostramos o resultado
  print("Você informou {0} metros quadrados.".format(m_quadrados))
  print("Isso equivale a {0} quilômetros quadrados.".format(km_quadrados))
  print(f"Sem notação científica: {km_quadrados:.6f}")
  
if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Informe os metros quadrados: 80
Você informou 80.0 metros quadrados.
Isso equivale a 8.0E-5 quilômetros quadrados.
Sem notação científica: 0,000080


PHP ::: Fundamentos da Linguagem ::: Tipos de Dados

Como usar o tipo de dados object da linguagem PHP

Quantidade de visualizações: 7844 vezes
O PHP, especialmente a partir da versão 5.0, suporta a programação orientada a objetos (OOP). A programação OOP promove um design modular limpo, simplifica a depuração e manutenção e facilita a reutilização de códigos.

As classes são os pontos cruciais de um design orientado a objetos. Uma classe é uma definição de uma estrutura que contém propriedades (variáveis) e métodos (funções). Classes são definidas com a palavra-chave class:

class Pessoa{
  public $nome = '';

  function nome($novo_nome = NULL){
    if(!is_null($novo_nome)){
      $this->nome = $novo_nome;
    }
    
    return $this->nome;
  }
}

Uma vez que uma classe é definida, qualquer número de objetos podem ser construídos a partir dela por meio do uso da palavra-chave new, e as propriedades e métodos do objeto podem ser acessadas com a construção ->. Veja:

  $pessoa = new Pessoa;
  $pessoa->nome('Osmar J. Silva');
  printf("Olá, %s<br>", $pessoa->nome);

Se quisermos saber se uma variável é do tipo object, podemos usar a função is_object(). Veja:

<?  
  class Pessoa{
    public $nome = '';

    function nome($novo_nome = NULL){
      if(!is_null($novo_nome)){
        $this->nome = $novo_nome;
      }
    
      return $this->nome;
    }
  }
  
  $pessoa = new Pessoa;

  if(is_object($pessoa)){
    echo 'A variável $pessoa é do tipo object.';
  }
?>

Ao executarmos este código PHP nós teremos o seguinte resultado:

A variável $pessoa é do tipo object.


Python ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como embaralhar os elementos de um array em Python usando random.shuffle()

Quantidade de visualizações: 1207 vezes
Nesta dica mostrarei como podemos embaralhar a ordem dos elementos de uma lista do Python. Para isso usaremos o método shuffle() do módulo random. Este método muda a ordem dos elementos no vetor original.

Veja o código completo para o exemplo:

# vamos importar o módulo random
import random

# função principal do programa
def main():
  # vamos criar uma lista de números inteiros
  numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  # vamos mostrar o vetor original
  print("Ordem original: {0}".format(numeros))
  
  # agora vamos embaralhar a ordem dos elementos da lista
  random.shuffle(numeros)
  # e mostramos o resultado
  print("Após o embaralhamento: {0}".format(numeros))

if __name__== "__main__":
  main()

Ao executar este código Python nós teremos o seguinte resultado:

Ordem original: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Após o embaralhamento: [3, 10, 6, 8, 9, 5, 7, 4, 1, 2]


Java ::: Coleções (Collections) ::: Set (Conjunto)

Java Collections - Como usar a interface Set em seus códigos Java

Quantidade de visualizações: 5126 vezes
A interface Set estende a interface Collection mas não adiciona novos métodos ou constantes. Em vez disso, esta interface define que uma instância de Set não contenha elementos duplicados. Esta responsabilidade é transferida para as classes que implementam a interface.

A classe abstrata AbstractSet é uma classe de conveniência que herda da classe também abstrata AbstractCollection e implementa a interface Set. A classe AbstractSet fornece implementações concretas para os métodos equals() e hashCode(). Estes métodos permitem a funcionalidade da não permissão de elementos duplicados nos conjuntos.

As classes concretas mais conhecidas da interface Set são:

HashSet - Esta classe é implementada em cima de uma tabela hash, ou seja, um array (matriz) na qual os elementos são armazenados em posições calculadas de acordo com o seu conteúdo. Uma característica interessante de HashSet é que os elementos raramente são retornados na mesma ordem na qual foram inseridos.

LinkedHashSet - Esta classe estende a classe HashSet com uma implementação de lista ligada (linked list) que permite a ordenação dos elementos no conjunto.

TreeSet - Esta classe é uma classe concreta que implementa a interface SortedSet. A interface SortedSet é uma sub-interface de Set que garante que os elementos no conjunto estejam ordenados. Além disso, esta interface fornece os métodos first() e last() para acessar o primeiro e o último elemento do conjunto. Há ainda os métodos headSet(toElement) e tailSet(fromElement) para retornar uma faixa do conjunto cujos elementos sejam "menores" que toElement e "maiores" que fromElement.

Seja qual for a implementação de Set que você queira usar, é sempre uma boa idéia codificar em cima da interface. Isso facilita a troca de HashSet por TreeSet ou vice-versa sem grandes modificações no seu código.

Veja um exemplo no qual usamos a classe concreta HashSet para representar um conjunto de cinco strings únicas:

package estudos;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Estudos{
  public static void main(String[] args) {
    // vamos criar uma instância da classe HashSet
    Set<String> conjunto = new HashSet<>();
    
    // vamos inserir cinco elementos no Set
    conjunto.add("Açucar");
    conjunto.add("Macarrão");
    conjunto.add("Feijão");
    conjunto.add("Carne");
    conjunto.add("Maionese");
    
    // vamos exibir os elementos inseridos
    Iterator iterator = conjunto.iterator();
    while(iterator.hasNext()){
      System.out.println(iterator.next());
    }
  }
}


Ao executar este trecho de código teremos um resultado parecido com:

Macarrão
Feijão
Carne
Açucar
Maionese

Note que raramente os elementos serão exibidos na ordem na qual eles foram inseridos. Experimente agora trocar a linha:

Set<String> conjunto = new HashSet<>();

por

Set<String> conjunto = new LinkedHashSet<>();

Execute o código novamente e verá que agora os elementos são exibidos na mesma ordem que foram inseridos.


JavaScript ::: Dicas & Truques ::: Cookies

Cookies em JavaScript - Como obter o valor de um cookie usando JavaScript

Quantidade de visualizações: 106 vezes
Nesta dica eu mostro como podemos escrever uma função JavaScript chamada obterCookie() que recebe o nome de um cookie e retorna o seu valor. Veja que, se o cookie com o nome informado não existir, o valor null é retornado.

Veja o código JavaScript completo, incluindo o código HTML:

<html>
<head>
<title>Estudando JavaScript</title>

<script type="text/javascript">
  // função que permite obter um cookie
  function obterCookie(nome){    
    if(document.cookie.length > 0){
      c_start = document.cookie.indexOf(nome + "=");
      if(c_start != -1){ 
        c_start = c_start + nome.length + 1; 
        c_end = document.cookie.indexOf(";", c_start);
        if(c_end == -1){
          c_end = document.cookie.length;
        }
        
        return unescape(document.cookie.substring(
          c_start, c_end));
      } 
    }
    return null;
  }
</script>

</head>
<body>

<script type="text/javascript">
  // verifica se o cookie "nome_visitante" existe
  // e obtém seu valor
  var nome_visitante = obterCookie('nome_visitante');
  if(nome_visitante != null){
    document.writeln("O cookie nome_visitante existe. " + 
      "Seu valor é: " + nome_visitante);
  }
  else{
    document.writeln("O cookie nome_visitante não existe");
  }
</script>
 
</body>
</html>

Ao executar este código JavaScript nós teremos o seguinte resultado:

O cookie nome_visitante existe. Seu valor é: Osmar


JavaScript ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como inverter a ordem dos elementos de um array em JavaScript - Vetores e matrizes em JavaScript

Quantidade de visualizações: 11354 vezes
Em algumas situações nós precisamos inverter a ordem dos elementos em um vetor (array) em JavaScript. Para isso nós podemos usar o método reverse() do objeto Array.

Veja o código JavaScript completo para o exemplo, incluindo o documento HTML:

<html>
<head>
<title>Estudando JavaScript</title>
</head>
<body>

<script type="text/javascript">
  var valores = new Array(1, 2, 3, 4, 5);
  document.write("Valores no vetor: " + valores + "<br>");
  valores.reverse();
  document.write("Fiz uma chamada ao método reverse()<br>");
  document.write("Valores no vetor: " + valores);
</script>
 
</body>
</html>

Ao executarmos este código nós teremos o seguinte resultado:

Valores no vetor: 1,2,3,4,5
Fiz uma chamada ao método reverse()
Valores no vetor: 5,4,3,2,1

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 22 usuários muito felizes estudando em nosso site.