Comparar inteiros e comparar

olá pessoal - meu primeiro post … parabens a todo pessoa do GUJ - esse site foi muito bem recomendado…

pessoal to iniciando os estudos em java - fiz um curso e estou agora estudando o livro do deitel

parei em um exercício que pede para escrever um aplicativo que leia cinco numeros inteiros determina e imprime o maior e o menor…como faço isso…alguém pode me ajudar???

o codigo ta assim…


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

	
	
	} // void main


} // class Comparar

declare duas variáveis do tipo int, uma “maior” e outra “menor”
inicialize as duas com o valor 0(zero)
Faça um laco for e leia 5 valores
para cada valor lido, compare se o valor atual é maior que “maior”. Se for,
“maior” passa a ser igual ao valor atual
veja agora se atual é menor que “menor”. Se for, "menor"passa a ser igual a atual.

No fim, “maior” tera o maior valor e “menor”, o menor.

Confuso?! hehehe

Abraço!

Esse tipo de problema se resolve normalmente assim:

  • Crie duas variáveis para conter o valor máximo e o valor mínimo.

  • Quando ler o primeiro número, atribua-o para as variáveis do valor máximo e do valor mínimo.

  • Quando ler os números subseqüentes, faça o seguinte, para cada um deles:

  • Se a variável do valor máximo for menor que o valor lido, então atribua o valor lido à variável do valor máximo.

  • Se a variável do valor mínimo for maior que o valor lido, então atribua o valor lido à variável do valor mínimo.

  • No fim de tudo, imprima a variável do valor máximo e do valor mínimo.

  • Experimente isso em papel, com a seguinte seqüência: 3, 1, 4, 1, 5, para você entender o que falei, e depois escreva o programa.

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 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 [] v = {numero1,numero2, numero3, numero4, numero5};

v=ordemcrescente(v);
/System.out.println(“Vetor ordenado-crescente:\n”);
for(int i=0;i<v.length;i++)
System.out.println(v[i]);
/

int maior=v[v.length-1];
int menor=v[0];
System.out.println(“Maior:”+maior+"\nMenor:"+menor);
} // void main

static int [] ordemcrescente (int v[])
{
int j, i, x;
for (j = 1; j >&lt v.length; j++) {
x = v[j];
for (i = j-1; i &gt= 0 && v[i] &gt x; --i)
v[i+1] = v[i];
v[i+1] = x;
}
return v;
}
} // class Comparar

Falos.

caro colega edertp …

import java.util.Scanner;

a declaração import ajuda o compilador localizar uma classe utilizada nesse programa…essa linha indica que no exemplo vamos utilizar a classe Scanner que pertence ao pacote java.util…o compilador tenta assegurar que no exemplo vamos uisar corretamente a classe Scanner…

agora o codigo abaixo eu naum sei te explicar naum - to começando em java agora cara…
for (j = 1; j >< v.length; j++)

de boa cara…

mas entaum - será que você me ajudar???

como posso terminar meu código seguindo a orientação que recebi:

Esse tipo de problema se resolve normalmente assim:

  • Crie duas variáveis para conter o valor máximo e o valor mínimo.

  • Quando ler o primeiro número, atribua-o para as variáveis do valor máximo e do valor mínimo.

  • Quando ler os números subseqüentes, faça o seguinte, para cada um deles:

  • Se a variável do valor máximo for menor que o valor lido, então atribua o valor lido à variável do valor máximo.

  • Se a variável do valor mínimo for maior que o valor lido, então atribua o valor lido à variável do valor mínimo.

  • No fim de tudo, imprima a variável do valor máximo e do valor mínimo.

*** tem como me ajudarem a fazer esse procedimento acima implementarndo o código???**** fiquei meio perdido nisso pessoal - desculpem se é uma coisa facil demais pra vc - mas se puderem ajudar…garto…

vlw pela dica…

e mais uma coisa - por que quando tentar compilar o programa ela da uma mensagem de erro na linha int maior = 0;

no programa declarei os cinco numeros: int numero1 e também a variavel maior: int maior;

o que fiz de errado dessa vez??? pode me ajudar de novo???

for (j = 1; j &lt v.length; j++) {
x = v[j];
for (i = j-1; i &gt= 0 && v[i] &gt x; --i)
v[i+1] = v[i];
v[i+1] = x;
}

acho q cometi o erroo qd colei aqui.

Valeu.

pessoal - primeiro mais uma vez um muito obrigado ao pessoal do GUJ - site show de bola…parabéns a todos…

e um obrigado especial ao colega ppontes … esclareceu a dúvida e ainda mandou o codigo comentado - se interessar a alguém - ta aí…

/* Aplicativo que recebe 5 inteiros do usuário e atribui os valores a um ARRAY de comprimento 5

  • para posterior comparação do maior e menor valor*/

import java.util.Scanner; // aqui estamos importando a classe Scanner para receber os valores fornecidos pelo usuário.
/* import java.lang.; --> aqui vc importou o pacote java.lang.
Isso não é obrigado pq o compilador já faz isso pra vc automaticamente
em todas as suas classes criadas por vc! Então vc pode apagar este import com segurança!
/

class CompMaiorMenor
{
int arrayvalores[] = new int[5];

public void exeValor()
{
	Scanner exevalor = new Scanner(System.in); // criamos um objeto Scanner "exevalor" para a entrada dos valores
	
	System.out.println("Entre com os valores: ");
	for(int x=0; x<arrayvalores.length; x++) // criamos um for para atribuir os valores no array, em vez de ficar colocando aquele...
		arrayvalores[x] = exevalor.nextInt(); // ... monte de "System.out.println(Digite o primeiro numero:...Digite o segundo numero:...)", assim é mais prático! =D
	
	System.out.printf("%s\t%d\n%s\t%d\n", "Maior valor:", getMaior(), "Menor valor:", getMenor()); // aqui vai exibir o maior valor e o menor valor depois que ele executar o método "getMaior" e "getMenor".
	// se vc não estiver entendendo os especificadores de formato(%s%d) ou os caracteres de escape(\n), sugiro que dê uma olhada na API do JAVA em relação ao "printf".
}

// método para obter o valor maior do array	
public int getMaior()
{
	int valmaior = arrayvalores[0]; // aqui nós estamos supondo que o valor maior seja o elemento do "array[0]".
	
	for(int x : arrayvalores) // aqui criamos um FOR aprimorado para percorrer o array em busca de um valor maior do que o "array[0]" que foi passado para a variável "valmaior".
	{
		if(x > valmaior) // aqui utilizamos uma condição em que se ele encontrar um valor maior do que o "array[0]" que foi passado para a variável "valmaior".... 
			valmaior = x; // ...ele vai subtituir esse valor maior(x) na variável local "valmaior".
	}
	
	return valmaior; // aqui ele retorna o valor maior do array.
} // fim do método getMaior

//	 método para obter o valor menor do array
public int getMenor()
{
	int valmenor = arrayvalores[0]; // aqui nós estamos supondo que o valor menor seja o elemento do "array[0]".
	
	for(int x : arrayvalores) // aqui criamos um FOR aprimorado para percorrer o array em busca de um valor menor do que o "array[0]".
	{
		if(x < valmenor) // aqui utilizamos uma condição em que se ele encontrar um valor menor do que o suposto "array[0]"... 
			valmenor = x; // ...ele vai subtituir esse valor menor(x) na variável local "valmaior".
	}
	
	return valmenor; // aqui ele retorna o valor menor do array.
} // fim do método getMenor

}

public class Comparar
{
public static void main(String[] args)
{
CompMaiorMenor exe = new CompMaiorMenor(); // aqui cria o objeto pra poder intancia-lo…

	exe.exeValor(); // aqui depois de criar o objeto estamos chamando o método "exeValor()".
}

}

[quote=edertp]import java.util.Scanner;

[b]for (j = 1; j &gt&lt v.length; j++) { [/b]

[/quote]

Q isso? o0

[quote=kodzul]caro colega edertp …

import java.util.Scanner;

a declaração import ajuda o compilador localizar uma classe utilizada nesse programa…essa linha indica que no exemplo vamos utilizar a classe Scanner que pertence ao pacote java.util…o compilador tenta assegurar que no exemplo vamos uisar corretamente a classe Scanner…

agora o codigo abaixo eu naum sei te explicar naum - to começando em java agora cara…
for (j = 1; j >< v.length; j++)

[/quote]

Desculpa ter me expressado mal, a questão de ter postado logo a cima, é q isso em java não existe ><. Ele deve ter se enganado, ou ele quis tentar fazer menos < ou maior > ou diferente !=, mais isso ae não existe =)…

E o q eu postei foi uma brincadeirainha com o erro do Ederp =)…

[quote=kodzul]de boa cara…

mas entaum - será que você me ajudar???

como posso terminar meu código seguindo a orientação que recebi:

Esse tipo de problema se resolve normalmente assim:

  • Crie duas variáveis para conter o valor máximo e o valor mínimo.

  • Quando ler o primeiro número, atribua-o para as variáveis do valor máximo e do valor mínimo.

  • Quando ler os números subseqüentes, faça o seguinte, para cada um deles:

  • Se a variável do valor máximo for menor que o valor lido, então atribua o valor lido à variável do valor máximo.

  • Se a variável do valor mínimo for maior que o valor lido, então atribua o valor lido à variável do valor mínimo.

  • No fim de tudo, imprima a variável do valor máximo e do valor mínimo.

*** tem como me ajudarem a fazer esse procedimento acima implementarndo o código???**** fiquei meio perdido nisso pessoal - desculpem se é uma coisa facil demais pra vc - mas se puderem ajudar…garto…[/quote]

Tipo assim é so vc pensar um pouquinho mais tudo bem vai o codigo ae… Pra achar o MAIOR agora pensa um pouquinho só e acha o menor.

[code] int maior = 0;
int[] vetor = new int [10];
for (int i = 0 ; i < 10 ; i++){
//coloca 10 valores aleatorios no array
vetor[i] = ((int)(Math.random()*10));
}

    //percorre o array em busca do maior numero
    for (int i = 0 ; i < 10 ; i++){
    	if (i==0)
    		maior = vetor[i];
    	else if (vetor[i] > maior)
    		maior = vetor[i];
    }[/code]

editando coloquei um erro grotesco ai em cima, agora ta certinho.