Você está aqui: Java ::: Dicas & Truques ::: Números Complexos (Complex Numbers) |
Como somar dois números complexos usando Java - A classe NumeroComplexoQuantidade 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 GraphicsQuantidade 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çõesQuantidade 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 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 hexadecimalQuantidade 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 |
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 |