Você está aqui: Java ::: Estruturas de Dados ::: Árvore Binária e Árvore Binária de Busca |
Estruturas de dados em Java - Como retornar a quantidade de nós em uma árvore binária usando JavaQuantidade de visualizações: 2875 vezes |
Em exemplos dessa seção nós vimos como criar árvores binárias e árvores binárias de busca em Java e como pesquisar ou fazer a sua travessia, visitando cada um dos nós. Nesta dica mostrarei como contar os nós da árvore usando um método recursivo. Veja:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // método que permite obter a quantidade de nós na árvore int quantNosArvore(){ // chama a versão recursiva return quantNosArvore(raiz); } int quantNosArvore(No no){ if(no == null){ // condição de parada return 0; } else{ return (quantNosArvore(no.getEsquerdo()) + quantNosArvore(no.getDireito()) + 1); } } Este método faz parte da classe ArvoreBinariaBusca.java. Veja agora como chamá-lo a partir da classe principal, ou seja, a classe de teste: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arvore_binaria; import java.util.Scanner; public class ArvoreBinariaTeste { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos criar um novo objeto da classe ArvoreBinariaBusca ArvoreBinariaBusca arvore = new ArvoreBinariaBusca(); // vamos inserir 5 valores na árvore for(int i = 0; i < 5; i++){ System.out.print("Informe um valor inteiro: "); int valor = Integer.parseInt(entrada.nextLine()); // vamos inserir o nó e verificar o sucesso da operação if(!arvore.inserir(valor)){ System.out.println("Não foi possível inserir." + " Um elemento já contém este valor."); } } // vamos exibir a quantidade de nós na árvore System.out.println("\nA árvore possui: " + arvore.quantNosArvore() + " nós.\n"); System.out.println("\n"); } } Ao executar este código teremos o seguinte resultado: Informe um valor inteiro: 5 Informe um valor inteiro: 2 Informe um valor inteiro: 8 Informe um valor inteiro: 7 Informe um valor inteiro: 31 A árvore possui: 5 nós. |
![]() |
Java ::: Java para Engenharia ::: Física - Hidrodinâmica |
Como representar a Equação da Continuidade em Java - Java para HidrodinâmicaQuantidade de visualizações: 288 vezes |
O que é a Equação da Continuidade? A Hidrodinâmica é a parte da Física que estuda os fluidos em movimento, enquanto a Equação da Continuidade, que é parte da Hidrodinâmica, determina o fluxo de um fluido através de uma área. Esta equação está muito presente quando o assunto é Dinâmica dos Fluidos ou Mecânica dos Fluidos. A Equação da Continuidade é uma consequência direta da Lei da Conservação da Massa. Por meio dessa propriedade, podemos dizer que a quantidade de massa de fluido que atravessa o tubo é a mesma na entrada e na saída. Para melhor entendimento veja a seguinte figura: ![]() Sabendo que a quantidade de água que entra na mangueira deve ser igual à mesma quantidade que sai, ao colocarmos o dedo na saída da mangueira, nós estamos estreitando a área da vazão, o que, consequentemente, aumenta a velocidade da água. Qual é a Fórmula da Equação da Continuidade? Antes de passarmos ao código Java, vamos revisar a Fórmula da Equação da Continuidade. Veja: \[ A_1 \cdot \text{v}_1 = A_2 \cdot \text{v}_2 \] Por meio dessa equação nós entramos com três valores e obtemos um quarto valor. Não se esqueça de que as velocidades são dadas em metros por segundo e as áreas são dadas em metros quadrados (de acordo com o SI - Sistema Internacional de Medidas). Tenha a certeza de efetuar as devidas conversões para não obter resultados incorretos. Vamos escrever código Java agora? A Equação da Continuidade em código Java Para exemplificar como podemos representar a Equação da Continuidade em Java, vamos resolver o seguinte problema? 1) Um fluido escoa a 2 m/s em um tubo de área transversal igual a 200 mm2. Qual é a velocidade desse fluido ao sair pelo outro lado do tubo, cuja área é de 100 mm2? a) 20 m/s b) 4 m/s c) 0,25 m/s d) 1,4 m/s e) 0,2 m/s Note que a velocidade já está em metros por segundo, mas as áreas foram dadas em milímetros quadrados. Por essa razão nós deveremos converter milímetros quadrados em metros quadrados. Veja o código Java completo para a resolução deste exercício de Equação da Continuidade: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { Scanner entrada = new Scanner(System.in); // vamos solicitar os dados de entrada System.out.print("Velocidade de entrada (m/s): "); double v1 = Double.parseDouble(entrada.nextLine()); System.out.print("Área de entrada (milímetros quadrados): "); double a1 = Double.parseDouble(entrada.nextLine()); System.out.print("Área de saída (milímetros quadrados): "); double a2 = Double.parseDouble(entrada.nextLine()); // vamos converter as áreas em milímetros quadrados // para metros quadrados a1 = a1 / 1000000; a2 = a2 / 1000000; // agora calculamos a velocidade de saída double v2 = (a1 * v1) / a2; // e mostramos o resultado System.out.println("A velocidade de saída é: " + v2 + " m/s"); System.out.println("\n"); } } Ao executar este código Java nós teremos o seguinte resultado: Velocidade de entrada (m/s): 2 Área de entrada (milímetros quadrados): 200 Área de saída (milímetros quadrados): 100 A velocidade de saída é: 4.0 m/s Portanto, a velocidade do fluido na saída do tubo é de 4 m/s. |
Java ::: Dicas & Truques ::: Data e Hora |
Como validar uma data em Java usando a classe GregorianCalendarQuantidade de visualizações: 13093 vezes |
Esta dica mostra a você como validar uma data em Java usando a classe GregorianCalendar. Veja que estamos usando o método set() para atribuir valores aos campos ano, mês e dia. Contudo, o valor para o dia está incorreto. Desta forma, ao chamarmos o método getTime() uma exceção do tipo IllegalArgumentException será lançada. Veja o código: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import java.util.*; public class Estudos{ public static void main(String args[]){ try{ GregorianCalendar data = new GregorianCalendar(); data.setLenient(false); data.set(GregorianCalendar.YEAR, 2008); // ano data.set(GregorianCalendar.MONTH, 11); // mês // dia inválido data.set(GregorianCalendar.DATE, 32); // a validação da data ocorre aqui Date temp = data.getTime(); } catch(Exception e){ System.out.println("Data inválida."); e.printStackTrace(); } } } Ao executarmos este código teremos o seguinte resultado: Data inválida. java.lang.IllegalArgumentException: DAY_OF_MONTH at java.util.GregorianCalendar.computeTime(Unknown Source) at java.util.Calendar.updateTime(Unknown Source) at java.util.Calendar.getTimeInMillis(Unknown Source) at java.util.Calendar.getTime(Unknown Source) at Estudos.main(Estudos.java:14) |
Java ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Java para iniciantes - Como usar o laço do-while da linguagem JavaQuantidade de visualizações: 52906 vezes |
O laço do-while é uma variação do laço while. A diferença é que, no laço do-while a condição de continuidade é testada após a execução do bloco de códigos desejado. Isso nos faz crer que este laço é executado no mínimo uma vez. Veja sua sintáxe:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- do{ // bloco de instruções }while(condição); Se a condição testada for verdadeira, o laço continua sua execução. Do contrário a execução do programa segue a partir do ponto onde o laço se encontra. Veja um exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import javax.swing.JOptionPane; public class Estudos{ public static void main(String[] args) { int valor; int soma = 0; // Lê continuamente até o usuário informar 0 do{ // efetua a próxima leitura String str = JOptionPane.showInputDialog(null, "Informe um valor inteiro:\n(ou 0 para sair)", "Estudos", JOptionPane.QUESTION_MESSAGE); valor = Integer.parseInt(str); soma += valor; }while(valor != 0); JOptionPane.showMessageDialog(null, "A soma é: " + soma, "Estudos", JOptionPane.INFORMATION_MESSAGE); } } Use o laço do-while quando você tiver instruções dentro do laço que precisem ser executadas no mínimo uma vez. |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como contar as ocorrências de uma substring em uma string do Java usando o método substring() e um laço forQuantidade de visualizações: 3 vezes |
Nesta dica mostrarei como podemos usar o método substring() da classe String, combinado com o laço for, para contar as ocorrências de uma substring em uma string da linguagem Java. Note que usamos também os métodos length() e equals() para completar a tarefa. Veja o código Java completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; public class Estudos{ public static void main(String[] args){ // vamos criar uma string representando uma frase String frase = "Programar em Java só é melhor que programar em Java"; // a substring que vamos pesquisar String sub = "Java"; // ocorrências de "Java" // quantidade de ocorrências int cont = 0; // um laço for que vai de 0 até o tamanho da primeira string menos // o tamanho da segunda string - 1 for(int i = 0; i < (frase.length() - sub.length() + 1); i++){ String res = frase.substring(i, (i + sub.length())); // encontramos a substring mais uma vez? if(res.equals(sub)){ cont++; } } System.out.println("A frase contém " + cont + " ocorrências de " + sub); // fecha o programa System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: A frase contém 2 ocorrências de Java |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções |
Exercício Resolvido de Java - Escreva uma função Java que recebe três números inteiros e retorna o menor delesQuantidade de visualizações: 947 vezes |
Pergunta/Tarefa: Escreva um programa Java que contenha um método ou função que recebe três números inteiros e retorne o menor deles como um inteiro. Seu método não deve produzir nenhuma saída, apenas retornar o menor número entre os três argumentos fornecidos. Sua saída deverá ser parecida com: Informe o primeiro número: 8 Informe o segundo número: 10 Informe o terceiro número: 7 O menor número é: 7 Veja a resolução comentada deste exercício em Java: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos { public static void main(String[] args) { // para ler a entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar três // números inteiros System.out.print("Informe o primeiro número: "); int n1 = Integer.parseInt(entrada.nextLine()); System.out.print("Informe o segundo número: "); int n2 = Integer.parseInt(entrada.nextLine()); System.out.print("Informe o terceiro número: "); int n3 = Integer.parseInt(entrada.nextLine()); // agora vamos calcular o menor número int menorNumero = menor(n1, n2, n3); // e mostramos o resultado System.out.println("O menor número é: " + menorNumero); } // método que recebe três números e retorna o menor deles public static int menor(int a, int b, int c){ return Math.min(Math.min(a, b), c); } } |
Java ::: Dicas & Truques ::: Formulários e Janelas |
Java Swing para iniciantes - Como definir ou obter o título de uma janela JFrameQuantidade de visualizações: 11073 vezes |
Nesta dica mostrarei como usar o método setTitle() da classe JFrame para definir o título da janela JFrame. Usaremos também o método getTitle() para obter o título da janela. Veja o código Java Swing completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { setSize(350, 250); setVisible(true); // Define o título da janela setTitle("Controle de Estoque"); // obtém o título da janela JOptionPane.showMessageDialog(null, "O título da janela é: " + this.getTitle()); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar este exemplo você verá uma janela JOptionPane com o texto "O título da janela é: Controle de Estoque". |
Java ::: Dicas & Truques ::: Expressões Regulares |
Como remover espaços em excesso de uma string usando expressões regulares em JavaQuantidade de visualizações: 12608 vezes |
Nesta dica mostrarei como é possível usar expressões regulares em Java para remover espaços em excesso de uma string, tanto no início, meio e fim. Note que vamos deixar apenas um espaço entre as palavras da frase. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; import java.util.regex.*; public class Estudos{ public static void main(String args[]){ String padrao = "\\s{2,}"; Pattern regPat = Pattern.compile(padrao); String frase = " Esta frase contém espaços "; Matcher matcher = regPat.matcher(frase); String res = matcher.replaceAll(" ").trim(); System.out.println("Com espaços: " + frase); System.out.println("Sem espçaos: " + res); } } Ao executar este código nós teremos o seguinte resultado: Com espaços: Esta frase contém espaços Sem espaços: Esta frase contém espaços |
Java ::: Classes e Componentes ::: JTextArea |
Java Swing - Como salvar o conteúdo de um JTextArea em um arquivo (usando um JFileChooser para localizar o diretório e arquivo)Quantidade de visualizações: 15716 vezes |
Nesta dica mostrarei como é possível como salvar o conteúdo de um JTextArea em um arquivo texto. Essa operação é muito frequente em aplicações Java Swing. Note que faremos uso de um JFileChooser para localizar o arquivo no qual o conteúdo será gravado, ou poderemos informar o nome do arquivo. Observe também o uso do método write() da classe FileWriter para escrever o conteúdo no arquivo. Para finalizar, perceba que não fiz os devidos tratamentos de erros e as mensagens de sucesso das operações e coisas. Fica como exercício para você finalizar. Veja o código completo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; public class Estudos extends JFrame{ JTextArea textArea; JButton btn; public Estudos() { super("Salvando o conteúdo de um JTextArea em um arquivo"); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.LEFT); c.setLayout(layout); textArea = new JTextArea(10, 20); textArea.setLineWrap(true); btn = new JButton("Salvar Arquivo"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ JFileChooser fc = new JFileChooser(); if(fc.showSaveDialog(Estudos.this) != JFileChooser.APPROVE_OPTION){ return; } File arquivo = fc.getSelectedFile(); if(arquivo == null){ return; } FileWriter writer = null; try { writer = new FileWriter(arquivo); writer.write(textArea.getText()); } catch(IOException ex){ // Possiveis erros aqui } finally { if(writer != null){ try{ writer.close(); } catch (IOException x){ // trate os erros aqui } } } } } ); c.add(textArea); c.add(btn); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Instalação hidrossanitária: fundamentos e definições Durante a execução das instalações hidrossanitárias de uma edificação, você deverá fornecer um documento contendo informações sobre os tipos de materiais que deverão ser adquiridos para essas instalações. Sobre esse documento, assinale a alternativa correta. A) O documento é o perfil isométrico, que descreve e posiciona tecnicamente todos os tipos de materiais a serem empregados na instalação hidrossanitária. B) O documento é o quantitativo de materiais, que traz quantidades e representações gráficas sobre os tipos de materiais a serem empregados na instalação. C) O documento é a norma técnica brasileira, que traz recomendações sobre os tipos de materiais a serem empregados na instalação. D) O documento é o memorial descritivo, que complementa as informações contidas nos demais componentes do projeto hidrossanitária. E) O documento é o memorial de cálculo, que descreve de modo técnico e representa graficamente todos os requisitos dos tipos de materiais a serem empregados na instalação. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Serviços preliminares e instalações provisórias Os canteiros de obras devem dispor obrigatoriamente de: A) Instalações sanitárias. B) Sala de jogos. C) Lavanderia. D) Ambulatório. E) Alojamento. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Vazão de projeto O escoamento livre em condutos é caracterizado por ter uma superfície livre, cuja pressão atuante é a pressão atmosférica. Considere o dimensionamento de um canal de drenagem em terra com vegetação rasteira nos taludes e fundo, possui: taludes 2H: 1V e declividade de fundo (So) de 20cm/km. Ele foi dimensionado para uma determinada vazão de projeto Q, tendo chegado a uma seção com largura de fundo (b) igual a 1,5m e altura da lâmina de água (yo) 1,30m. Determine qual a vazão Q do projeto e indique se a seção é de mínimo perímetro molhado. Dados: 0,025 (cobertura vegetal rasteira). A) Vazão de projeto de 2,45m3/s e satisfaz a condição de mínimo perímetro molhado. B) Vazão de projeto de 2,72m3/s e satisfaz a condição de mínimo perímetro molhado. C) Vazão de projeto de 3,94m3/s e satisfaz a condição de mínimo perímetro molhado. D) Vazão de projeto de 3,54m3/s e não satisfaz a condição de mínimo perímetro molhado. E) Vazão de projeto de 2,99m3/s e não satisfaz a condição de mínimo perímetro molhado. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual a sintaxe correta para mostrar o tipo de uma variável em Python?a = 45 print("O tipo da variável é: {0}".format(______________)) A) typeOf(a) B) Type(a) C) typeof(a) D) type(a) E) type a Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Classificação de turbinas O processo de conversão de energia hidráulica em energia mecânica em uma turbina pode também ser utilizado para uma classificação em turbinas de ação ou de reação. Considerando as turbinas de reação, qual afirmativa está correta? A) As turbinas de reação são similares às de ação e operam com pressão variável. B) As turbinas de reação são as turbinas que têm pressão constante no sistema. C) Nas turbinas de reação, a água tem pressão variando desde a entrada até a saída. D) As turbinas de ação correspondem a um subgrupo das turbinas de reação mista. E) Nas turbinas de reação, o fluido converte energia mecânica em energia hidráulica. 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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |