Exercicios

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… :frowning:

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]

nao sei

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();
	}
}