Uma dica importante para você se tornar um bom desenvolvedor:
Aprenda a usar ferramentas de busca.
Na situação acima em que o amigo lhe pediu para fazer o exercício utilizando array, bastava você ir no www.google.com.br e digitar “java array exemplos”.
Olhe esse exemplo
Boa sorte,
[quote=RiQuInHo_$_$]Easy !!
Escreva um aplicativo que lê um inteiro e determinVa e imprime se ele é impar ou par.[/quote]
[code]import java.util.Scanner;
public class exercicio{
public static void main(String args[]){
int Numero;
System.out.println(“entre com o número”);
Numero = new Scanner(System.in).nextInt();
if(Numero % 2 == 0) {
System.out.println(“O número é par”);
}
else {
System.out.println(“O número é impar”);
}
}
}
[/code]
Obrigado marciobarroso
Um exercício que costuma quebrar bastante a cabeça é o seguinte.
Sorteie um número, e veja com o usuário se ele consegue adivinhá-lo. A única informação que você dá é que o número que o usuário entrou é maior ou menor que o número sorteado. Vou dar um exemplo da interação, e veja se consegue escrever um programa que faça algo parecido com isso (obviamente, cada vez que você rodar o programa, ele vai dar um resultado diferente). (No caso, suponha que o programa sorteou o número 35)
C> java -cp . Adivinhe
Bom dia, sou o programa "Adivinhe" e sorteei um número de 1 a 100.
Você vai tentar adivinhar o número que sorteei, mas só vou indicar se o número é maior ou menor.
Por favor, entre com sua estimativa.
50
O número que sorteei é menor. Tente novamente
25
O número que sorteei é maior. Tente novamente
37
O número que sorteei é menor. Tente novamente
31
O número que sorteei é maior. Tente novamente
34
O número que sorteei é maior. Tente novamente
35
Parabéns, você acertou o número (35). Quer tentar novamente?
Digite 1 se quiser continuar, 0 se quiser sair
0
package com.byiorio;
import java.util.concurrent.ThreadLocalRandom;
import javax.swing.JOptionPane;
public class GuessGame {
private static final int SAIR_DO_JOGO = 0;
int tentativaCorr,numero,numeroRandom;
String nome;
private void inicializarVariaveis() {
tentativaCorr = 0;
numero = 0;
numeroRandom = ThreadLocalRandom.current().nextInt(0, 2);
}
public void jogar() {
boolean continuarJogando = true;
nome = JOptionPane.showInputDialog(null, "Olá,qual o seu nome?");
while (continuarJogando) {
iniciar();
if (JOptionPane.NO_OPTION == JOptionPane.showConfirmDialog(null,"PARABÉNS deseja tentar novamente?","E agora",JOptionPane.YES_NO_OPTION)) {
continuarJogando = false;
}
}
}
private void iniciar(){
inicializarVariaveis();
boolean continuar=true;
while (continuar) {
tentativaCorr++;
numero = Integer.parseInt(JOptionPane.showInputDialog(null, "Bom dia, sou o programa ''Adivinhe'' e sorteei um número de 1 a 100. \n Você vai tentar adivinhar o número que sorteei, mas só vou indicar se o número é maior ou menor. \n Por favor, entre com sua estimativa. "));
if (numero == numeroRandom) {
JOptionPane.showMessageDialog(null, "Parabens " + nome + " voce acertou, o numero era " + numeroRandom);
continuar=false;
}else if (numero == SAIR_DO_JOGO) {
continuar=false;
}else if (tentativaCorr >= 1000000){
JOptionPane.showMessageDialog(null, "O numero era " + numeroRandom);
continuar=false;
} else if (numero < numeroRandom) {
JOptionPane.showMessageDialog(null, "O número que sorteei é maior. Tente novamente" );
} else if (numero > numeroRandom) {
JOptionPane.showMessageDialog(null, "O número que sorteei é menor. Tente novamente");
}
}
}
public static void main(String[] args) {
GuessGame guess = new GuessGame();
guess.jogar();
}
}
Deu trabalho mas foi…
Agora vou propor o contrário - faça um programa que ADIVINHE o número que o usuário tem em mente. O usuário tem de responder “maior”, “menor” ou “igual” - como você já sabe usar JOptionPane fica mais fácil você selecionar uma das três opções.
Dica: não vale começar de 1 e ficar incrementando o número. Use o método semelhante ao que o usuário, no exemplo que dei, usou (ou seja, ir usando o método da bissecção).
[quote=entanglement]Agora vou propor o contrário - faça um programa que ADIVINHE o número que o usuário tem em mente. O usuário tem de responder “maior”, “menor” ou “igual” - como você já sabe usar JOptionPane fica mais fácil você selecionar uma das três opções.
Dica: não vale começar de 1 e ficar incrementando o número. Use o método semelhante ao que o usuário, no exemplo que dei, usou (ou seja, ir usando o método da bissecção).
[/quote]
olá, já tentei e nao encontrei nada…
Você sabe como é que é o método da bissecção?
não, já li, mas nao percebi
Suponha que o número esteja entre 1 e 100, e o usuário tenha pensado no número 35.
O primeiro chute que você dá é (1 + 100) / 2 = 50.
Se o usuário responder que o número é menor, você dá o seguinte chute: (1 + 50) / 2 = 25
Agora ele respondeu que o número é maior, portanto você dá o seguinte chute: (25 + 50) / 2 = 37
Ele respondeu que é menor, portanto você chuta: (25 + 37) / 2 = 31
Ele respondeu agora que é maior. Chute: (31 + 37) / 2 = 34
Ele respondeu agora que é maior. Chute: (34 + 37) / 2 = 35
O usuário irá responder agora que o programa acertou o número (35).
ta quase, só uma coisa, como é que eu faço para quando digo por exemplo o número é: (1+100) / 2 = 50, ir buscar o 50 para por depois: (1+50) / 2 = 25 e ir buscar o 25 e por ai a diante?
Ora pois pois, crie duas variáveis int, e ponha nessas variáveis os valores adequados. Você precisa quebrar um pouco a cabeça, não?
até agr tenho isto… não passo daqui… [code]package com.byiorio;
import javax.swing.JOptionPane;
public class GuessGame {
private static final int SAIR_DO_JOGO = 0;
int numero, tent;
String nome ;
private void inicializarVariaveis() {
tent = 0;
numero = 0;
}
public void jogar() {
boolean continuarJogando = true;
nome = JOptionPane.showInputDialog(null, "Olá,qual o seu nome?");
JOptionPane.showInputDialog(null, "Para dizer que o número é maior que o seu digite '1' para ser menor digite '0'");
while (continuarJogando) {
iniciar();
if (JOptionPane.NO_OPTION == JOptionPane.showConfirmDialog(null,"PARABÉNS deseja tentar novamente?","E agora",JOptionPane.YES_NO_OPTION)) {
continuarJogando = false;
}
}
}
private void iniciar(){
inicializarVariaveis();
boolean continuar=true;
while (continuar) {
numero = Integer.parseInt(JOptionPane.showInputDialog(null, "o número é " +(1 + 100) / 2));
if (numero == 100) {
JOptionPane.showMessageDialog(null, "Acertei ");
continuar=false;
}else if (numero == SAIR_DO_JOGO) {
continuar=false;
} else if (numero > 0) {
JOptionPane.showMessageDialog(null, "O número é " );
} else if (numero < 1 )
{
JOptionPane.showMessageDialog(null, "O número é " +(1+50)/2);
}
}
}
public static void main(String[] args) {
GuessGame guess = new GuessGame();
guess.jogar();
}
}
[/code]
Pedro,
Como acho que você se enrolou neste, segue uma solução para que você tire suas dúvidas …
import javax.swing.JOptionPane;
public class GuessGame {
private int hint;
private int param1;
private int param2;
private Integer result;
private int limit;
private String name;
public GuessGame() {
this.limit = 100;
while( name == null ) {
name = JOptionPane.showInputDialog(null, "Olá, para começarmos no jogo digite seu nome:");
if( name == null || "".equals(name) ) name = null;
if( name == null ) JOptionPane.showMessageDialog(null, "Favor digitar um nome válido");
}
JOptionPane.showMessageDialog(null, name + ", vamos jogar um jogo de palpite ... \nPense em um número entre 1 e " + this.limit + " e eu tentarei adivinhá-lo");
Object[] options = {"Maior","Menor","Isso mesmo ... Você acertou"};
do {
calculate();
} while( (this.result = JOptionPane.showOptionDialog(null,"O número escolhido é o " + this.hint + " ?", "E agora?", JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE,null,options,options[2])) != JOptionPane.CANCEL_OPTION );
}
private void calculate() {
if( this.result == null ) {
this.param1 = 1;
this.param2 = this.limit;
} else if( this.result.intValue() == JOptionPane.YES_OPTION ) { // maior
this.param1 = this.hint;
} else if( this.result.intValue() == JOptionPane.NO_OPTION ) { // menor
this.param2 = this.hint;
}
this.hint = ( this.param1 + this.param2 ) / 2;
}
public static void main(String[] args) {
new GuessGame();
}
}