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.");
}
}
}