@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