Verifica Triangulo

7 respostas
julianatibaes

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

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]
e a classe UsaTriangulo ficou assim
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!");

			}
		
	}
}

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:

7 Respostas

peczenyj

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:

jtsato

Ao invés de.:

Triangulo t = new Triangulo();

Não seria.:

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

Rá. :smiley:

ViniGodoy

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.

julianatibaes

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

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

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

mas ainda nao consigo validar a classe UsaTriangulo =\

gpd38

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

gpd38

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 ".
julianatibaes

mas vai no segundo codigo isso??

Criado 8 de abril de 2008
Ultima resposta 9 de abr. de 2008
Respostas 7
Participantes 5