GARANTIR DESCONTO

Fórum Como imprimir o menor e o maior número? #564914

09/04/2009

0

Salve! Estava estudando o livro do [b]Deitel[/b], e num dos exercícios ele pede que: [b]1) [/b]Seja criado um aplicativo que leia 5 números e imprima o [b]menor[/b] deles e o [b]maior[/b] deles; [b]2) Usando apenas o que ele ensinou no Cap. 2;[/b] [i](Não preciso dizer que estou no começo do livro, e ele me "forçou" a ser "braçal" na codificação...)[/i] Sendo assim, olha o que codifiquei:
/* Exercício 2.24, Pág. 55 */

import java.util.Scanner;

public class Pag55e224 {

	public static void main (String args[]) {

		Scanner input = new Scanner (System.in);

		int a;
		int b;
		int c;
		int d;
		int e;

		System.out.print ("Digite o 1o numero: ");
		a = input.nextInt();

		System.out.print ("Digite o 2o numero: ");
		b = input.nextInt();

		System.out.print ("Digite o 3o numero: ");
		c = input.nextInt();

		System.out.print ("Digite o 4o numero: ");
		d = input.nextInt();

		System.out.print ("Digite o 5o numero: ");
		e = input.nextInt();

		if (a < b | a < c | a < d | a < e) { // "a" menor que todos

			System.out.printf ("Este e o menor deles: %d\n", a);

		}

			if (a > b | a > c | a > d | a > e) { // "a" maior que todos

				System.out.printf ("Este e o maior deles: %d\n", a);
                 
                        // E assim sucessivamente...
Mas não consegui o resultado esperado... Sei que existem formas mais inteligentes de criar este tipo de aplicativo, mas, [b]seguindo a orientação dele[/b], como eu deveria codificar este aplicativo? Um forte abraço a todos!
Paulo Cassiano

Paulo Cassiano

Responder

Posts

09/04/2009

Paulo Cassiano

Salve! PessoALL, obrigado pelas dicas. Na verdade, cometi o lapso de trocar [b]&&[/b] por [b]|[/b]... Coisa de principiante. Um forte abraço a todos!
Responder

Gostei + 0

09/04/2009

Gustavo Steigert

Estude com atenção essas coisinhas... valem para a maioria das linguagens de programação.
Responder

Gostei + 0

09/04/2009

Bernardo Rezende

eu já ía postar um algoritmo diferente mas agora que eu li ali [b]apenas o que ele ensinou no cap. 2[/b] bom, você pode otimizar esse programa com um laço de repetição e criando uma variável maior e menor, e por aí vai boa sorte nos estudos!
Responder

Gostei + 0

09/04/2009

Camilo Lopes

[quote="pcassiano"]Salve! Estava estudando o livro do [b]Deitel[/b], e num dos exercícios ele pede que: [b]1) [/b]Seja criado um aplicativo que leia 5 números e imprima o [b]menor[/b] deles e o [b]maior[/b] deles; [b]2) Usando apenas o que ele ensinou no Cap. 2;[/b] [i](Não preciso dizer que estou no começo do livro, e ele me "forçou" a ser "braçal" na codificação...)[/i] Sendo assim, olha o que codifiquei:
/* Exercício 2.24, Pág. 55 */

import java.util.Scanner;

public class Pag55e224 {

	public static void main (String args[]) {

		Scanner input = new Scanner (System.in);

		int a;
		int b;
		int c;
		int d;
		int e;

		System.out.print ("Digite o 1o numero: ");
		a = input.nextInt();

		System.out.print ("Digite o 2o numero: ");
		b = input.nextInt();

		System.out.print ("Digite o 3o numero: ");
		c = input.nextInt();

		System.out.print ("Digite o 4o numero: ");
		d = input.nextInt();

		System.out.print ("Digite o 5o numero: ");
		e = input.nextInt();

		if (a < b | a < c | a < d | a < e) { // "a" menor que todos

			System.out.printf ("Este e o menor deles: %d\n", a);

		}

			if (a > b | a > c | a > d | a > e) { // "a" maior que todos

				System.out.printf ("Este e o maior deles: %d\n", a);
                 
                        // E assim sucessivamente...
Mas não consegui o resultado esperado... Sei que existem formas mais inteligentes de criar este tipo de aplicativo, mas, [b]seguindo a orientação dele[/b], como eu deveria codificar este aplicativo? Um forte abraço a todos!
hehe ta gostando do livro eu estou no cap5 iniciando..mas isso ja é de costume do deitel...no inicio colocar o serviço "braçal" mesmo... lembro q o meu exercicio desta questao teve um sintaxe maior que a sua nao usei nenhum dos operadores ||, && pois tentei usar apenas os recursos do cap2" mas de paravens prepara-se para o cap3..muito bom!! infelizmente o forum aki nao permite anexar arquivos, pois postaria um documento q fiz de todos os exercicios que resolvi do deitel 6 edição!! a ideia do exercicio nao é copiar o codigo e sim verificar as maneira existentes de resolver um problema!! :) :razz:
Responder

Gostei + 0

09/04/2009

Jedson

cara tipo achei estranho esse exercicio pq ele nao orienta no capitulo 2 a mexer com booleano...dai fiquei me perguntando se tinha algum jeito de fazer sem usar o & ou |...depois de muita pensar nao achei como fazer isso de um modo simples...
Responder

Gostei + 0

09/04/2009

Jedson

fazendo desse jeito que vc fez so que trocando o | pelo &&...se tiver dois ou mais numeros iguais o programa nao mostra o menor ou maior
Responder

Gostei + 0

21/09/2013

Camilo Lopes

Ralei um pouquinho, mas sendo iniciante acho q tá valendo ... olhem só! import java.util.Scanner; public class comp { private static Scanner input; public static void main(String[] args) { input = new Scanner( System.in ); int a; int b; int c; int d; int e; int max; System.out.print("Digite Numero A: " ); a = input.nextInt(); System.out.print("Digite Numero B: " ); b = input.nextInt(); System.out.print("Digite Numero C: " ); c = input.nextInt(); System.out.print("Digite Numero D: " ); d = input.nextInt(); System.out.print("Digite Numero C: " ); e = input.nextInt(); /* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< O maior Número >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */ if (a >= b) { max = a; a = max; if (a >= c) { max = a; a = max; if (a >= d) { max = a; a = max; if (a >= e) { max = a; a = max; System.out.printf(" O numero A é maior ou igual, Valor: %d\n", a);}}}} if (b >= a) { max = b; b = max; if (b >= c) { max = b; b = max; if (b >= d) { max = b; b = max; if (b >= e) { max = b; b = max; System.out.printf(" O numero B é maior ou igual, Valor: %d\n", b);}}}} if (c >= a) { max = c; c = max; if (c >= b) { max = c; c = max; if (c >= d) { max = c; c = max; if (c >= e) { max = c; c = max; System.out.printf(" O numero C é maior ou igual, Valor: %d\n", c);}}}} if (d >= a) { max = d; d = max; if (d >= b) { max = d; d = max; if (d >= c) { max = d; d = max; if (d >= e) { max = d; d = max; System.out.printf(" O numero D é maior ou igual, Valor: %d\n", d);}}}} if (e >= a) { max = e; e = max; if (e >= b) { max = e; e = max; if (e >= c) { max = e; e = max; if (e >= d) { max = e; e = max; System.out.printf(" O numero E é maior ou igual, Valor: %d\n", e);}}}} /* <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< O menor Número >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */ if (a <= b) { max = a; a = max; if (a <= c) { max = a; a = max; if (a <= d) { max = a; a = max; if (a <= e) { max = a; a = max; System.out.printf(" O numero A é menor ou igual, Valor: %d\n", a);}}}} if (b <= a) { max = b; b = max; if (b <= c) { max = b; b = max; if (b <= d) { max = b; b = max; if (b <= e) { max = b; b = max; System.out.printf(" O numero B é menor ou igual, Valor: %d\n", b);}}}} if (c <= a) { max = c; c = max; if (c <= b) { max = c; c = max; if (c <= d) { max = c; c = max; if (c <= e) { max = c; c = max; System.out.printf(" O numero C é menor ou igual, Valor: %d\n", c);}}}} if (d <= a) { max = d; d = max; if (d <= b) { max = d; d = max; if (d <= c) { max = d; d = max; if (d <= e) { max = d; d = max; System.out.printf(" O numero D é menor ou igual, Valor: %d\n", d);}}}} if (e <= a) { max = e; e = max; if (e <= b) { max = e; e = max; if (e <= c) { max = e; e = max; if (e <= d) { max = e; e = max; System.out.printf(" O numero E é menor ou igual, Valor: %d\n", e);}}}} } }
Responder

Gostei + 0

26/09/2013

Camilo Lopes

tenta isso tbm, embora nao foi passado no capítulo: [i]Scanner ler = new Scanner(System.in); //N esquece de importar a biblioteca! int maior = Integer.MIN_VALUE; //MAIOR = -2147483648 (menor valor de Integer) int menor = Integer.MAX_VALUE; //MENOR = 2147483648 (maior valor de Integer) //Vamos aos valores... for(int i = 0 ; i < 5 ; i++){ // 5 define quantos números você vai ler int aux = ler.nextInt(); //Ler entrada do teclado pelo console if(aux < menor){ menor = aux; //Se o nº digitado for menor que 2147483648, ele passa a ser o menor valor. } if(aux > maior){ maior = aux; //Se o nº digitado for maior que -2147483648, ele passa a ser o maior valor. } }//fim do FOR //Imprime os resultados System.out.println("Maior: "+maior); System.out.println("Menor: "+menor);[/i] cara, nao sei se tem algum erro pq n testei o código, eu digitei ele direto aqui, qual quer coisa me avisa q eu arrumo! tu pode também jogar todos valores dentro de um array, ordená-lo e pegar os valores das extremidades vlw, espero ter ajudado...
Responder

Gostei + 0

26/09/2013

Camilo Lopes

Igrando... É isso aí... mas o intuito do teste no Livro Deitel era exatamente não usar (for, | , &&) ... e determinar qual era o maior e menor entre 5 números... Você teria outra forma não usando (for, | , &&) ... ? Abração! :!:
Responder

Gostei + 0

27/09/2013

Camilo Lopes

ah ok, pro exercício blz, mas acho q é interessante mostrar um algoritmo pra qd precisar pegar maior e menor valor de uma grande quantidade de números.. obs: é [b]L[/b]grando :P
Responder

Gostei + 0

27/09/2013

Camilo Lopes

[quote="lgrando3991"]ah pro exercícios fazer os IFs está ok, mas acho q é interessante saber como pegar maior e menor valor de uma grande quantidade de números... obs: é [b]L[/b]grando :P
Desculpa por errar seu nome!!!! :| Você está completamente certo... esse código q fiz é enorme!!! foi somente uma pegadinha do Livro.... Vlw... :!:
Responder

Gostei + 0

27/09/2013

Lucas Dallpizzol

[quote="lgrando3991"]tenta isso tbm, embora nao foi passado no capítulo: [i]Scanner ler = new Scanner(System.in); //N esquece de importar a biblioteca! int maior = Integer.MIN_VALUE; //MAIOR = -2147483648 (menor valor de Integer) int menor = Integer.MAX_VALUE; //MENOR = 2147483648 (maior valor de Integer) //Vamos aos valores... for(int i = 0 ; i < 5 ; i++){ // 5 define quantos números você vai ler int aux = ler.nextInt(); //Ler entrada do teclado pelo console if(aux < menor){ menor = aux; //Se o nº digitado for menor que 2147483648, ele passa a ser o menor valor. } if(aux > maior){ maior = aux; //Se o nº digitado for maior que -2147483648, ele passa a ser o maior valor. } }//fim do FOR //Imprime os resultados System.out.println("Maior: "+maior); System.out.println("Menor: "+menor);[/i] cara, nao sei se tem algum erro pq n testei o código, eu digitei ele direto aqui, qual quer coisa me avisa q eu arrumo! tu pode também jogar todos valores dentro de um array, ordená-lo e pegar os valores das extremidades vlw, espero ter ajudado...
Seu código tá beleza!!! Valeu pela ajuda... irei dar uma memorizada nisso aqui... :evil:
Responder

Gostei + 0

27/09/2013

Camilo Lopes

nd mw, ninguem acerta o L ahuahauha pode cre mw, esse código ae eu precisei pra uns exercicios no inicio do semestre... é mais facil esse de entender e de codificar :P
Responder

Gostei + 0

02/10/2013

Camilo Lopes

Eu faria assim.
package maiormenor;
import java.util.Scanner;
public class MaiorMenor {
    public static void main(String[] args) {
        
        Scanner input = new Scanner (System.in);  
  
        int numero, menor, maior;  
        System.out.print ("Digite um numero: ");  
        numero = input.nextInt();
        menor = numero;
        maior = numero;
        
        System.out.print ("Digite um numero: ");  
        numero = input.nextInt();
        
        if(numero>maior){
            
            maior = numero;
        }
        if(numero<menor){
            menor = numero;
        }
        
        System.out.print ("Digite um numero: ");  
        numero = input.nextInt();
        
        if(numero>maior) {
            
            maior = numero;
        }
        if(numero<menor) {
            menor = numero;
        }
        
        System.out.print ("Digite um numero: ");  
        numero = input.nextInt();
        
        if(numero>maior){
            
            maior = numero;
        }
        if(numero<menor){
            menor = numero;
        }
        
        System.out.print ("Digite um numero: ");  
        numero = input.nextInt();
        
        if(numero>maior){
            
            maior = numero;
        }
        if(numero<menor){
            menor = numero;
        }
        
        System.out.println("Maior " + maior);
        System.out.println("Menor " + menor);
    }
}
Responder

Gostei + 0

03/10/2013

Cássio Alexandre

[quote="pcassiano"]PessoALL, obrigado pelas dicas. Na verdade, cometi o lapso de trocar [b]&&[/b] por [b]|[/b]
Vale ressaltar que numa expressão booleana existe diferença entre usar [b]&&[/b] ou [b]&[/b]. O mesmo se aplica para [b]||[/b] ou [b]|[/b]. Veja o exemplo abaixo:
public class AndOr {

	public static void main(String[] args) {

		System.out.println("exemplo com true && true");
		if (trueValue() && trueValue()) {}
		System.out.println();
		System.out.println("exemplo com true && false");
		if (trueValue() && falseValue()) {}
		System.out.println();
		System.out.println("exemplo com false && true");
		if (falseValue() && trueValue()) {}
		System.out.println();
		System.out.println("exemplo com false && false");
		if (falseValue() && falseValue()) {}
		System.out.println();
		System.out.println();

		System.out.println("exemplo com true & true");
		if (trueValue() & trueValue()) {}
		System.out.println();
		System.out.println("exemplo com true & false");
		if (trueValue() & falseValue()) {}
		System.out.println();
		System.out.println("exemplo com false & true");
		if (falseValue() & trueValue()) {}
		System.out.println();
		System.out.println("exemplo com false & false");
		if (falseValue() & falseValue()) {}
		System.out.println();
		System.out.println();

		System.out.println("exemplo com true || true");
		if (trueValue() || trueValue()) {}
		System.out.println();
		System.out.println("exemplo com true || false");
		if (trueValue() || falseValue()) {}
		System.out.println();
		System.out.println("exemplo com false || true");
		if (falseValue() || trueValue()) {}
		System.out.println();
		System.out.println("exemplo com false || false");
		if (falseValue() || falseValue()) {}
		System.out.println();
		System.out.println();

		System.out.println("exemplo com true | true");
		if (trueValue() | trueValue()) {}
		System.out.println();
		System.out.println("exemplo com true | false");
		if (trueValue() | falseValue()) {}
		System.out.println();
		System.out.println("exemplo com false | true");
		if (falseValue() | trueValue()) {}
		System.out.println();
		System.out.println("exemplo com false | false");
		if (falseValue() | falseValue()) {}
	}

	private static boolean trueValue() {
		System.out.print(" t ");
		return true;
	}

	private static boolean falseValue() {
		System.out.print(" f ");
		return false;
	}
}
Se executar este programa, a saída será:
exemplo com true && true
 t t
exemplo com true && false
 t f
exemplo com false && true
 f
exemplo com false && false
 f

exemplo com true & true
 t t
exemplo com true & false
 t f
exemplo com false & true
 f t
exemplo com false & false
 f f

exemplo com true || true
 t
exemplo com true || false
 t
exemplo com false || true
 f t
exemplo com false || false
 f f

exemplo com true | true
 t t
exemplo com true | false
 t f
exemplo com false | true
 f t
exemplo com false | false
 f f
Concluindo: Os operadores [b]&[/b] e [b]|[/b] avaliam todos elementos da expressão. O operador [b]&&[/b] interrompe a avaliação do resto da expressão assim que encontra o primeiro [b]false[/b]. O operador [b]||[/b] interrompe a avaliação do resto da expressão assim que encontra o primeiro [b]true[/b].
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar