Fórum Como imprimir o menor e o maior número? #564914
09/04/2009
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!
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!
09/04/2009
Gustavo Steigert
Estude com atenção essas coisinhas... valem para a maioria das linguagens de programação.
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!
[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:
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...
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
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);}}}}
}
}
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...
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! :!:
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
[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... :!: