Calculo de Maior_Menor. Dica

Pessoal,

Tenha uma questao que só sei fazer de uma jeito, mas o teacher quer que faça apenas com 8 metodos. Alguem pode me dar uma dica de como fazer isso em 8 metodos:

questao:


Escreva uma classe que contenha metodos estaticos para retornar o maior e menor de dois, tres, quatro e cinco valores ( com um total de 8 metodos), considerando que os argumentos e retorno dos metodos podem ser do tipo int e double. Dica: Os metodos podem ser chamados em Cascata: para calcular o maior de tres valores a,b, e c, pode-se calcular o maior valor de a e b, e comparar esse resultado com c.

Eu sei fazer isso, mas deve ter um jeito mais simples.

Olhem como eu iniciei, so que assim, vai levar uma porrada de metodos.


lass CalculaMaioreMenor{
 
    public static int MM2{int a, int b){
       if (a>b){
           return a;
         }else{
           return b;
         }
     }
     
     public static int MM3(int a, int b, int c){
       if (a>b){
           if (a>c){
           return a;
         }else{
           return c;
         }
     }  
 }
     public static int MM(int a, int b, int c,int d){
       if (a>b){
           if (a>c){
               if (a>d){
                return a;
         }else{
           return d;
         }
     }   
 }
}


}

MigMax

Num intendi naum… se vc tem que achar o maior de 2, 3, 4 e 5 numeros, vc tem quatro metodos, pra achar o menor, mais quatro… dae já tem 8… hehe ou eu so muito burra… ou tem alguma coisa errada ae :smiley:

acho q eh isso q o cara disse para fazer:

public class aplicativo {
	int a, b, c, d, e;

	public static int MM2(int a, int b){ 
	   if (a>b){ 
		   return a; 
		 }else{ 
		   return b; 
		 } 
	 } 
	
	 public static int MM3(int a, int b, int c){
	 	int maior = MM2(a,b);
	 	if (maior>c){
	 		return maior;
	 	}else{
	 		return c;
	 	}
	 }
	 
	public static int MM4(int a, int b, int c, int d){
		int maior = MM3(a,b,c);
		if (maior>d){
			return maior;
		}else{
			return d;
		}

	public static int MM5(int a, int b, int c, int d, int e){
		int maior = MM4(a,b,c,d);
		if (maior>e){
			return maior;
		}else{
			return e;
		}
}

Falow…

Tem q fazer exatamente com 8 metodos ou no maximo 8?
Tb nao intendi…
:tosco: :freaked: :fucando:

cara, faça métodos sobrecarregados! …ai na hr de chamar tu só muda a quantidade de parametros!

[code]public static int maior(int n1, int n2);

public static int maior(int n1, int n2, int n3);

public static int maior(int n1, int n2, int n3, int n4);

public static int maior(int n1, int n2, int n3, int n4, int n5);

public static double maior(double n1, double n2);

public static double maior(double n1, double n2, double n3);

public static double maior(double n1, double n2, double n3, double n4);

public static double maior(double n1, double n2, double n3, double n4, double n5);[/code]

… ai por exemplo, o corpo ficaria assim:

[code]public static int maior(int n1, int n2 )
{
n1 > n2 ? return n1 : return n2;
}

public static int maior(int n1, int n2, int n3 )
{
return maior( maior( n1, n2 ), n3 );
}[/code]

Galera,

Essas dicas sao otimas, mas p infeliz das costas oca só quer se for com 8 metodos, eu to dizendo, esse cara é um FDP daqueles a mae criou a placenta e jogou o filho fora. Tanto as dicas do Mateus quanto a do Bauto sao boas, Mas Mateus eu tenho uma pergunta.

Vejo q fez os Metodos, Mas eu poderia fazer assim tb? Ja que ele quer Maior e Menor.


public static int maior(int n1, int n2); 

public static int maior(int n1, int n2, int n3); 

public static int maior(int n1, int n2, int n3, int n4); 

public static int maior(int n1, int n2, int n3, int n4, int n5); 

public static int menor(int n1, int n2); 

public static int menor(int n1, int n2, int n3); 

public static int menor(int n1, int n2, int n3, int n4); 

public static int menor(int n1, int n2, int n3, int n4, int n5); 

MigMax

Pessoal, Ja que ele quer com 8 metodos. entao eu peguei e juntei as ideias do Mateus e Bauto e deu nisso. Bom pelo menos tem 8 metodos.


//8 Questao do Exercicio

class CalculaMaioreMenor{
 int a, b, c, d, e; 

   public static int Maiorde2(int a, int b){ 
      if (a>b){ 
         return a; 
       }else{ 
         return b; 
       } 
    } 
    
    public static int Maiorde3(int a, int b, int c){ 
       int maior = Maiorde2(a,b); 
       if (maior>c){ 
          return maior; 
       }else{ 
          return c; 
       } 
    } 
    
   public static int Maiorde4(int a, int b, int c, int d){ 
      int maior = Maiorde3(a,b,c); 
      if (maior>d){ 
         return maior; 
      }else{ 
         return d; 
      } 
   }
   public static int Maiorde5(int a, int b, int c, int d, int e){
       int maior= Maiorde4(a,b,c,d);
       if (maior>d){
           return maior;
       }else{
           return e;
       }
   }
   public static int Menorde2(int a, int b){ 
      if (a<b){ 
         return a; 
       }else{ 
         return b; 
       } 
    } 
    
    public static int Menorde3(int a, int b, int c){ 
       int menor = Menorde2(a,b); 
       if (menor<c){ 
          return menor; 
       }else{ 
          return c; 
       } 
    } 
    
   public static int Menorde4(int a, int b, int c, int d){ 
      int menor = Menorde3(a,b,c); 
      if (menor<d){ 
         return menor; 
      }else{ 
         return d; 
      } 
   }
   public static int Menorde5(int a, int b, int c, int d, int e){
       int menor= Menorde4(a,b,c,d);
       if (menor<d){
           return menor;
       }else{
           return e;
       }
   }
}//Fim da Classe CalculaMaioreMenor 

 



Só pra completar as informações, com a versão 1.5 do Java (Tiger) vc faz isso com 2 métodos, um pra maior e um pra menor, dá uma olhada no artigo abaixo, onde o cara mostra como utilizar argumentos variáveis em Java:

http://today.java.net/pub/a/today/2004/04/19/varargs.html

[]'s
carisio