Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Recursividade - Exercícios Resolvidos 10 - Um método recursivo para somar séries (matemática) - Exercícios Resolvidos de JavaQuantidade de visualizações: 1941 vezes |
Pergunta/Tarefa: Escreva um método recursivo que faça a soma da seguinte série: ![]() Seu método recursivo deverá possuir a seguinte assinatura: public static double somarSerie(int i) { // sua implementação aqui } A soma da série é 0.2833333333333333 Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- 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 somar a série 1 + 1/2 + 1/3 + 1/4 + 1/5 System.out.println("A soma da série é " + somarSerie(5)); System.out.println("\n"); } // método recursivo que retorna a soma de uma série public static double somarSerie(int i) { if (i == 1){ // caso base...devemos parar a recursividade return 1; } else{ return (somarSerie(i - 1) + 1.0) / i; // mais uma chamada recursiva } } } |
![]() |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de Java - Como testar se um ano é bissexto em Java - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 2532 vezes |
Pergunta/Tarefa: Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016. Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400. Escreva um programa Java que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não. Sua saída deverá ser parecida com: Informe o ano: 2024 O ano informado é bissexto. Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- 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 que o usuário informe um ano System.out.print("Informe o ano: "); int ano = Integer.parseInt(entrada.nextLine()); // vamos verificar se o ano informado é bissexto if(((ano % 4 == 0) && (ano % 100 != 0)) || (ano % 400 == 0)){ System.out.println("O ano informado é bissexto."); } else{ System.out.println("O ano informado não é bissexto."); } System.out.println("\n"); } } |
Java ::: Coleções (Collections) ::: LinkedList |
Java Collections - Como adicionar elementos no final de uma LinkedList usando os métodos add() e addLast()Quantidade de visualizações: 9213 vezes |
O trecho de código a seguir mostra como adicionar elementos no final de um lista ligada (objeto da classe LinkedList). Para isso podemos usar os métodos add() e addLast(). Ambos possuem a mesma funcionalidade. É claro que addLast() representa melhor a idéia de adicionar elementos no final da lista ligada. Veja ainda como usar um ListIterator para percorrer a lista e exibir os elementos. Outra técnica que você perceberá é o uso de unboxing dentro do laço while:---------------------------------------------------------------------- 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[]){ // Cria uma LinkedList de inteiros LinkedList<Integer> valores = new LinkedList<Integer>(); // adiciona valores no final da lista ligada // usando os métodos add() e addLast(). Lembre-se // de que ambos fornecem a mesma funcionalidade valores.add(56); valores.addLast(3); valores.add(28); // obtém um ListIterator para percorrer toda a // lista ligada, começando no primeiro elemento ListIterator<Integer> iterador = valores.listIterator(0); while(iterador.hasNext()){ // note o unboxing aqui int valor = iterador.next(); System.out.println(valor); } } } Ao executar este código Java nós teremos o seguinte resultado: 56 3 28 |
Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Como renomear um diretório em Java usando o método renameTo() da classe File - Arquivos e diretórios em JavaQuantidade de visualizações: 2 vezes |
Nesta dica mostrarei como podemos usar o método renameTo() da classe File da linguagem Java para renomear um diretório. Veja que este método retorna boolean, ou seja, o valor true caso o diretório for renomeado com sucesso e false em caso contrário. 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.io.*; public class Estudos{ public static void main(String[] args){ // diretorio com o nome antigo File dir1 = new File("c:\\java"); // diretorio com o novo nome File dir2 = new File("c:\\java_novo"); boolean ok = dir1.renameTo(dir2); if(ok){ System.out.println("Diretorio renomeado com sucesso."); } else{ System.out.println("Nao foi possivel renomear o diretorio."); } } } Ao executar este código Java nós teremos o seguinte resultado: Diretorio renomeado com sucesso. |
Java ::: Dicas & Truques ::: Arquivos e Diretórios |
Como escrever em um arquivo usando Java - Como escrever em um arquivo usando as classes BufferedWriter e FileWriter do JavaQuantidade de visualizações: 9 vezes |
Nesta dica mostrarei como podemos usar a linguagem Java para escrever em um arquivo texto. Para isso nós vamos usar as classes BufferedWriter e FileWriter. Veja o trecho de 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.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class Estudos{ public static void main(String args[]){ try { BufferedWriter out = new BufferedWriter(new FileWriter("C:\\estudos_java\\conteudo.txt")); out.write("Esta é a primeira linha de texto\r\n"); out.write("Esta é a segunda linha de texto"); out.close(); } catch(IOException e){ System.out.println("Houve um erro: " + e.getMessage()); } System.out.println("Acabei de escrever no arquivo"); } } Ao executar este código Java nós teremos o seguinte resultado: Acabei de escrever no arquivo. Tenha cuidado. Se o arquivo já existir, o método write() da classe BufferedWriter vai sobrescrever o seu conteúdo. Por isso, é sempre uma boa idéia fazer uma verificação antes. |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Manipulação de texto em Java - Como contar as ocorrências de um caractere em uma stringQuantidade de visualizações: 6 vezes |
Nesta dica mostrarei como podemos combinar um laço for e o método charAt() da classe String para contar as ocorrências de um caractere (uma letra) em uma palavra, frase ou texto. 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; public class Estudos{ public static void main(String[] args){ String frase = "Programar em Java é muito bom"; System.out.println("Frase: " + frase); int cont = 0; char letra = 'a'; // ocorrências da letra "a" for(int i = 0; i < frase.length(); i++){ if(frase.charAt(i) == letra){ cont++; } } System.out.println("A frase contem " + cont + " ocorrencias da letra \"" + letra + "\""); System.exit(0); } } Ao executar este código Java nós teremos o seguinte resultado: Frase: Programar em Java é muito bom A frase contém 4 ocorrências da letra "a" |
Java ::: Classes e Componentes ::: JTable |
Java Swing - Como obter a quantidade de colunas em uma JTable usando o método getColumnCount()Quantidade de visualizações: 2 vezes |
Nesta dica mostrarei como é possível contar as colunas de uma JTable com uma chamada ao método getColumnCount() da interface TableModel, que representa os dados contidos na tabela. Note que, neste exemplo, eu escrevi toda a aplicação Java Swing "na unha", ou seja, sem nenhum editor visual. Esta técnica é boa para entender todas as partes que compoem uma aplicação Java Swing. 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.*; public class Estudos extends JFrame{ public Estudos(){ super("Exemplo de uma tabela simples"); // colunas da tabela String[] colunas = {"Cidade", "Estado", "Habitantes"}; // conteúdo da tabela Object[][] conteudo = { {"Goiânia", "GO", "43.023.432"}, {"São Paulo", "SP", "5.343.234"}, {"Rio de Janeiro", "RJ", "6.434.212"}, {"Jussara", "GO", "87.454"}, {"Barra do Garças", "MT", "64.344"} }; // constrói a tabela final JTable tabela = new JTable(conteudo, colunas); tabela.setPreferredScrollableViewportSize( new Dimension(350, 50)); Container c = getContentPane(); c.setLayout(new FlowLayout()); JButton btn = new JButton("Número de Colunas"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ JOptionPane.showMessageDialog(null, "Quantidade de colunas: " + tabela.getModel().getColumnCount(), "JTable", JOptionPane.INFORMATION_MESSAGE); } } ); JScrollPane scrollPane = new JScrollPane(tabela); c.add(scrollPane); c.add(btn); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Ao executar este exemplo e clicar no botão nós veremos uma mensagem JOptionPane.showMessageDialog() com o seguinte texto: Quantidade de colunas: 3 |
Java ::: Classes e Componentes ::: JMenuBar, JMenu, JMenuItem e Afins |
Java Swing - Como usar objetos da classe JCheckBoxMenuItem como itens de menu de suas aplicações Java SwingQuantidade de visualizações: 8809 vezes |
Neste exemplo mostrarei como usar objetos da classe JCheckBoxMenuItem como itens de um menu. Tais itens podem ser usados quando o usuário puder marcar uma ou mais opções, em um grupo relacionado de opções. Veja o resultado na imagem abaixo: ![]() E agora 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 javax.swing.*; import java.awt.*; import java.awt.event.*; public class Estudos extends JFrame{ JCheckBoxMenuItem cores[]; Color valCores[] = {Color.red, Color.white, Color.green}; String nomeCores[] = {"Vermelho", "Branco", "Verde"}; public Estudos(){ super("Menus"); // Cria a barra de menus JMenuBar barra = new JMenuBar(); setJMenuBar(barra); // Cria um menu JMenu formatar = new JMenu("Formatar"); // Cria o menu de cor de fundo JMenu item1 = new JMenu("Cor de Fundo"); // Adiciona o segundo JMenu ao primeiro formatar.add(item1); cores = new JCheckBoxMenuItem[valCores.length]; Gerenciador gerenciador = new Gerenciador(); for(int i = 0; i < valCores.length; i++){ cores[i] = new JCheckBoxMenuItem(nomeCores[i]); item1.add(cores[i]); cores[i].addItemListener(gerenciador); } // Adiciona o menu à barra de menus barra.add(formatar); setSize(300, 150); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } private class Gerenciador implements ItemListener{ public void itemStateChanged(ItemEvent e){ String marcadas = "As checkbox marcadas são:\n\n"; for(int i = 0; i < cores.length; i++){ if(cores[i].isSelected()){ marcadas += nomeCores[i] + "\n"; } } JOptionPane.showMessageDialog(null, marcadas); } } } |
Java ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Tutorial Java para iniciantes - Como usar o laço for em JavaQuantidade de visualizações: 21256 vezes |
O laço for (loop for, ou laço para) é de longe uma das estruturas de controle mais usadas, não só em Java como em várias linguagens de programação). A razão de seu sucesso é a facilidade com que podemos efetuar iterações controladas por um contador ou uma variável similar, que é atualizada a cada iteração. Veja sua sintáxe:for(passo 1; passo 2; passo 3){ // bloco de instruções } passo 1: É aqui que definimos a variável de controle. Esta variável pode também ser declarada antes do laço, mas nunca em seu corpo. passo 2: Aqui testamos a condição de continuidade do laço. Se a condição retornar verdadeira, a execução do laço continua. Do contrário esta é interrompida. passo 2: Nesta parte nós incrementamos ou decrementamos a variável de controle. É importante perceber que podemos ter mais de uma instruções nos passos 1 e 3 de uma laço for, basta separá-las por vírgulas. Veja um exemplo no qual usamos um laço for para imprimir os números de 0 a 10: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- public class Estudos{ public static void main(String[] args){ for(int i = 0; i <= 10; i++){ System.out.println(i); } } } Veja agora como efetuar a operação inversa, ou seja, imprimir os números em ordem decrescente: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- public class Estudos{ public static void main(String[] args) { for(int i = 10; i >= 0; i--){ System.out.println(i); } } } Para finalizar veja como podemos imprimir os números pares de 0 a 10: ---------------------------------------------------------------------- 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 ---------------------------------------------------------------------- public class Estudos{ public static void main(String[] args) { for(int i = 0; i <= 10; i += 2){ System.out.println(i); } } } |
Vamos testar seus conhecimentos em JavaScript |
JavaScript é o mesmo que Java? A) Sim B) Não Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Dimensionamento de lajes e escadas maciças Em dimensionamentos manuais de lajes, os esforços podem ser obtidos a partir da utilização de metodologias simplificadas, mas cujos resultados apresentam boas aproximações com os resultados obtidos por meio de softwares mais especializados. Considere uma laje de 3,0m x 4,0m, com condições de contorno indicadas na imagem a seguir (bordos simplesmente apoiados). A laje está sujeita a uma carga q uniformemente distribuída de 8,4kN/m2 (já incluído o peso próprio) e tem espessura de 10cm. O valor das reações para as laterais de 3,00m e de 4,00m são, respectivamente, iguais a: ![]() A) 18,9kN e 18,9kN. B) 25,2kN e 25,2kN. C) 18,9kN e 25,2kN. D) 25,2kN e 44,1kN. E) 44,1kN e 44,1kN. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Qual o resultado da execução do seguinte código JavaScript?document.write(0.1 + 0.2 == 0.3); A) Um erro de execução B) true C) 0.6 D) false Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
A transpiração é um processo fundamental na contribuição para o acúmulo de água em estado gasoso na atmosfera. Qual agente é um dos principais atores nesse processo? A) Rochas. B) Solos férteis. C) Chuvas. D) Seres vivos. E) Minerais. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Alvenaria: Técnicas construtivas Em alvenaria de vedação (preenchimento dos vãos das estruturas de concreto armado), um procedimento padrão deve ser efetuado para evitar o surgimento de fissuras entre a parede e a viga que fica imediatamente acima. O levantamento da parede é interrompido a cerca de 20 cm do respaldo, e deixa-se curar por alguns dias antes do fechamento com tijolos inclinados ou cortados na diagonal. Esse procedimento é denominado: A) Emboço. B) Encunhamento. C) Cisalhamento. D) Escantilhão. E) Chapisco. 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 |
Python - Como calcular o coeficiente angular de uma reta em Python dados dois pontos no plano cartesiano JavaScript - Como retornar o nome ou tipo de exceção de um erro em JavaScript usando a propriedade name do objeto Error |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |