Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


EXERCÍCIOS DE PROGRAMAÇÃO EM JAVA, Exercícios de Física

EXERCÍCIOS DE PROGRAMAÇÃO EM JAVA

Tipologia: Exercícios

2019

Compartilhado em 31/08/2019

carlos-gardiner-de-oliveira
carlos-gardiner-de-oliveira 🇧🇷

5

(1)

2 documentos

1 / 28

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Exercícios para o curso de
Lógica e Programação Java
Desenvolvidos por Fernando Anselmo
Versão 2.1
Este arquivo e de Distribuição Gratuita para todos os que desejam aprender a Linguagem de
Programação Java
Exercícios de Java
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c

Pré-visualização parcial do texto

Baixe EXERCÍCIOS DE PROGRAMAÇÃO EM JAVA e outras Exercícios em PDF para Física, somente na Docsity!

Exercícios para o curso de

Lógica e Programação Java

Desenvolvidos por Fernando Anselmo

Versão 2.

Este arquivo e de Distribuição Gratuita para todos os que desejam aprender a Linguagem de Programação Java Exercícios de Java

Dia 01 – Conceitos Básicos Dúvidas? Veja Slide 01 e Vídeo 01 Exercício 1. Primeira Classe a) Abrir o BlueJ b) Criar um projeto c) Criar uma classe para mostrar seu nome (com base no exemplo realizado em sala). Dica: Exemplo da classe realizada em sala: public class Exemplo01 { public static void main(String [] args) { System.out.println("Olá mundo!!!"); } } Dia 02 – Tipos Primitivos e Entrada de Dados Dúvidas? Veja Slide 02 e Vídeos 02, 03, 04 e 05 Exercício 1. Sair do método main a) Modificar a classe para mostrar a soma de dois números quaisquer b) Criar um método chamado executar() com a seguinte assinatura: public void executar() { } c) Colocar as instruções do método principal ( main ) neste método. d) Fazer o método principal ( main ) chamar este método. Dica: Criar um objeto da própria classe. Exercício 2. Obter valores Obter uma entrada pelo teclado contendo 2 números e como resultado mostrar: Os números [primeiro número] e [segundo número]: Somados são [valor da soma] Subtraídos são [valor da subtração] Multiplicados são [valor da multiplicação] Divididos são [valor da divisão] Dica: Para trabalhar com um objeto da classe java.util.Scanner :

  1. Para importar a classe: import java.util.Scanner;
  2. Para criar um objeto: Scanner sc = new Scanner(System.in);
  3. Para obter um tipo int : int i = sc.nextInt();
  4. Para obter um objeto String : String s = sc.nextLine();
  5. Para obter um tipo float : float f = sc.nextFloat();

Dia 05 – Classe Gráfica em Java2D Exercício 1. Desenho Lógico Em uma janela, criar o seguinte desenho: Exercício 2. Controle de Primitivas Simular o lance de um dado e mostrá-lo em uma janela gráfica. Dia 06 – Array e Classe java.lang.Math Exercício 1. Troca de Valores em um Array Gerar 10 valores aleatórios (entre 1 e 10) em um array, e apresentá-los em ordem Crescente e Decrescente. Exercício 2. Percorrer Arrays Multidimensionais a) Dado o seguinte array multidimensional, que contém as entradas da agenda telefônica: String [][] entradas = {{"Florence", "735-1234", "Manila"}, {"Joyce", "983-3333", "Quezon City"}, {"Becca", "456-3322", "Manila"}}; b) Mostrar todos os dados contidos neste array da seguinte forma: Nome – Telefone - Cidade

Exercício 3. Trabalhando com Randômicos a) Implementar o jogo CRAPS. Regra para UMA partida de CRAPS: ● Realizar o lançamento de dois dados:  Se o valor dos dados totalizar 7 ou 11 o jogador ganha  Se o valor dos dados totalizar 2 , 3 ou 12 o jogador perde  Se o valor dos dados totalizar outro valor (4, 5, 6, 8, 9, 10) este valor é preso. Deve repetir o lançamento dos dados até que:  Novamente o valor dos dados totalizar o valor que foi guardado, então o jogador ganha.  Se o valor dos dados totalizar 7 , então o jogador perde. b) Fazer uma classe para jogar 10.000 partidas de CRAPS e mostrar quantas vezes o jogador ganhou e quantas perdeu. DICA: Para simular o lançamento de um dado usar o seguinte código: byte lancamento = (byte)(Math.random()6+1); Dia 07 – Pacote javax.swing e eventos Exercício 1. Calculadora Criar a seguinte janela: a) Trabalhe com 2 Arrays de elementos JButton , o primeiro para os botões numéricos e o segundo para os botões de função. b) Organizar o objeto visor (JTexField), com o comando: Font font1 = new Font("SansSerif", Font.BOLD, 20); visor.setFont(font1); visor.setHorizontalAlignment(JTextField.RIGHT); visor.setEnabled(false); visor.setEnabled(false); Dica: Use a seguinte classe base import javax.swing.; import java.awt.*; class Calculadora extends JFrame { public Calculadora() { this.setTitle("Calculadora");

public void actionPerformed(ActionEvent e) { // Método para realizar o procedimento } }); Dia 08 – Eventos e classe java.util.Random Exercício 1. Combinar Eventos com Primitivas Em uma janela gráfica, mostrar 50 quadriláteros em posições, tamanhos e cores aleatórias: Dica: Montagem do evento aoAcionar: objeto.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // Método para realizar o procedimento } }); Exercício 2. Atualização da Janela de Primitivas No segundo exercício do Dia 05 , modificar a janela do dado para conter um botão que ao ser acionado, gerar randomicamente e mostrar um novo valor para o dado. Dia 09 – Aperfeiçoando o uso de Arrays Exercício 1. Nesta apostila, realizar o projeto Crescendo Letras. Exercício 2. Nesta apostila, realizar o projeto Companhia Aérea. Dia 10 – Proteção e Interface Exercício 1. Projeto e Implementação em OO a) Descrever um diagrama de classes para um Sistema de Reserva e Ocupação de

Quartos de um hotel. b) Este projeto deve armazenar as reservas realizadas por um funcionário de um ou mais quartos para um determinado cliente. c) O funcionário deve ser capaz de: ◦ Verificar se um quarto está ocupado ou não ◦ Inserir ou alterar os dados de um cliente ◦ Realizar a reserva de um quarto para um cliente. d) Considerar os atributos para as classes como particulares. e) O cadastro de Cliente deve no mínimo possuir: ◦ Nome, Endereço e Telefone. ◦ O cliente ainda deve possuir um campo que armazene a quantidade de ocupações já realizadas por ele neste hotel. f) Um Quarto pode ser simples ou luxo e deve indicar o número de camas e o tipo de cada uma delas (solteiro ou casal). Dica: Deseja ser criativo? Então utilize interfaces e/ou classes abstratas para resolver esse problema. Dia 11 – Threads Exercício 1. Movimento único a) Criar uma janela contendo uma bolinha no canto inferior esquerdo e um botão no rodapé da janela. Conforme a figura ao lado: b) Ao ser acionado o botão fazer a bolinha simular um salto até o topo da tela e terminar no canto inferior direito. Exercício 2. Movimento de vários objetos a) Criar cinco bolinhas coloridas, alinhadas à esquerda e um botão no rodapé na janela. Conforma a figura abaixo: b) Ao ser acionado o botão simular uma corrida entre as bolinhas até o final da janela.

Dia 14 – Pacote java.io (classe File e tipo char) Exercício 1. Consultar Arquivos Mostrar todos os arquivos encontrados em uma determinada pasta através da classe java.io.File. Dica: Lembramos que para obter uma lista de arquivos de uma pasta: File file = new File(nomePasta); String[] fileNames = file.list(); File[] files = file.listFiles(); Exercício 2. Bloco de Notas a) Criar uma classe chamada MeuBloco que representa uma janela para implementar um Bloco de Notas b) Utilizar o seguinte código no construtor para criar essa janela: private JTextArea area = new JTextArea(); public MeuBloco() { super("Meu Editor"); this.setSize(300, 300); JButton btGravar = new JButton("Gravar"); btGravar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // Método para gravar } }); JButton btCarregar = new JButton("Carregar"); btCarregar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // Método para carregar } }); JPanel pn = new JPanel(); pn.add(btGravar); pn.add(btCarregar); this.add(pn, BorderLayout.NORTH); this.add(new JScrollPane(area)); this.setVisible(true); } c) Usar os seguintes códigos para gravar os dados no arquivo: FileDialog dig = new FileDialog(this, "Salvar Arquivo", FileDialog.SAVE); dig.setVisible(true); String arq = dig.getDirectory() + dig.getFile(); FileWriter fw = new FileWriter(arq); fw.write(area.getText()); fw.close(); d) Usar os seguintes códigos para ler os dados do arquivo: FileDialog dig = new FileDialog(this, "Abrir Arquivo", FileDialog.LOAD); dig.setVisible(true); String arq = dig.getDirectory() + dig.getFile(); BufferedReader bf = new BufferedReader(new FileReader(arq));

String linha = ""; while((linha = bf.readLine()) != null) area.append(linha + '\n'); bf.close(); Dia 15 – Pacote java.io (tipo byte) Exercício 1. Uso da Rede Implementar uma rede CHAT em Java. Ver as classes Client/Server no final dessa apostila (quais possibilidades de projetos você consegue pensar para utilizar essas classes? Que tal um jogo de dominó na rede?) Exercício 2. Armazenar Objetos em Disco No primeiro exercício do Dia 13 , modificar a forma de armazenar os dados para gravá-los em disco no lugar da memória. Dia 16 – Pacote java.sql Exercício 1. Armazenar em Arquivo de Dados Com base nos seguintes comandos de criação de tabelas: CREATE TABLE cd ( codigo INTEGER NOT NULL, titulo VARCHAR(50), cantor VARCHAR(50), ano INTEGER, capa VARCHAR(50), PRIMARY KEY (codigo)) CREATE TABLE trilha ( codcd INTEGER NOT NULL, numero INTEGER NOT NULL, nome VARCHAR(50), tempo VARCHAR(5), PRIMARY KEY (codcd, numero)) Criar telas para proceder o cadastro de CD e Trilha, conforme a seguinte figura: Detalhes:

d) Mostrar esses dados da seguinte forma: Dados do seu Triângulo: Cateto 1: [valor do cateto 1] Cateto 2: [valor do cateto 2] Hipotenusa: [valor da hipotenusa] e) Chamar o método entrar() através do principal ( main ) da seguinte forma: public static void main(String [] args) { Triangulo triangulo = new Triangulo(); triangulo.entrar(); } Exercício 2. Percorrer um Array a) Com base no seguinte array de Strings, inicializado com os nomes dos dias da semana. String dias[] = {"Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo"}; b) Mostrar todo o conteúdo deste array. Use inicialmente um laço while. Faça o mesmo para os laços do , for e foreach. Exercício 3. Localização em Array a) Armazenar em um array até o 20 termo da sequência de Fibonacci. b) Obter do usuário o valor de 1 a 20 e com base neste valor, localizar e mostrar o termo correspondente na sequencia de Fibonacci^1. Exercício 4. Ordenação em Array a) Criar um array com 10 palavras quaisquer. Por exemplo: String [] palavras = new String[]{"Pal1", "Pal2", ..., "Pal10"}; b) Ordenar lexicograficamente^2 este array. Dicas: Para trocar duas palavras de posição em um Array, por exemplo, posições p1 e p2: String aux = palavras[p1]; palavras[p1] = palavras[p2]; palavras[p2] = aux; Exercício 5. Projeto OO a) Em um Diagrama de Classes b) Criar uma classe chamada Livro. 1 Leonardo Fibonacci (Pisa, 1170 a 1250) foi um matemático italiano, tido como o primeiro grande matemático europeu do Medievo. A Sequência de Fibonacci consiste em uma sucessão de números, tais que, definindo os dois primeiros números da sequência como 0 e 1, os números seguintes serão obtidos por meio da soma dos seus dois antecessores. 2 Ordem Lexicográfica é a ordem que as palavras aparecem no Dicionário. Por exemplo: Abacate, Abacateiro, Abacaxi, Abacial, Ábaco, …

c) Criar uma classe chamada LivroDeLivraria que contém os dados básicos de um livro que está à venda em uma livraria. d) Criar uma classe chamada LivroDeBiblioteca que contém os dados básicos de um livro em uma biblioteca, que pode ser emprestado a leitores. e) Criar outras classes que sejam necessárias para implementar os modelos de Livraria e Biblioteca. Com funções respectivas para vender e emprestar livros. f) Implementar todo o Diagrama de Classe em linguagem Java. Exercício 6. Projeto OO d) Implementar uma classe em linguagem Java, conforme o seguinte Diagrama de Classes abaixo: +------------------------------------+ | Triangulo | +------------------------------------+ | - cateto1: float | | - cateto2: float | +------------------------------------+ | + setCateto1(cateto1: float) | | + setCateto2(cateto2: float) | | + getCateto1(): float | | + getCateto2(): float | | + obterHipotenusa(): float | +------------------------------------+ e) Os métodos set/get possuem a implementação padrão segundo o Princípio do Encapsulamento. f) O método obterHipotenusa() retorna o valor da hipotenusa com base na seguinte fórmula de Pitágoras: hipotenusa^2 = cateto^2 + cateto^2 ; g) Implementar a seguinte classe, conforme o modelo UML de Classe, abaixo: +-------------------------+ | Matematico | +-------------------------+ | | +-------------------------+ | + main(args: String []) | | + entrar() | +-------------------------+ h) O método entrar() contém:

  1. A solicitação dos valores do cateto1 e cateto2.
  2. Com esses dados criar um objeto da classe Triangulo.
  3. E mostrá-lo na tela da seguinte forma: Dados do Triângulo: Cateto 1: [valor do cateto 1] Cateto 2: [valor do cateto 2]

Exercício 13. Collections a) Implementar a classe conforme o seguinte Diagrama de Classe abaixo: +---------------------------------+ | Questao | +---------------------------------+ | - numero: int | | - pergunta: String | | - opcao1: String | | - opcao2: String | | - opcao3: String | | - opcao4: String | | - resposta: byte | +---------------------------------+ | + setNumero(numero: int) | | + setPergunta(pergunta: String) | | + setOpcao1(opcao1: String) | | + setOpcao2(opcao2: String) | | + setOpcao3(opcao3: String) | | + setOpcao4(opcao4: String) | | + setResposta(resposta: byte) | | + getNumero(): int | | + getPergunta(): String | | + getOpcao1(): String | | + getOpcao2(): String | | + getOpcao3(): String | | + getOpcao4(): String | | + getResposta(): byte | +---------------------------------+ b) Criar uma classe chamada Simulado. c) Nesta classe criar um atributo da classe java.util.ArrayList para conter um conjunto de objetos de Questao. d) Criar um método chamado cadastrar() , solicitar o número, a questao, o valor da opção 1, o valor da opção 2, o valor da opção 3, o valor da opção 4 e qual a resposta correta. Com esses dados criar um objeto da classe Questao e armazená-lo no objeto criado no item anterior. e) Criar um método chamado examinar() , selecionar e mostrar uma questão aleatoriamente entre todas questões que foram armazenadas previamente, da seguinte forma: Questão [campo numero] [campo pergunta]

  1. [campo opcao1]
  2. [campo opcao2]
  3. [campo opcao3]
  4. [campo opcao4] Sua resposta é: f) Ainda no método examinar() , obter a resposta do usuário e verificar se é ou não correta. Compare-a com o campo resposta da questão selecionada. g) Criar um método chamado menu() , com a seguinte codificação:

char opc = 'c'; do { System.out.println("Suas Opções:"); System.out.println(" (a) Cadastrar Questões"); System.out.println(" (b) Realizar Prova"); System.out.println(" (c) Sair"); opc = sc.next().charAt(0); switch (opc) { case 'a': cadastrar(); break; case 'b': examinar(); break; } } while (opc != 'c'); h) Criar o método principal (main) para chamar o método menu(). Dica: Para usar um ArrayList : Importar a classe: import java.util.ArrayList; Criar a coleção: ArrayList<[NomeClasse]> lst = new ArrayList<[NomeClasse]>(); Adicionar um elemento: lst.add(objeto); Obter quantos elementos a coleção possui: int qtd = lst.size(); Obter um determinado elemento: [NomeClasse] qst = lst.get(pos); Mostrar todos elementos cadastrados: for ([NomeClasse] obj: lst) System.out.println(obj.getCampo1() + " " + obj.getCampo2() + ...); Exercício 14. Controle de Coleções a) Criar uma classe chamada Produto , para implementar os dados de um produto com os seguintes atributos: private String descricao; private float preco; b) Para a classe Produto , criar métodos modificadores com assinaturas padrão SET/GET. c) Criar uma classe chamada Fornecedor , para armazenar os produtos em um objeto da classe java.util.ArrayList. d) Criar um método chamado entrar(). Solicitar a descrição e o preço de um Produto através de um objeto da classe java.util.Scanner. e) Com esses dados criar um objeto da classe Produto e armazená-lo. f) Criar um método chamado listarProdutos(). Mostrar todos os produtos que foram adicionados armazenados. g) Criar um método chamado menu() , com a seguinte codificação: char opc = 'c'; do { System.out.println("Suas Opções:"); System.out.println(" (a) Cadastro de Produtos"); System.out.println(" (b) Listagem de Produtos"); System.out.println(" (c) Sair"); opc = sc.next().charAt(0);

K - • - L • - • • M - - N - • O - - -

P • - - • Q - - • - R • - • S • • • T -

U • • - V • • • - W • - - X - • • - Y - • - -

Z - - • •

Projeto Jogo de Xadrez a. Construção da Janela Construa a seguinte janela, utilizando os layouts e o método paint() : b. Colocando as peças nos seus lugares Obtendo as peças com seu professor, coloque-as no tabuleiro na seguinte ordem: em "a1" e "h1" em "b1" e "g1" em "c1" e "f1" em "d1" em "e1" em "a2" a "h2" em "a8" e "h8" em "b8" e "g8" em "c8" e "f8" em "d8" em "e8" em "a7" e "h7" Dica: Para inserir a imagem use a seguinte instrução no método paint: g.drawImage(Toolkit.getDefaultToolkit().getImage("pecas/AB.gif"), 50,50, null); c. Realizando o movimento Realize o movimento através dos dois JTextField de entrada "de" e "para", informando a posição que se encontra a peça e para aonde ela deve ir. Ex: de: e2 para: e4.