SlideShare a Scribd company logo
1 of 14
Download to read offline
Java Básico
Exercícios
Hello World
• A aplicação deve exibir no console os dizeres: “Hello
World”.

• A aplicação deve encerrar com sucesso em seguida.
public class Main {
public static void main(String[] args) {
System.out.print("Hello World");
System.exit(0);
}
}
Calculando horas
• A aplicação deve realizar as seguintes conversões de minutos para horas:

1. 60 minutos

2. 5 minutos

3. 55 minutos

4. 99 minutos

5. 110 minutos

6. 1450 minutos

• A lógica de exibição dos resultados deverá ser:

A. Se a conversão resultar em uma hora exata, exibir o resultado como: 1 hora, 2 horas, 3 horas. Atenção para o plural!

B. Se a conversão resultar em um valor inferior a uma hora completa, deverá exibir os valores em minutos, como: 1
minuto, 20 minutos, 30 minutos.

C. Se a conversão resultar em um valor superior a uma hora completa, sendo um valor não exato, deverá exibir a hora
abreviada, conforme os exemplos: 1h 20 min, 3h 10 min.

D. Se os minutos resultantes da conversão não exata forem superiores a 3/4 de hora, deverá ser exibido a quantidade de
minutos faltantes para a próxima hora completa. Exemplo: 75 minutos ficaram “1h 15 min”, já 175 minutos ficariam “5
min para 3 h"
package br.org.andresalla;
public class Main {
public static void main(String [] args) {
conversao(60);
conversao(5);
conversao(55);
conversao(99);
conversao(110);
conversao(1450);
}
public static void conversao(int minutos) {
int resto = minutos % 60;
int horas = minutos / 60;
if (resto == 0) {
if (horas == 1) {
System.out.println(horas + " hora");
} else {
System.out.println(horas + " horas");
}
} else if (horas == 0) {
if (minutos == 1) {
System.out.println(minutos + " minuto");
} else {
System.out.println(minutos + " minutos");
}
} else if (resto >= 45) {
int falta = 60 - resto;
System.out.println(falta + " min para " + (horas + 1) + "h");
} else {
System.out.print(horas + " h " + resto + "min");
}
}
}
•
Lista de Nomes
• A aplicação deverá receber em seu método principal uma
lista de nomes.

• A aplicação deverá varrer a lista buscando por nomes
repetidos. 

• Caso encontre algum nome repetido, deverá exibi-lo
como: “Fulano encontra-se em duplicidade”

• Caso não haja nenhum nome repetido, deverá exibir a
mensagem “Registros verificados com sucesso”
package br.org.andresalla;
public class Main {
public static void main(String[] args) {
String[] nomes = {"André", "Paulo", "Vanessa", "André", "João"};
String[] nomesRepetidos = new String[nomes.length];
for (int i = 0; i < nomes.length; i++) {
String nome = nomes[i];
for (int j = i + 1; j < nomes.length; j++) {
String proximo = nomes[j];
if (nome == proximo) {
if (!isJaAdicionado(nome, nomesRepetidos)) {
int lastPos = ultimaPosicao(nomesRepetidos);
if (lastPos >= 0) {
nomesRepetidos[lastPos] = nome;
}
}
}
}
}
if (contemNomes(nomesRepetidos)) {
for (int i = 0; i < nomesRepetidos.length; i++) {
if (nomesRepetidos[i] == null) {
break;
}
System.out.println(nomesRepetidos[i] + " encontra-se em duplicidade");
}
} else {
System.out.println("Registros verificados com sucesso");
}
}
…
public static boolean contemNomes(String[] nomes) {
for (int i = 0; i < nomes.length; i++) {
if (nomes[i] != null) {
return true;
}
}
return false;
}
public static int ultimaPosicao(String [] nomes) {
for (int i = 0; i < nomes.length; i++) {
if (nomes[i] == null) {
return i;
}
}
return -1;
}
public static boolean isJaAdicionado(String nome, String[] nomes){
for (int i = 0; i < nomes.length; i++) {
if (nomes[i] == nome) {
return true;
}
}
return false;
}
}
…
Jogando cartas
• A aplicação deve possuir os seguintes Modelos:

1. Jogador

2. Carta

• Cada jogador terá um nome, um identificador (ex: Jogador 1, 2, 3) e 3 cartas.

• Cada carta terá um valor de 1 a 10.

• Cada jogador receberá 3 cartas aleatórias.

• Cada jogador terá uma ação jogar, que selecionará uma carta aleatória das suas cartas, e colocará em jogo; assim como uma
ação receber carta, que adicionará uma carta à sua mão.

• A aplicação deve realizar a jogada de cada um dos jogadores, e, em seguida, verificar quem foi o ganhador.

• O ganhador é aquele que tirou a carta maior.

• No final, a aplicação deve exibir as seguintes mensagens no console:

A. Jogador X: 6

B. Jogador Y: 9

C. Ganhador: Jogador Y
package br.org.andresalla.models;
public class Carta {
int valor;
public Carta(int valor) {
if (valor > 10) {
this.valor = 10;
} else if (valor < 1) {
this.valor = 1;
} else {
this.valor = valor;
}
}
public int getValor() {
return valor;
}
}
package br.org.andresalla.models;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Jogador {
private int id;
private String nome;
private List<Carta> cartas;
public Jogador(int id, String nome) {
this.id = id;
this.nome = nome;
this.cartas = new ArrayList<Carta>();
}
public Carta jogar() {
Random gerador = new Random();
int index = gerador.nextInt(cartas.size());
return cartas.get(index);
}
…
public void adicionaCarta(Carta carta) {
if (cartas.size() < 3) {
cartas.add(carta);
}
}
public int getId() {
return id;
}
public String getNome() {
return nome;
}
}
…
package br.org.andresalla;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import br.org.andresalla.models.Carta;
import br.org.andresalla.models.Jogador;
public class Main {
public static void main(String[] args) {
List<Jogador> jogadores = new ArrayList<Jogador>();
jogadores.add(new Jogador(1, "André"));
jogadores.add(new Jogador(2, "Paulo"));
Random gerador = new Random();
for (Jogador jogador : jogadores) {
for (int i = 0; i < 3; i++) {
jogador.adicionaCarta(new Carta(gerador.nextInt(10) + 1));
}
}
…
Carta maiorCarta = null;
Jogador ganhador = null;
for (Jogador jogador : jogadores) {
Carta jogada = jogador.jogar();
System.out.println("Jogador " + jogador.getId() + ": " +
jogada.getValor());
if ((maiorCarta == null) || (maiorCarta.getValor() < jogada.getValor())) {
maiorCarta = jogada;
ganhador = jogador;
}
}
if (ganhador != null) {
System.out.println("Ganhador: " + ganhador.getNome());
}
}
}
…

More Related Content

What's hot

Palestra python
Palestra pythonPalestra python
Palestra pythonRony Cruch
 
Palestra Mocks - AgileBrazil 2010
Palestra Mocks - AgileBrazil 2010Palestra Mocks - AgileBrazil 2010
Palestra Mocks - AgileBrazil 2010rafaelferreira
 
Design de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentávelDesign de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentávelAndrews Medina
 
Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem cRafael_Lima87
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em PythonRicardo Paiva
 
[Curso Java Basico] Aula 56: Enum: metodos abstratos
[Curso Java Basico] Aula 56: Enum: metodos abstratos[Curso Java Basico] Aula 56: Enum: metodos abstratos
[Curso Java Basico] Aula 56: Enum: metodos abstratosLoiane Groner
 
Programação Desktop: Revisão Core Java
Programação Desktop: Revisão Core JavaProgramação Desktop: Revisão Core Java
Programação Desktop: Revisão Core JavaElaine Cecília Gatto
 
Ubiquitous Language - Portugues
Ubiquitous Language - PortuguesUbiquitous Language - Portugues
Ubiquitous Language - PortuguesAlline Oliveira
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Flávio Ribeiro
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Flávio Ribeiro
 
[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
[Curso Java Basico] Aulas 75-84: Strings e StringBuilder[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
[Curso Java Basico] Aulas 75-84: Strings e StringBuilderLoiane Groner
 
Programação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHPProgramação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHPJuliana Chahoud
 
[Curso Java Basico] Aula 63: printf
[Curso Java Basico] Aula 63: printf[Curso Java Basico] Aula 63: printf
[Curso Java Basico] Aula 63: printfLoiane Groner
 

What's hot (19)

Palestra python
Palestra pythonPalestra python
Palestra python
 
Palestra Mocks - AgileBrazil 2010
Palestra Mocks - AgileBrazil 2010Palestra Mocks - AgileBrazil 2010
Palestra Mocks - AgileBrazil 2010
 
Design de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentávelDesign de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentável
 
Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem c
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em Python
 
Resta um java
Resta um javaResta um java
Resta um java
 
[Curso Java Basico] Aula 56: Enum: metodos abstratos
[Curso Java Basico] Aula 56: Enum: metodos abstratos[Curso Java Basico] Aula 56: Enum: metodos abstratos
[Curso Java Basico] Aula 56: Enum: metodos abstratos
 
Programação Desktop: Revisão Core Java
Programação Desktop: Revisão Core JavaProgramação Desktop: Revisão Core Java
Programação Desktop: Revisão Core Java
 
Ubiquitous Language - Portugues
Ubiquitous Language - PortuguesUbiquitous Language - Portugues
Ubiquitous Language - Portugues
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4Implementação de Aplicações Móveis e Jogos com Python - Aula 4
Implementação de Aplicações Móveis e Jogos com Python - Aula 4
 
Scatole Nere
Scatole NereScatole Nere
Scatole Nere
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
 
Javascript
JavascriptJavascript
Javascript
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3Implementação de Aplicações Móveis e Jogos com Python - Aula 3
Implementação de Aplicações Móveis e Jogos com Python - Aula 3
 
[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
[Curso Java Basico] Aulas 75-84: Strings e StringBuilder[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
 
Programação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHPProgramação Reativa e Funcional e extensões para PHP
Programação Reativa e Funcional e extensões para PHP
 
iOS 8 com swift
iOS 8 com swiftiOS 8 com swift
iOS 8 com swift
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
[Curso Java Basico] Aula 63: printf
[Curso Java Basico] Aula 63: printf[Curso Java Basico] Aula 63: printf
[Curso Java Basico] Aula 63: printf
 

Similar to Java Básico - Exercícios de Hello World, cálculo de horas, lista de nomes e jogo de cartas

Java Básico - Exercícios
Java Básico - ExercíciosJava Básico - Exercícios
Java Básico - ExercíciosAndré Salla
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com javaMaurício Linhares
 
Curso lógica de programação
Curso   lógica de programaçãoCurso   lógica de programação
Curso lógica de programaçãoPaulo Batista
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funçõesCarla Lee
 
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_javaMirlem Pereira
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Javathomasdacosta
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04thomasdacosta
 
DOJO - TDD com C++
DOJO - TDD com C++DOJO - TDD com C++
DOJO - TDD com C++thiagodp
 
TDD em C++
TDD em C++TDD em C++
TDD em C++thiagodp
 
mod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasmod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasdiogoa21
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02thomasdacosta
 

Similar to Java Básico - Exercícios de Hello World, cálculo de horas, lista de nomes e jogo de cartas (20)

Java Básico - Exercícios
Java Básico - ExercíciosJava Básico - Exercícios
Java Básico - Exercícios
 
Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
 
apostila C++
apostila C++apostila C++
apostila C++
 
Curso lógica de programação
Curso   lógica de programaçãoCurso   lógica de programação
Curso lógica de programação
 
Exemplos registros e funções
Exemplos registros e funçõesExemplos registros e funções
Exemplos registros e funções
 
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Java
 
Java5
Java5Java5
Java5
 
Tdc2010 web
Tdc2010 webTdc2010 web
Tdc2010 web
 
Algop - aula 04
Algop - aula 04Algop - aula 04
Algop - aula 04
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Algop - aula 07
Algop - aula 07Algop - aula 07
Algop - aula 07
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04
 
DOJO - TDD com C++
DOJO - TDD com C++DOJO - TDD com C++
DOJO - TDD com C++
 
TDD em C++
TDD em C++TDD em C++
TDD em C++
 
mod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasmod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicas
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Exercicios facebook
Exercicios facebookExercicios facebook
Exercicios facebook
 
Series lab
Series labSeries lab
Series lab
 
Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02
 

Java Básico - Exercícios de Hello World, cálculo de horas, lista de nomes e jogo de cartas

  • 2. Hello World • A aplicação deve exibir no console os dizeres: “Hello World”. • A aplicação deve encerrar com sucesso em seguida.
  • 3. public class Main { public static void main(String[] args) { System.out.print("Hello World"); System.exit(0); } }
  • 4. Calculando horas • A aplicação deve realizar as seguintes conversões de minutos para horas: 1. 60 minutos 2. 5 minutos 3. 55 minutos 4. 99 minutos 5. 110 minutos 6. 1450 minutos • A lógica de exibição dos resultados deverá ser: A. Se a conversão resultar em uma hora exata, exibir o resultado como: 1 hora, 2 horas, 3 horas. Atenção para o plural! B. Se a conversão resultar em um valor inferior a uma hora completa, deverá exibir os valores em minutos, como: 1 minuto, 20 minutos, 30 minutos. C. Se a conversão resultar em um valor superior a uma hora completa, sendo um valor não exato, deverá exibir a hora abreviada, conforme os exemplos: 1h 20 min, 3h 10 min. D. Se os minutos resultantes da conversão não exata forem superiores a 3/4 de hora, deverá ser exibido a quantidade de minutos faltantes para a próxima hora completa. Exemplo: 75 minutos ficaram “1h 15 min”, já 175 minutos ficariam “5 min para 3 h"
  • 5. package br.org.andresalla; public class Main { public static void main(String [] args) { conversao(60); conversao(5); conversao(55); conversao(99); conversao(110); conversao(1450); } public static void conversao(int minutos) { int resto = minutos % 60; int horas = minutos / 60; if (resto == 0) { if (horas == 1) { System.out.println(horas + " hora"); } else { System.out.println(horas + " horas"); } } else if (horas == 0) { if (minutos == 1) { System.out.println(minutos + " minuto"); } else { System.out.println(minutos + " minutos"); } } else if (resto >= 45) { int falta = 60 - resto; System.out.println(falta + " min para " + (horas + 1) + "h"); } else { System.out.print(horas + " h " + resto + "min"); } } } •
  • 6. Lista de Nomes • A aplicação deverá receber em seu método principal uma lista de nomes. • A aplicação deverá varrer a lista buscando por nomes repetidos. • Caso encontre algum nome repetido, deverá exibi-lo como: “Fulano encontra-se em duplicidade” • Caso não haja nenhum nome repetido, deverá exibir a mensagem “Registros verificados com sucesso”
  • 7. package br.org.andresalla; public class Main { public static void main(String[] args) { String[] nomes = {"André", "Paulo", "Vanessa", "André", "João"}; String[] nomesRepetidos = new String[nomes.length]; for (int i = 0; i < nomes.length; i++) { String nome = nomes[i]; for (int j = i + 1; j < nomes.length; j++) { String proximo = nomes[j]; if (nome == proximo) { if (!isJaAdicionado(nome, nomesRepetidos)) { int lastPos = ultimaPosicao(nomesRepetidos); if (lastPos >= 0) { nomesRepetidos[lastPos] = nome; } } } } } if (contemNomes(nomesRepetidos)) { for (int i = 0; i < nomesRepetidos.length; i++) { if (nomesRepetidos[i] == null) { break; } System.out.println(nomesRepetidos[i] + " encontra-se em duplicidade"); } } else { System.out.println("Registros verificados com sucesso"); } } …
  • 8. public static boolean contemNomes(String[] nomes) { for (int i = 0; i < nomes.length; i++) { if (nomes[i] != null) { return true; } } return false; } public static int ultimaPosicao(String [] nomes) { for (int i = 0; i < nomes.length; i++) { if (nomes[i] == null) { return i; } } return -1; } public static boolean isJaAdicionado(String nome, String[] nomes){ for (int i = 0; i < nomes.length; i++) { if (nomes[i] == nome) { return true; } } return false; } } …
  • 9. Jogando cartas • A aplicação deve possuir os seguintes Modelos: 1. Jogador 2. Carta • Cada jogador terá um nome, um identificador (ex: Jogador 1, 2, 3) e 3 cartas. • Cada carta terá um valor de 1 a 10. • Cada jogador receberá 3 cartas aleatórias. • Cada jogador terá uma ação jogar, que selecionará uma carta aleatória das suas cartas, e colocará em jogo; assim como uma ação receber carta, que adicionará uma carta à sua mão. • A aplicação deve realizar a jogada de cada um dos jogadores, e, em seguida, verificar quem foi o ganhador. • O ganhador é aquele que tirou a carta maior. • No final, a aplicação deve exibir as seguintes mensagens no console: A. Jogador X: 6 B. Jogador Y: 9 C. Ganhador: Jogador Y
  • 10. package br.org.andresalla.models; public class Carta { int valor; public Carta(int valor) { if (valor > 10) { this.valor = 10; } else if (valor < 1) { this.valor = 1; } else { this.valor = valor; } } public int getValor() { return valor; } }
  • 11. package br.org.andresalla.models; import java.util.ArrayList; import java.util.List; import java.util.Random; public class Jogador { private int id; private String nome; private List<Carta> cartas; public Jogador(int id, String nome) { this.id = id; this.nome = nome; this.cartas = new ArrayList<Carta>(); } public Carta jogar() { Random gerador = new Random(); int index = gerador.nextInt(cartas.size()); return cartas.get(index); } …
  • 12. public void adicionaCarta(Carta carta) { if (cartas.size() < 3) { cartas.add(carta); } } public int getId() { return id; } public String getNome() { return nome; } } …
  • 13. package br.org.andresalla; import java.util.ArrayList; import java.util.List; import java.util.Random; import br.org.andresalla.models.Carta; import br.org.andresalla.models.Jogador; public class Main { public static void main(String[] args) { List<Jogador> jogadores = new ArrayList<Jogador>(); jogadores.add(new Jogador(1, "André")); jogadores.add(new Jogador(2, "Paulo")); Random gerador = new Random(); for (Jogador jogador : jogadores) { for (int i = 0; i < 3; i++) { jogador.adicionaCarta(new Carta(gerador.nextInt(10) + 1)); } } …
  • 14. Carta maiorCarta = null; Jogador ganhador = null; for (Jogador jogador : jogadores) { Carta jogada = jogador.jogar(); System.out.println("Jogador " + jogador.getId() + ": " + jogada.getValor()); if ((maiorCarta == null) || (maiorCarta.getValor() < jogada.getValor())) { maiorCarta = jogada; ganhador = jogador; } } if (ganhador != null) { System.out.println("Ganhador: " + ganhador.getNome()); } } } …