Verifica Triangulo

Olaa :lol:

estou com um pequeno grande probleminha …
tenho que fazer duas classes… uma Triangulo e a outra UsaTriangulo
a UsaTriangulo deve pegar os metodos do objeto Triangulo e dizer se eh isoceles, escaleno ou equilater
a classe Triangulo ficou assim

[code]public class Triangulo{
public int lado1, lado2, lado3;

public Triangulo(){
	lado1 = 0;
	lado2 = 0;
	lado3 = 0;
} 
public Triangulo(int l1, int l2, int l3){
	l1 = lado1;
	l2 = lado2;		
	l3 = lado3;

}
public boolean Verifica(){
	if (( lado1 < lado2 + lado3 ) && ( lado2 < lado1 + lado3 ) && ( lado3 < lado1 + lado2 ))
		return true;
	else
		return false;
}

public boolean ehEscaleno(){
	if ((lado1 != lado2) && (lado1 != lado3) && (lado2 != lado3))
		return true; 
	else
		return false;
}
public boolean ehEquilatero(){
	if ((lado1 == lado2) &&  (lado1 == lado3) && (lado2 == lado3))
		return true;
	else
		return false;
}
public boolean ehIsoceles(){
	boolean cond1 = (lado1 == lado2) && ((lado1 != lado3) || (lado2 != lado3));
	boolean cond2 = (lado2 == lado3) && ((lado2 != lado1) || (lado3 != lado1));
	boolean cond3 = (lado1 == lado3) && ((lado1 != lado2) || (lado3 != lado1));
	if ( cond1 || cond2 || cond3)
		return true;
	else
		return false;
}

public int getLado1(){
	return lado1;
};
public int getLado2(){
	return lado2;
};
public int getLado3(){
	return lado3;
};

public void setLado1(int l1){
	l1 = lado1;
}
public void setLado2(int l2){
	l2 = lado2;
}
public void setLado3(int l3){
	l3 = lado3;
}

}[/quote][/code]

e a classe UsaTriangulo ficou assim

[code]import java.util.Scanner;

public class UsaTriangulo{
public static void main (String args[]){

	int ld1, ld2, ld3;
	
	
	Scanner s = new Scanner (System.in);
	System.out.println("Bem vindo ao programa Triangulo!");
	System.out.println("\nDigite um valor para lado1: ");
	ld1 = s.nextInt();
	System.out.println("Digite um valor para lado2: ");
	ld2 = s.nextInt();
	System.out.println("Digite um valor para lado3: ");
	ld3 = s.nextInt();
	
	Triangulo t = new Triangulo();
	
		if (t.Verifica()){
			if (t.ehEscaleno())
				System.out.println("Eh escaleno!");
			else
				if(t.ehIsoceles())
					System.out.println("Eh isoceles!");
				else
					if(t.ehEquilatero())
						System.out.println("Eh equilatero!");

		}
	
}

}[/code]

dai na hora de rodar ele entra com os valores… e so faz isso e mais nada =[
como que faco para ele puxar os metodos do objeto Triangulo?? :roll:

Este código está errado:

public Triangulo(int l1, int l2, int l3){ l1 = lado1; l2 = lado2; l3 = lado3; }

O correto seria

public Triangulo(int l1, int l2, int l3){ lado1 = l1; lado2 = l2; lado3 = l3; }

outra coisa:

((lado1 == lado2) && (lado1 == lado3) && (lado2 == lado3))

Se
lado1 é igual ao lado2, e lado1 é igual ao lado3,
então
lado2 é igual ao lado3

Ou seja, a ultima comparação é desnecessária.

Para o método ehIsoceles() eu faria o seguinte:

se
NÃO for Equilato,
NEM escaleno,
então
só sobra Isoceles

:wink:

Ao invés de.:

Triangulo t = new Triangulo();

Não seria.:

Triangulo t = new Triangulo(ld1, ld2, ld3);

Rá. :smiley:

Eu também tiraria fora esse construtor:

public Triangulo(){ lado1 = 0; lado2 = 0; lado3 = 0; }

Simplesmente apague-o. Ele não faz o menor sentido.

[quote] Para o método ehIsoceles() eu faria o seguinte:

se
NÃO for Equilato,
NEM escaleno,
então
só sobra Isoceles[/quote]

eh que a prof quer que cada um deles seja chamado na classe UsaTriangulo

mas ainda nao consigo validar a classe UsaTriangulo =\

Da uma olhada no pedaço de codigo abaixo:


. . . 
Triangulo t = new Triangulo();
		t.lado1 = ld1;
		t.lado2 = ld2;
		t.lado3 = ld3;
. . . 

Eu acrescentei este pedaço e funcionou.

Vc pode fazer tambem passar como parametro para o construtor


. . .
Triangulo t = new Triangulo(ld1,ld2,ld3);
. . . 

Espero ter ajudado

So para informação

Na minha resposta anterior eu usei


t.lado1 = ld1;
" Isso so funcionou pq as suas variaveis da classe triangulo são publicas, se fossem privadas teria que ser atraves do get e set ".

mas vai no segundo codigo isso??