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 Apenas R$ 19,90
Java ::: Coleções (Collections) ::: ArrayList

Como adicionar todos os elementos de uma ArrayList ou coleção à uma outra ArrayList do Java usando o método addAll()

Quantidade de visualizações: 15646 vezes
Em algumas situações pode ser necessário adicionar todos os elementos de uma ArrayList ou outra coleção a uma determinada ArrayList já existente. Isso pode ser feito por meio do uso do método addAll() da classe ArrayList. Na versão 1.5 do Java, este método possui duas assinaturas. Veja a primeira:

public boolean addAll(Collection<? extends E> c)


Aqui nós podemos adicionar à uma ArrayList existente todos os elementos de uma determinada coleção, desde que, é claro, esta coleção implemente ou descenda de alguma classe que implemente a interface Collection. Note também o uso de genéricos na coleção a ser fornecida como argumento. É importante observar que, se passarmos uma coleção de tipos diferentes daquela na qual estamos chamando o método addAll() teremos um erro de compilação.

Veja um exemplo no qual adicionamos todos os elementos de uma ArrayList no final de outra:

import java.util.ArrayList;

public class Estudos{
  public static void main(String[] args){
    // cria uma ArrayList que conterá strings
    ArrayList<String> nomes = new ArrayList<String>();

    // cria uma segunda ArrayList que conterá mais strings
    ArrayList<String> nomes2 = new ArrayList<String>();
    
    // adiciona itens na primeira lista
    nomes.add("Carlos");
    nomes.add("Maria");
    nomes.add("Fernanda");
    
    // adiciona itens na segunda lista
    nomes2.add("Osmar");
    nomes2.add("Zacarias");    
	
    // vamos adicionar os elementos da segunda lista
    // no final da primeira lista
    nomes.addAll(nomes2);

    // vamos exibir o resultado
    for(int i = 0; i < nomes.size(); i++){
      System.out.println(nomes.get(i));
    } 

    System.exit(0);
  }
}

A segunda assinatura do método addAll() nos permite definir a posição no ArrayList alvo a partir da qual os elementos da coleção fonte serão adicionados. Veja:

public boolean addAll(int index, Collection<? extends E> c)

Eis um exemplo no qual inserimos os elementos de uma ArrayList a partir do segundo elemento da ArrayList alvo. Note que os itens existentes têm suas posições alteradas de forma a acomodar os novos elementos:

import java.util.ArrayList;

public class Estudos{
  public static void main(String[] args){
    // cria uma ArrayList que conterá strings
    ArrayList<String> nomes = new ArrayList<String>();

    // cria uma segunda ArrayList que conterá mais strings
    ArrayList<String> nomes2 = new ArrayList<String>();
    
    // adiciona itens na primeira lista
    nomes.add("Carlos");
    nomes.add("Maria");
    nomes.add("Fernanda");
    
    // adiciona itens na segunda lista
    nomes2.add("Osmar");
    nomes2.add("Zacarias");    
	
    // vamos adicionar os elementos da segunda lista
    // a partir do segundo elemento da primeira lista
    nomes.addAll(1, nomes2);

    // vamos exibir o resultado
    for(int i = 0; i < nomes.size(); i++){
      System.out.println(nomes.get(i));
    } 

    System.exit(0);
  }
}

Como resultado da execução deste código nós teremos:

Carlos
Osmar
Zacarias
Maria
Fernanda



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Usando o laço for para exibir a tabela de caracteres ASCII de 1 até 127

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

Escreva um programa Java console que usa o laço for para exibir a tabela de caracteres que são equivalentes aos códigos ASCII de 1 até 127.

Sua saída deverá ser parecida com:



Resposta/Solução:

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

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    // um laço que começa em 1 e termina em 127
    for(int i = 1; i <= 127; i++){
      // vamos obter o caractere correspondente
      char c = (char)(i);
      // vamos exibí-lo
      System.out.print(c + "   ");
      
      // é hora de quebrar a linha?
      if(i % 10 == 0){
        System.out.println();
      }
    }
    
    System.out.println();
  }
}



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

Exercício Resolvido de C - Ler um número inteiro na faixa 0-999 e mostrar a soma de seus dígitos - C Básico

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

Escreva um programa C que leia um inteiro na faixa 0-999 e mostre a soma de seus dígitos. Por exemplo, se o valor for 523, a soma de seus dígitos será 5 + 2 + 3 = 10. Lembre-se que você deverá usar apenas os operadores matemáticos e o operador de módulo (%). Seu programa deverá exibir a seguinte saída:

Informe um valor inteiro (0-999): 523
A soma dos dígitos é: 10
Resposta/Solução:

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

#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
  // vamos solicitar ao usuário que informe um valor inteiro
  // na faixa 0 a 999 (incluindo)
  printf("Informe um valor inteiro (0-999): ");
 
  // vamos ler o valor informado
  int valor;
  scanf("%d", &valor);
 
  // vamos verificar se o valor está na faixa permitida
  if(valor < 0 || valor > 999){
    puts("Valor fora da faixa permitida");
  }
  else{
    // vamos obter o terceiro dígito
    int terceiro = valor % 10;
    // obtém os digitos restantes
    valor = valor / 10;
 
    // vamos obter o segundo dígito
    int segundo = valor % 10;
    // obtém os digitos restantes
    valor = valor / 10;
 
    // vamos obter o primeiro dígito
    int primeiro = valor % 10;
    // obtém os digitos restantes
    valor = valor / 10;
 
    // vamos obter a soma dos dígitos
    int soma = terceiro + segundo + primeiro;
 
    // vamos mostrar o resultado
    printf("A soma dos dígitos é: %d", soma);
  }   
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}



C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes)

Exercício Resolvido de C - Usando um laço for para percorrer os elementos de um vetor e exibir a soma de seus valores

Quantidade de visualizações: 14570 vezes
Exercícios Resolvidos de C - Usando um laço for para percorrer os elementos de um vetor e exibir a soma de seus valores

Pergunta/Tarefa:

Considere o seguinte vetor de inteiros:

// um vetor de inteiros contendo sete elementos
int valores[] = {4, 5, 1, 8, 2, 2, 10};
Escreva um programa C que usa um laço for para percorrer todos os elementos deste vetor e exibir a soma de seus valores. Seu programa deverá exibir uma saída com a mensagem:

A soma dos valores do vetor é: 32
Resposta/Solução:

Veja abaixo a resolução completa para esta tarefa:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  // um vetor de inteiros contendo sete elementos
  int valores[] = {4, 5, 1, 8, 2, 2, 10};
  
  // o primeiro passo é criar uma variável que vai receber a soma
  // dos valores dos elementos
  int soma = 0;
  int i;

  // agora vamos usar uma laço for para percorrer todos os elementos
  // do vetor, obter o valor do elemento atual e adicionar ao valor atual
  // da variável soma
  for(i = 0; i < 7; i++){
    soma = soma + valores[i];
    // poderia também ser escrito assim:
    // soma += valores[i];
  }

  // vamos exibir a soma dos valores do vetor
  printf("A soma dos valores do vetor é: %d\n", soma);

  system("PAUSE");	
  return 0;
}



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

Como retornar o tamanho de um array em Rust usando a função len()

Quantidade de visualizações: 721 vezes
Em várias situações nós precisamos obter e retornar a quantidade de elementos em um vetor Rust, ou seja, um array. Para isso nós podemos usar a função len() do objeto Array.

Veja um exemplo Rust no qual nós criamos um array com cinco elementos do tipo inteiro e em seguida usando a função len() para retornar o seu tamanho:

// função principal do programa Rust
fn main() {
  // vamos criar um array com 5 elementos
  let valores = [7, 3, 4, 9, 1];
  
  // agora vamos obter o tamanho do array
  let tamanho = valores.len();
  
  // e mostramos o resultado
  println!("O array possui {} elementos", tamanho);
}

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

O array possui 5 elementos


Excel ::: Fórmulas do Excel ::: Matemática e Estatística

Como gerar números aleatórios no Excel usando a função ALEATÓRIO() - Excel para Matemática e Estatística

Quantidade de visualizações: 238 vezes
A função ALEATÓRIO() do Excel pode ser usada quando queremos gerar um número randômico, ou seja, um número aleatório entre 0 e 1. Nesse caso o número gerado é um número real aleatório que inclui o 0 mas não inclui o 1.

Para gerar um número randômico usando a função ALEATÓRIO, digite o conteúdo a seguir em uma célula ou na barra de fórmulas do Excel:

=ALEATÓRIO()

Pressione Enter ou Tab e você terá um resultado parecido com:

0,10075557

Note que a função ALEATÓRIO retorna um número aleatório real maior que ou igual a 0 e menor que 1 distribuído uniformemente. Um novo número aleatório real é retornado sempre que a planilha é calculada.


Python ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções

Exercícios Resolvidos de Python - Como escrever uma função Python que recebe dois números inteiros e retorna a soma desses dois valores como um inteiro

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

Escreva uma função em Python chamada somar() que recebe dois números inteiros e retorna a soma desses dois valores como um inteiro. Este método deverá ter a seguinte assinatura:

def somar(a, b):
  # sua implementação aqui
}
Após a implementação do método somar(), peça ao usuário para informar dois números inteiros. Em seguida faça uma chamada ao método somar() passando os dois valores como argumentos, obtenha o retorno e exiba-o.

Sua saída deverá ser parecida com:

Informe o primeiro número: 4
Informe o segundo número: 3
A soma dos dois números é: 7
Resposta/Solução:

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

# método que recebe dois inteiros e retorna a soma como um número inteiro
def somar(a, b):
  soma = a + b # soma os dois números
  return soma # retorna a soma para o método chamador

# função principal do programa
def main():
  # vamos pedir ao usuário que informe dois valores inteiros
  n1 = int(input("Informe o primeiro número: "))
  n2 = int(input("Informe o segundo número: "))
  
  # vamos efetuar uma chamada ao método somar() e obter seu retorno
  resultado = somar(n1, n2)
    
  # finalmente mostramos o resultado
  print("A soma dos dois números é: {0}".format(resultado))
  
if __name__== "__main__":
  main()



Ruby ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercícios Resolvidos de Ruby - Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equilátero

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

Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra:

A < (B + C), B < (A + C) e C < (A + B).

Escreva um programa Ruby que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais).

Sua saída deverá ser parecida com:

Informe o primeiro lado do triângulo: 30
Informe o segundo lado do triângulo: 40
Informe o terceiro lado do triângulo: 60
O triângulo é escaleno
Resposta/Solução:

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

# vamos ler o primeiro lado do triângulo
print "Informe o primeiro lado do triângulo: "
lado_a = Integer(gets)

# vamos ler o segundo lado do triângulo
print "Informe o segundo lado do triângulo: "
lado_b = Integer(gets)

# vamos ler o terceiro lado do triângulo
print "Informe o terceiro lado do triângulo: "
lado_c = Integer(gets)

# os lados informados formam um triângulo?
if((lado_a < (lado_b + lado_c)) && (lado_b < (lado_a + lado_c)) \
  && (lado_c < (lado_a + lado_b)))
  # é um triângulo equilátero (todos os lados iguais)?
  if((lado_a == lado_b) && (lado_b == lado_c))
    print "O triângulo é equilátero"  
  else
    # é isósceles (dois lados iguais e um diferente)?
    if((lado_a == lado_b) || (lado_a == lado_c) || \
      (lado_c == lado_b))
      print "O triângulo é isósceles" 
    else
      # é escaleno
      print "O triângulo é escaleno"
    end
  end
else
  print "Os lados informados não formam um triângulo." 
end



Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens

Como converter uma imagem colorida para tons de cinza em Java usando o filtro GrayFilter - Processamento de imagens em Java

Quantidade de visualizações: 11542 vezes
O exemplo abaixo mostra como usar a classe GrayFilter para converter uma imagem JPG colorida em uma imagem com tons de cinza. Veja que o segundo argumento no construtor da classe GrayFilter que usamos permite definir o nível de cinza (em porcentagem) que será aplicado:

import java.awt.*;
import java.io.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;

public class Estudos extends JFrame{
  private BufferedImage imagem;
  private BufferedImage imagemCinza;
  AreaImagem areaImagem;  

  public Estudos(){
    super("Estudos Java");
    
    Container c = getContentPane();
    c.setLayout(new BorderLayout());
	
    JButton btn = new JButton("Carregar Imagem");
    btn.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          JFileChooser fc = new JFileChooser();

          int res = fc.showOpenDialog(null);
          if(res == JFileChooser.APPROVE_OPTION){
	    File arquivo = fc.getSelectedFile();  
          
            imagem = null;
          
            try{
              imagem = ImageIO.read(arquivo);
            }
            catch(IOException exc){
              JOptionPane.showMessageDialog(null, 
                "Erro ao carregar a imagem: " + 
                exc.getMessage());
            }

            if(imagem != null){
              areaImagem.imagem = imagem;
              areaImagem.repaint();  
            }
          }
        }
      }
    );

    JButton btn2 = 
      new JButton("Converter Escala Cinza");
    btn2.addActionListener(
      new ActionListener(){
        public void actionPerformed(ActionEvent e){
          converterEscalaCinza();
        }
      }
    );

    JPanel painel = new JPanel();
    painel.setLayout(new FlowLayout());    
    painel.add(btn);
    painel.add(btn2);

    c.add(painel, BorderLayout.SOUTH);
    
    // Cria a área de exibição da imagem
    areaImagem = new AreaImagem();
    c.add(areaImagem, BorderLayout.CENTER);    
	
    setSize(400, 300);
    setVisible(true);
  }

  public void converterEscalaCinza(){
    ImageFilter filter = new GrayFilter(true, 30);
    ImageProducer producer = new FilteredImageSource(
      imagem.getSource(), filter);
    Image imagemTemp = this.createImage(producer);

    // precisamos converter Image para BufferedImage
    imagemCinza = new BufferedImage(imagem.getWidth(),
      imagem.getHeight(), BufferedImage.TYPE_INT_RGB);
    Graphics g = imagemCinza.getGraphics();
    g.drawImage(imagemTemp, 0, 0, null);
    g.dispose();

    areaImagem.imagem = imagemCinza;
    areaImagem.repaint();
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

// Sub-classe de JPanel para exibir a imagem
class AreaImagem extends JPanel{
  public BufferedImage imagem;

  public void paintComponent(Graphics g){ 
    super.paintComponent(g);
    
    // desenha a imagem no JPanel
    g.drawImage(imagem, 0, 0, this);
  } 
}



Java ::: Java para Engenharia ::: Física - Hidrodinâmica

Como representar a Equação da Continuidade em Java - Java para Hidrodinâmica

Quantidade de visualizações: 374 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:

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.

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á 33 usuários muito felizes estudando em nosso site.