Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Como posso colocar um metodo recursivo em uma opção do switch ?Não consigo monta-la

$
0
0

@Luiz_Pereira_de_Alme escreveu:

Triângulos com maior perímetro. Escrever o valor do maior perímetro seguido da posição no arranjo de cada triângulo com perímetro igual ao maior do arranjo, bem como os valores de cada um de seus lados e seu tipo. O método deverá ser recursivo.
Preciso fazer esse método em uma opção do meu menu mas não tenho ideia como fazer . E a case 8.

import java.util.*;
class Triangulo{
   private double a;
   private double b;
   private double c;
   
   Triangulo(){   
     this.setLados(0,0,0);
     }    
   
   Triangulo(double a, double b, double c){ 
      this.setLados(a,b,c);
      }
   
   public void setLadoA(double a){
     this.a=a;} 
  
   public void setLadoB(double b){
     this.b=b;} 
   
   public void setLadoC(double c){
     this.c=c;}
   
   public void setLados(double a ,double b,double c){  
     this.setLadoA(a);
     this.setLadoB(b);
     this.setLadoC(c);}
        
   public double getLadoA(){
      return this.a; }
   public double getLadoB(){
      return this.b;}
   public double getLadoC(){
      return this.c;}
  
   public void escreve(){
      System.out.println("\nLados: " + this.getLadoA() + ", " 
                                     + this.getLadoB() + ", "
                                     + this.getLadoC() );
      System.out.println("Perimetro: " + this.perimetro() );
      
      }

    
   public int Tipo(){
      
      if(ehTriangulo()){
         
         if(this.getLadoA()==this.getLadoB() && this.getLadoB()==this.getLadoC()){
            return 1;}
         else if(this.getLadoA()!=this.getLadoB() && this.getLadoB()!=this.getLadoC() && this.getLadoA()!=this.getLadoC()){
            return 3;}
         else {
            return 2;}
      }else {
         return 0;}
   }
   
   public void escreveTipo(){
      if(Tipo()==1){
         System.out.println("Equilatero.");}
      else if(Tipo()==2){
         System.out.println("Isosceles.");}
      else if(Tipo()==3){
         System.out.println("Escaleno.");
      } else {
         System.out.println("Nao e triangulo.");}
   }
   public boolean ehTriangulo(){
      return (Math.abs(this.getLadoA()-this.getLadoB())<this.getLadoC() && this.getLadoC()<(this.getLadoA()+this.getLadoB()));}  
   
   public double perimetro(){
      return this.getLadoA()+this.getLadoB()+this.getLadoC();}
      
   public void lelados(){
      Scanner leia=new Scanner(System.in);
      System.out.println("Digite os lados:");
      double a=leia.nextDouble();
      double b=leia.nextDouble();
      double c=leia.nextDouble();
      this.setLados(a,b,c);}
      }
   
   public class TP1{
   public static void main(String[] args){
      Scanner s=new Scanner(System.in);
      Triangulo T1 = new Triangulo();
      T1.setLadoA(1);
      T1.setLadoB(2);
      T1.setLadoC(3);
      
      Triangulo T2=new Triangulo(4,5,6);
      
      Triangulo T[]= new Triangulo[2];
      for(int i=0;i<2;i++){
        T[i]= new Triangulo();
      } 
      for(int i=0;i<2;i++){
        T[i].lelados();}
      int menu;
      System.out.print("Digite uma opççcao do menu a seguir\n"+  
                   "1. Ler um novo triaângulo. Sugerir a leitura de novos valores caso não seja atendida a condicação de existeência do triaângulo.\n "+  
                   "2. Listar todos os triângulos criados.\n "+  
                   "3. Escrever o triâangulo posicionado na posiçãcao k do arranjo, sendo k um valor lido.\n" +  
                   "4. Verificar o tipo de um triâangulo armazenado na posiçãcao k do arranjo, sendo k um valor lido.\n" +  
                   "5. Verificar o períimetro de um triâangulo armazenado na posicação k do arranjo, sendo k um valor lido.\n" +  
                   "6. Listar todos os triaângulos do arranjo, seguido de seu periímetro e de seu tipo.\n" +  
                   "7. Listar todos os triaângulos cujos valores dos lados precisam ser corrigidos por não atender à sua condicação de existeência. Oferecer a leitura de novos valores para cada um..\n"+
                   "8. Triângulos com maior perímetro. Escrever o valor do maior perímetro seguido da posição no arranjo de cada triângulo com perímetro igual ao maior do arranjo, bem como os valores de cada um de seus lados e seu tipo. \n"+
                   "0.Sair: \n");
       menu =s.nextInt();
 
       switch( menu )
        {
            case 0:
                  System.out.println("Acabou o programa!");
                  break;
            case 1:
                int i=0;
                T[i].lelados();
                if(T[i].ehTriangulo()){  
                  System.out.println("Ok!!");
                }else{
                
                System.out.println("Digite novamente!!");
                  T[i].lelados();}
                break;
            case 2:
                System.out.println("Triangulos do arranjo: ");
                for(i=0;i<2;i++){
                T[i].escreve();}
                break;
            case 3: 
                int r;
                System.out.println("Digite a posiçcao: ");
                r=s.nextInt();
                T[r].escreve();
                T[r].escreveTipo();
                break;
            case 4: 
                int z;
                System.out.println("Digite a posiçcao: ");
                z=s.nextInt();
                T[z].escreveTipo();
                break;
            case 5:
               int y; 
                System.out.println("Digite a posiçcao: ");
                y=s.nextInt();
                T[y].perimetro();
                
                
                break;
            case 6: 
            
                System.out.println("Triangulos do arranjo: ");
                for(i=0;i<2;i++){
                T[i].escreve();
                T[i].escreveTipo();}
                break;
            case 7: 
                for(i=0;i<2;i++){
                T[i].escreve();
                if(T[i].Tipo()==0){
                T[i].escreve();
                T[i].escreveTipo();
                System.out.println("Digite novamente: ");
                T[i].lelados();}
                }
                
                break;        
            case 8: 
            
                System.out.println("Valor errado.");
                break;
            default:
                System.out.println("Valor errado.");          
        }
 
      
      } 
   }

Mensagens: 1

Participantes: 1

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>