comparação de números

7 respostas
K

***bom dia galera…

to precisando de uma força de vocês…to iniciando agora em programação java e estou fazendo um pequeno exemplo que consiste no usuario digitar alguns numeros e depois comparar o maior e o menor…

No forum basico o pessoal me deu umas dicas mas mesmo assim não to conseguindo…

O código está assim - mas com erro…alguem pode ajudar??? fico grato galera…se puderem por favor…

ps: po galera conto com vcs…to estudando pra crescer no trampo…grato

import java.util.Scanner;

public class Comparar
{

public static void main (String args [])
{

	Scanner input = new Scanner (System.in);

	int numero1;
	int numero2;
	int numero3;
	int numero4;
	int numero5;

	int numeromaior;
	//int numeromenor;


	System.out.print ("Digite o primeiro número: ");
	numero1 = input.nextInt();

	System.out.print ("Digite o segundo número: ");
	numero2 = input.nextInt();

	System.out.print ("Digite o terceiro número: ");
	numero3 = input.nextInt();

	System.out.print ("Digite o quarto número: ");
	numero4 = input.nextInt();

	System.out.print ("Digite o quinto número: ");
	numero5 = input.nextInt();

	int numeromaior = 0;	  // (aqui da erro)

     int[] vetor = new int [5];
     for (int i = 0 ; i < 5 ; i++){
     	//coloca 5 valores aleatorios no array
     	vetor[i] = ((int)(Math.random()*5));	  // Math.random serve pra fazer a comparação???
     }
     
     //percorre o array em busca do maior numero
     for (int i = 0 ; i < 5 ; i++){
     	if (i==0)
     		numeromaior = i;
     	else if (i > numeromaior)
     		numeromaior = i;
     }

} // class Comparar

} // void main

=================================

7 Respostas

T

Po cara, tu chegou a ler o erro que estava dando???! Você declarou duas vezes a variável ‘numeromaior’.

K

bom dia e muito obrigado thiago.correa - vlw mesmo - olho aberto agora - esse erro naum me pega mais - tomara hehehe

cara rodou de boa - mostra o resultado certo mas da uma mensagem de erro no final - mostra o num maior e aparece esse erro… pode me dizer por que??? e sem abusar cara…naum entendo duas coisas…

vetor[i] = ((int)(Math.random()*5)); // o que o comando Math faz?
e por que usou o [i]???

ps - to rodando o codigo no winedit…

import java.util.Scanner;

public class Comparar
{

public static void main (String args [])
{

	Scanner input = new Scanner (System.in);

	int numero1;
	int numero2;
	int numero3;
	int numero4;
	int numero5;


	System.out.print ("Digite o primeiro numero: ");
	numero1 = input.nextInt();

	System.out.print ("Digite o segundo numero: ");
	numero2 = input.nextInt();

	System.out.print ("Digite o terceiro numero: ");
	numero3 = input.nextInt();

	System.out.print ("Digite o quarto numero: ");
	numero4 = input.nextInt();

	System.out.print ("Digite o quinto numero: ");
	numero5 = input.nextInt();

	int numeromaior = 0;	

     int[] vetor = new int [5];
     	for (int i = 0 ; i <= 5 ; i++)
		{
     	//coloca 5 valores aleatorios no array
     	vetor[i] = ((int)(Math.random()*5));	 
     }
     
     
		//percorre o array em busca do maior numero
     for (int i = 0 ; i <= 5 ; i++)
		{
     	if (i==0)
     		numeromaior = i;
     	else if (i >= numeromaior)
     		numeromaior = i;
     }

	System.out.println ("O maior numero digitado e: " + numeromaior);

} // class Comparar

} // void main
V

http://guj.com.br/java.tutorial.artigo.107.1.guj

http://guj.com.br/java.tutorial.artigo.16.1.guj

T

Cara seria bom você dar uma olhada nos conceitos de java, daí fica mais fácil de entender as coisa.

Math na verdade não é um comando, e sim uma classe java que contém métodos para operações matemáticas (exponenciação, radiciação e por aí vai)

Bom quanto a segunda pergunta: a tua variável ‘vetor’ é um array então para acessar algum dado em uma determinada posição desse vetor usa-se essa notação: vetor[0] é a primeira posição vetor[n-1] é a última posição sendo ‘n’ a “capacidade” do vetor, no caso, a variável inteira ‘i’ está fazendo o papel de indice, ou seja em tempo de execução o compilador verifica qual p valor de ‘i’ e retorna o valor da posição que ‘i’ tem como valor.

Se você quer crescer profissionalmente como você disse, dê uma olhada em algoritmos de programação (para entender problemas como esse) e nos fundamentos da linguagem.

Boa sorte!

K

muito obrigado mais uma vez pelas dicas - pode deixar que já to fazendo isso cara…e vou continuar estudando…vlw mesmo…e sucesso pra vc

pra encerrar o assunto…
1- por que no meu código da erro na hora exibir o resultado???

exception in thread main java.lang.ArrayIndexOutOfBoundsException: 5 at Comparar.main(Comparar.java: 41)

ps: pra testar eu insiro numeros de 1 até 5e a linha 41 do programa é

vetor[i] = ((int)(Math.random()*5));

2- se for realizar a comparação do numero menor vai ser a mesma logica né???

T

Como eu te falei, isso é outra coisa básica. Em C/C++ e Java (nas demais linguagens eu não posso afirmar) o vetores começam em zero, logo a última posição do vetor vai ser n-1, sendo n o tamanho do vetor.

No teu caso o teu vetor tem tamanho 5, então ele vai de 0 a 4, no teu ‘for’ ele vai tentar acessar a posição de índice 5 (o que seria a 6ª posição do vetor), por isso a Exceção que quer dizer índice do array fora do limite, o mesmo vai acontecer se você tentar acessar a posições menores que 0.

A segunda pergunta tente responder você mesmo, se para achar o maior número você fez essa, logica, será que ela funciona para o menor número??!

K

heheheh - cara tu é bom nisso…isso mesmo vc ta certo cara - em java, o primeiro elemento em cada array tem índice 0, podendo ser chamado de zero-ésimo elemento… livro java deitel página 204… mais uma vez muito obrigado - to estudando o livro de Java do Deitel…cara vlw mesmo parceiro…tudo de bom pra vc…

e quando a comparação do menor numero - hehehe - vou tentar aqui…depois te conto - só uma coisinha - hehehehe - depois da instrução do maior numero já posso começar a do menor numero - certo??? ou tem alguma regra ou restrição???

Criado 6 de setembro de 2006
Ultima resposta 6 de set. de 2006
Respostas 7
Participantes 3