Como imprimir o menor e o maior número?
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:
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!
/* 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...
Paulo Cassiano
Curtidas 0
Respostas
Paulo Cassiano
09/04/2009
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!
GOSTEI 0
Gustavo Steigert
09/04/2009
Estude com atenção essas coisinhas... valem para a maioria das linguagens de programação.
GOSTEI 0
Bernardo Rezende
09/04/2009
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!
GOSTEI 0
Camilo Lopes
09/04/2009
[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:
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:
/* 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...
GOSTEI 0
Jedson
09/04/2009
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...
GOSTEI 0
Jedson
09/04/2009
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
GOSTEI 0
Camilo Lopes
09/04/2009
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);}}}}
}
}
GOSTEI 0
Camilo Lopes
09/04/2009
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...
GOSTEI 0
Camilo Lopes
09/04/2009
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! :!:
GOSTEI 0
Camilo Lopes
09/04/2009
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
GOSTEI 0
Camilo Lopes
09/04/2009
[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... :!:
GOSTEI 0
Lucas Dallpizzol
09/04/2009
[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:
GOSTEI 0
Camilo Lopes
09/04/2009
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
GOSTEI 0
Camilo Lopes
09/04/2009
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);
}
}
GOSTEI 0
Cássio Alexandre
09/04/2009
[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;
}
}
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
GOSTEI 0
Camilo Lopes
09/04/2009
Desculpe se está em inglês, e que estou treinando ele junto ao estudo em java! Como pedido pelo exercício do livro do Deitel, para usar somente o que se havia trabalhado no livro ai vai minha contribuição! abaixo do codigo esta a explicação dele.
//Larger and smaller integer
import java.util.Scanner; //Program uses class Scanner
public class LargerSmaller
{
//Main method begins execution of Java application
public static void main( String[] args )
{
//Creates a scanner for input from the command window
Scanner input = new Scanner( System.in );
int number1;
int number2;
int number3;
int number4;
int number5;
int larger;
int smaller;
System.out.print( "Enter first integer: " ); //prompt
number1 = input.nextInt(); //Read the first number provided by the user
System.out.print( "Enter second integer: " ); //prompt
number2 = input.nextInt(); //Read the second number provided by the user
System.out.print( "Enter second integer: " ); //prompt
number3 = input.nextInt(); //Read the third number provided by the user
System.out.print( "Enter second integer: " ); //prompt
number4 = input.nextInt(); //Read the forth number provided by the user
System.out.print( "Enter second integer: " ); //prompt
number5 = input.nextInt(); //Read the fifth number provided by the user
larger = -1000000;
smaller = 1000000;
//Terms
if ( number1 > larger){
larger = number1;
}
if ( number1 < smaller ){
smaller = number1;
}
if ( number2 > larger ){
larger = number2;
}
if ( number2 < smaller ){
smaller = number2;
}
if ( number3 > larger ){
larger = number3;
}
if ( number3 < smaller ){
smaller = number3;
}
if ( number4 > larger ){
larger = number4;
}
if ( number4 < smaller ){
smaller = number4;
}
if ( number5 > larger ){
larger = number5;
}
if ( number5 < smaller ){
smaller = number5;
}
System.out.printf( "Is larger: %d\n ", larger );
System.out.printf( "Is smaller:%d\n ", smaller );
}// End of the mains method
}// End of the class LargerSmaller
Declare as cinco variáveis e depois mais duas, sendo as duas a variável maior(larger) e a variavel menor(smaller). Depois de programar a parte onde você inputa os dados vc deve igualar as variaveis larger e smaller à alguma magnitude a qual vc possa compara-las com as outras cinco variaveis, no meu caso igualeias à -1000000 e 1000000 respectivamente. Depois vem as condições, onde a logica é simples! supomos que as variaveis inputadas sejam 3, 5, 10, 7, 2 respectivamente.
Se ( o primeiro numero(number1= 3 ) for > que o maior(larger= -1000000){
entao larger = number1, logo, a variavel larger que era -1000000 vai passar a ser 3
}
Se ( o primeiro numero(number1= 3 ) for < que o menor(smaller= 1000000){
entao smaller = number1, logo, a variavel smaller que era 1000000 vai passar a ser 3
}
Se ( o segundo numero(number2= 5 ) for > que o maior(larger= 3){
entao larger = number2, logo, a variavel larger que era 3 vai passar a ser 5
}
Se ( o segundo numero(number2= 5 ) for < que o menor(smaller= 3){
entao smaller = number2, logo, como essa condição nao acontece, a variavel smaller continua a ser 3
}
Se ( o terceiro numero(number3= 10 ) for > que o maior(larger= 5){
entao larger = number3, logo, a variavel larger que era 5 vai passar a ser 10
}
Se ( o terceiro numero(number3= 10 ) for < que o menor(smaller= 3){
entao smaller = number3, logo, como essa condição nao acontece, a variavel smaller continua a ser 3
}
Se ( o quarto numero(number4= 7 ) for > que o maior(larger= 10){
entao larger = number4, logo, como essa condição nao acontece, a variavel larger continua a ser 10
}
Se ( o quarto numero(number4= 7 ) for < que o menor(smaller= 3){
entao smaller = number4, logo, como essa condição nao acontece, a variavel smaller continua a ser 3
}
Se ( o quinto numero(number5= 2 ) for > que o maior(larger= 10){
entao larger = number5, logo, como essa condição nao acontece, a variavel larger continua a ser 10
}
Se ( o quinto numero(number5= 2 ) for < que o menor(smaller= 3){
entao smaller = number5, logo, a variavel smaller que era 3 vai passar a ser 2
}
Por fim mostremos as variaveis maior(larger) e a menor (smaller) que será 10 e 2 respectivamente.
GOSTEI 0
Camilo Lopes
09/04/2009
Tinha feito este código abaixo, depois que atentei que era pra usar apenas o conhecimento do capitulo 2, Deitel, Exercicio 2.24.
/**
* 2.24 - Deitel - 8ª edição
* Autor: Leo
* Programa exibe recebe 5 inteiros, e exibe o maior e o menor.
* Criado 10:33h - Modificado:
*/
import java.util.Scanner;
public class ExerMaioreMenordeCinco {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int num,
maior,
menor;
num = 0;
maior = 0;
menor = 1;
for(int x=1; x<=5 ; x++) {
System.out.printf("Digite o %d numero: ", x);
num = entrada.nextInt();
if(num > maior) {
maior = num;
}
if(num <= menor) {
menor = num;
}
}
System.out.printf("O maior é %d e o menor %d", maior, menor);
}
}
Dai, criei também um código que atendeu os requisitos, QUE SÃO USAR COMPARAÇÃO E NÃO USAR ESTRUTURAS DE REPETIÇÃO.
/**
* 2.24 - Deitel - 8ª edição
* Autor: Leo
* Programa exibe recebe 5 inteiros, e exibe o maior e o menor.
* Criado 10:33h - Modificado: 17:34
*/
import java.util.Scanner;
public class ExerMaioreMenordeCincoIf {
public static void main(String[] args) {
Scanner entrada = new Scanner(System.in);
int a,
b,
c,
d,
e,
maior = 0,
menor = 0;
System.out.print("Digite um numero: ");
a = entrada.nextInt();
System.out.print("Digite um numero: ");
b = entrada.nextInt();
System.out.print("Digite um numero: ");
c = entrada.nextInt();
System.out.print("Digite um numero: ");
d = entrada.nextInt();
System.out.print("Digite um numero: ");
e = entrada.nextInt();
// VALIDANDO MAIOR VALOR
if(a >= b && a >= c && a >= d && a >=e)
maior = a;
if(b >= a && b >= c && b >= d && b >= e)
maior = b;
if(c >= a && c >= b && c >= d && c >= e)
maior = c;
if(d >= a && d >= b && d >= c && d >= e)
maior = d;
if(e >= a && e >= b && e >= c && e >= d)
maior = e;
// VALIDANDO O MENOR VALOR
if(a <= b && a <= c && a <= d && a <=e)
menor = a;
if(b <= a && b <= c && b <= d && b <= e)
menor = b;
if(c <= a && c <= b && c <= d && c <= e)
menor = c;
if(d <= a && d <= b && d <= c && d <= e)
menor = d;
if(e <= a && e <= b && e <= c && e <= d)
menor = e;
System.out.printf("O maior é %d e o menor %d", maior, menor);
}
}
GOSTEI 0