Você está aqui: Java ::: Dicas & Truques ::: Números Complexos (Complex Numbers)

Como somar dois números complexos usando Java - A classe NumeroComplexo

Quantidade de visualizações: 1295 vezes
Nesta dica mostrarei como tirar proveito da programação orientada a objetos em Java para criar uma classe NumeroComplexo e efetuar a soma de dois números complexos.

Um número complexo na forma retangular (ou forma algébrica) apresenta o seguinte formato:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

7 + j5 ou 7 + 5j

onde 7 é a parte real e 5 é a parte imaginária. Note que usei a notação "j" em vez de "i" para a parte imaginária, uma vez que a notação "j" é a mais comum na engenharia.

O primeiro passo é criar a classe NumeroComplexo, que servirá para representarmos a parte real e a parte imaginária. Veja o código:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

public class NumeroComplexo {
  private double real; // parte real
  private double imaginaria; // parte imaginária

  // construtor padrão
  public NumeroComplexo() {
  }

  // construtor adicional da classe NumeroComplexo
  public NumeroComplexo(double real, double imaginaria) {
    this.real = real;
    this.imaginaria = imaginaria;
  }

  // método estático que recebe dois números complexo
  // e retorna sua soma, também como um número complexo
  public static NumeroComplexo somar(NumeroComplexo a, NumeroComplexo b){
    // variável temporária
    NumeroComplexo temp = new NumeroComplexo();
 
    // primeira somamos as partes reais dos dois
    // números complexos
    temp.setReal(a.getReal() + b.getReal());
    
    // em seguida somamos as partes imaginárias dos dois
    // números complexos
    temp.setImaginaria(a.getImaginaria() + b.getImaginaria());
    
    // finalmente retornamos o novo número complexo
    return temp;
  }
  
  // mostra a representação textual do número complexo
  @Override
  public String toString(){
    if(this.imaginaria < 0){
      return this.real + " - j" + Math.abs(this.imaginaria);
    }
    else{
      return this.real + " + j" + this.imaginaria;
    }
  }
  
  public double getReal() {
    return real;
  }

  public void setReal(double real) {
    this.real = real;
  }

  public double getImaginaria() {
    return imaginaria;
  }

  public void setImaginaria(double imaginaria) {
    this.imaginaria = imaginaria;
  }  
}

Note que esta classe Java possui boa parte dos conhecimentos comuns da programação orientada a objetos: construtores, método estático, encapsulamento de dados e sobrecarga do método toString() para exibir a representação textual do número complexo.

Veja agora o código da classe principal, na qual pedimos para o usuário informar dois números complexos e efetuamos a sua soma:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos{
  public static void main(String[] args){
    // vamos usar a classe Scanner para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos ler a parte real e a parte imaginária do primeiro
    // número complexo
    System.out.print("Parte real do primeiro número: ");
    double realPrimeiro = Double.parseDouble(entrada.nextLine());
    System.out.print("Parte imaginária do primeiro número: ");
    double imagPrimeiro = Double.parseDouble(entrada.nextLine());
    
    // vamos ler a parte real e a parte imaginária do segundo
    // número complexo
    System.out.print("Parte real do segundo número complexo: ");
    double realSegundo = Double.parseDouble(entrada.nextLine());
    System.out.print("Parte real do segundo número complexo: ");
    double imagSegundo = Double.parseDouble(entrada.nextLine());
    
    // agora criamos os dois números complexos
    NumeroComplexo a = new NumeroComplexo(realPrimeiro, imagPrimeiro);
    NumeroComplexo b = new NumeroComplexo(realSegundo, imagSegundo);
    
    // obtemos a soma dos números complexos
    NumeroComplexo soma = NumeroComplexo.somar(a, b);
    
    // para finalizar mostramos os resultados
    System.out.println("Primeiro número complexo: " + a.toString());
    System.out.println("Segundo número complexo: " + b.toString());
    System.out.println("Soma: " + soma.toString());
    
    System.exit(0);
  }
}

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

Parte real do primeiro número: 8
Parte imaginária do primeiro número: -3
Parte real do segundo número complexo: 5
Parte real do segundo número complexo: 9
Primeiro número complexo: 8.0 - j3.0
Segundo número complexo: 5.0 + j9.0
Soma: 13.0 + j6.0

Link para compartilhar na Internet ou com seus amigos:

Java ::: Pacote java.awt ::: Graphics

Como desenhar linhas no Java Swing usando o método drawLine() da classe Graphics

Quantidade de visualizações: 15218 vezes
O método drawLine() da classe Graphics nos permite desenhar linhas retas. Observe atentamente a assinatura deste método:

public abstract void drawLine(int x1,
  int y1, int x2, int y2)


Neste método, os parâmetros x1 e x2 representam as coordenadas iniciais da linha e x2 e y2 representam as coordenadas finais. Veja um trecho de código no qual desenhamos quatro linhas em um JLabel:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Estudos extends JFrame{
  JLabel label;  

  public Estudos() {
    super("Desenhando em um JLabel");
    
    Container c = getContentPane();
    c.setLayout(new BorderLayout());

    // Cria um JLabel
    label = new JLabel();
    c.add(label, BorderLayout.CENTER);

    // Cria um botão
    JButton btn = new 
      JButton("Desenhar Linhas");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          
          Graphics graphics = label.getGraphics();
          
          // desenha linhas no JLabel
          graphics.drawLine(10, 15, 100, 10);
          graphics.drawLine(20, 30, 80, 150);
          graphics.drawLine(50, 50, 120, 30);
          graphics.drawLine(100, 100, 310, 100);    

        }
      }
    );
    
    // Adiciona o botão à janela
    c.add(btn, BorderLayout.SOUTH);

    setSize(350, 250);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

Há algo de interessante neste código. Se você maximizar, minimizar ou redimensionar a janela verá que o desenho é apagado. Isso acontece porque todas as vezes que a janela sofre alguma alteração, ela é pintada novamente, juntamente com seus componentes filhos. Se você deseja que o desenho seja feito automaticamente novamente, é melhor fazer uma sub-classe do componente desejado e sobrescrever seu método paintComponent(). Nesta mesma seção você encontrará exemplos de como fazer isso.


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercícios Resolvidos de Java - Escreva um programa Java que pede para o usuário informar o salário de uma pessoa, o valor de um empréstimo e a quantidade de prestações

Quantidade de visualizações: 12008 vezes
Pergunta/Tarefa:

Escreva um programa Java que pede para o usuário informar o salário de uma pessoa, o valor de um empréstimo e a quantidade de prestações.

Se o valor da prestação for maior que 20% do salário seu código deverá mostrar a mensagem "Empréstimo não pode ser concedido". Se o empréstimo puder ser concedido escreva "Empréstimo pode ser concedido".

Sua saída deve ser parecida com:

Informe o salário: 1350
Informe o valor do empréstimo: 6000
Informe a quantidade de parcelas: 12
O valor das parcelas do empréstimo é: 500.0
Empréstimo não pode ser concedido
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // variáveis usadas na resolução do problema
    double salario, emprestimo, valor_parcela;
    int quant_prestacoes;

    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);  
    
    // vamos ler os dados
    System.out.print("Informe o salário: ");
    salario = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe o valor do empréstimo: ");
    emprestimo = Double.parseDouble(entrada.nextLine());
    System.out.print("Informe a quantidade de parcelas: ");
    quant_prestacoes = Integer.parseInt(entrada.nextLine());
    
    // vamos calcular e mostrar o valor da parcela do empréstimo
    valor_parcela = emprestimo / quant_prestacoes;
    System.out.println("O valor das parcelas do empréstimo é: " +
      valor_parcela);
    
    // o empréstimo pode ser concedido?
    if (valor_parcela > (salario * (20.0 / 100.0))) {
      System.out.println("Empréstimo não pode ser concedido");
    }
    else{
      System.out.println("Empréstimo pode ser concedido");
    }
    
    System.out.println("\n");
  }
}



Java ::: Dicas & Truques ::: Formatação de datas, strings e números

Como usar o método System.out.printf() do Java para converter um valor na base decimal para hexadecimal

Quantidade de visualizações: 10489 vezes
Nesta dica mostrarei como podemos tirar proveito do método System.out.printf() do Java 5.0 em diante para converter um valor na base decimal para hexadecimal e exibí-lo na tela.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    int num = 35;
   
    // exibe o valor na base hexadecimal
    System.out.printf("O decimal %d convertido para hexadecimal é %x", 
      num, num);
  }
}

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

O decimal 35 convertido para hexadecimal é 23


Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Perfil em aço

O perfil de aço apresenta diversas características e uma infinidade de composições que podem permanecer resistentes por meio da conexão de diferentes peças mediante conexões.

A esse respeito, assinale a alternativa que indica corretamente o elemento de conexão de perfis de aço que oferece a possibilidade de união das peças de uma moldura de aço como se fosse um todo monolítico.

A) Rebite.

B) Pinos de alta resistência.

C) Pinos de aço-carbono.

D) Pinos de controle de tensão.

E) Solda.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Formas: Confecção e colocação

Em relação aos materiais utilizados para formas, assinale a alternativa correta.

A) A fibra de vidro é muito utilizada para pilares e vigas.

B) Formas em poliestireno expandido são altamente reaproveitadas.

C) Vidro é muito utilizado para concreto aparente.

D) Tubos de papelão são muito usados em pilares de seção circular e em estruturas com caixão perdido.

E) As tábuas são os materiais que proporcionam o maior reaproveitamento.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Qual é a sintáxe correta para a criação de funções em JavaScript?

A) def calcular(){}

B) function calcular(){}

C) void calcular(){}

D) function:calcular(){}
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Introdução à Ética

Santo Agostinho foi um dos mais influentes pensadores cristãos da antiguidade, e abordava em suas obras questões éticas baseadas na compreensão da natureza da ética e sua ligação com a religião. Os textos de Santo Agostinho buscavam conciliar a filosofia greco-romana e os princípios do cristianismo, oferecendo uma leitura racionalizada da religião, sem descaracterizar a ideia de sobrenatural e de fé. Suas reflexões sobre o livre-arbítrio, a existência e a percepção do mal e a busca pela virtude pelos humanos foram base para reflexões filosóficas do iluminismo à contemporaneidade.

Considerando essas informações, qual dos seguintes temas éticos direciona as reflexões de Santo Agostinho?

A) Hedonismo: defesa da busca pelo prazer como o caminho para a realização pessoal.

B) Utilitarismo: escolha de ações pela felicidade geral, na maior porcentagem possível.

C) Virtude: defesa da virtude como uma forma de aproximação do fiel à Deus.

D) Existencialismo: compreensão da natureza da existência humana.

E) Niilismo: questionamento da legitimidade de valores morais em contextos mundanos.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Qual é o local correto para a inserção de códigos JavaScript em um documento HTML?

A) Seção <head>

B) Seção <body>

C) Os códigos JavaScript podem ser colocados tanto na seção <head> quanto na seção <body>
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



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