Sprawdzenie czy trójkąt jest właściwy.

0

Witam , mam za zadanie pobrac dlugosci bokow trojkat i sprawdzic czy jest , prostokatny, rownoramienny, rownoboczny, prostokatny rownoramienny, zwykly i czy to w ogole trojkat. Udalo mi sie napisac (na pewno nie optymalny) kod do wszystkich trojkatow, ale nie mam pojecia jak sprawdzic czy to jest w ogole trojkat (a,b,c <=0 - to nie jest trojkat). Ponizej zamieszczam moj kod, prosze o wyrozumialosc, to jeden z pierwszych.

 package programm;

import static java.lang.Math.*;

public class Dreiecks_haus {

	public static void main(String[] args) 
	
	{System.out.println("bok a?");
	int a;
	a = ioHilfe.Basisprogramm.readInt();
	
	System.out.println("bok b?");
	int b;
	b = ioHilfe.Basisprogramm.readInt();
	System.out.println("bok c?");
	
	int c;
	c = ioHilfe.Basisprogramm.readInt();
	
	int d = 1;

	// jest prostokatny?
	if((pow(a,2)) + (pow(b,2)) == (pow(c,2))){
		
		
				
		if ((2*a*b)==(c*c)){
			System.out.println("prostokatny rownoramienny");
		}
			else 
		{System.out.println(" prostokatny nierownoramienny ");}
		
		d= 2;
	}
		
				
		
	// jest rownoboczny?	
		if (a==b && b==c) {
		System.out.println("rownoboczny");
		d= 2;
		}
		
		// jest ogolny?
			if (d==1)	
		 {
			System.out.println("ogolny");	
		}
			
		// Czy to jest trojkat?
	
}
	}
	 
0

na razie Twój kod jest błędny bo i tak zakłada pewną kolejność wprowadzania danych
np

 
 if((pow(a,2)) + (pow(b,2)) == (pow(c,2)))

Zakłada że a i b są krótsze od c- jeśli np. wprowadzasz 3,4 i 5 działa,ale jeśli 3,5,4 - to już nie

0

a < b + c
b < a + c
c < b + a
poprawiłem literówkę w ostatniej nierówności - bogdans

0
scibi92 napisał(a):

na razie Twój kod jest błędny bo i tak zakłada pewną kolejność wprowadzania danych
np

 
 if((pow(a,2)) + (pow(b,2)) == (pow(c,2)))

Zakłada że a i b są krótsze od c- jeśli np. wprowadzasz 3,4 i 5 działa,ale jeśli 3,5,4 - to już nie

Tak, teraz widze ten blad. Wiec powienienem kazda sekwencje powtorzyc 3krotnie za kazdym razem dla innych zmiennych? Czy jest na to jakis inny sposob?

0
Krzywy Lew napisał(a):

a < b + c
b < a + c
c < b + c

tego niestety nie rozumiem. Jesli zostana spelnione takie warunki to co to oznacza?

0

A nie wystarczy zeby kazdy bok byl wiekszy od 0 ?

0
if(pow(a,2) + pow(b,2) == pow(c,2) || pow(a,2) + pow(c,2) == pow(b,2) || pow(c,2) + pow(b,2) == pow(a,2))
0

@norbo80 moim zdaniem powinieneś najpierw napisać samą czystą (pominąć wypisywanie i wczytywanie to zrobisz potem) klaskę trójkąt z tymi metodami czy prostokątny, równoboczny itd.. i z pomocą maina sobie przetestować czy wszystko Ci dobrze działa.

tutaj masz początek z kinder niespodzianką, zostało jeszcze kilka metod

class Triangle {

    private Integer a, b, c;

    public Triangle(Integer a, Integer b, Integer c) {
        this.a = a;
        this.b = b;
        this.c = c;
    }

    public boolean isEquilateral() {
        return a == b && a == c;
    }
}

public class Main {
    public static void main(String[] args) {
        Triangle triangle = new Triangle(10, 10, 10);
        System.out.println(triangle.isEquilateral());
    }
}
0

BArdzo serdecznie Ci dziekuje za odpowiedz. Oczywiscie sprawdze to i sprobuje. Problem polega na tym ze mialem dopiero dwie lekcje i to byly zmienne, instrukcje sterujace i petle. Za pomoca tych narzedzi musze zrobic to zadanie. Metody beda pozniej. Niemniej jestem bardzo wdzieczny

0

Wczytaj sobie 3 boki. Żeby sprawdzić czy to w ogóle trójkąt posortuj je rosnaco i i sprawdź czy a1+a2<a3 jeżeli tak jest to trójką to być nie może.
Czy jest prostokątny? Pitagoras się kłania :) (zakładając posortowanie).
Równoboczny - na pewno sobie poradzisz

0

Podstawy geometrii juz powtorzylem :) chodzi mi o to ze piszesz np. Posortuj a ja nie wiem jak ma wyglądać taki kod sortujacy.

0

Piszesz w Javie... java.util.Arrays.sort();
oczywiście musisz je trzymać wtedy w tablicy

1 użytkowników online, w tym zalogowanych: 0, gości: 1