Dreiecks Klassifizierung

Neue Frage »

Didi Auf diesen Beitrag antworten »
Dreiecks Klassifizierung
Ich schreib gerade under C# (nunja ist eigenlich irelewand) ein programm
wo ich aus 3 seitenlängen (a, b, c) heraus finden muss welche dreieck es ist oder
ob es überhaupt ein dreieck ist
definiern muss ich
Dreieck (also ob es überhaupt ein dreieck ist)
Dreieck gleichseitiges
Dreieck rechtwinkeliges
Dreieck gleischenkliches
kein Dreieck (löst sich aber dann von selbst)
nicht vor dem (==) schrecken ist einfach =

// - Dreieck gleichseitig -
a == b == c
nunja das sollte woll klar sein

// - Dreieck rechtwinkelig -
keine Ahnung wie ich das raus bekommen soll

// - Dreieck gleichschenklig -
opA == opB
glaub ich vieleicht gibt ja eine andere defination

// - Dreieck -
(a + b) > c

aja cosinus und tankens wirt schwer für mich zu realisirn wegen der programmierung


[ModEdit: Bitte keine Hilferufe im Titel! Entfernt! mY+]
Leopold Auf diesen Beitrag antworten »

Ein Dreieck ist genau dann rechtwinklig, wenn die Summe zweier Seitenquadrate gleich dem dritten Seitenquadrat ist (Satz des Pythagoras und dessen Kehrsatz). Dieser dritten Seite liegt dann der rechte Winkel gegenüber.

Das Erfülltsein der Dreiecksungleichung garantiert die Existenz des betreffenden Dreiecks. Natürlich genügt es da nicht, auf a+b>c zu prüfen, ebenso könnten ja a+c>b oder b+c>a gelten.

Im übrigen: Deine "Recht"schreibung ist eine einzige Katastrophe. Einen solchen Beitrag zu verfassen grenzt schon an Unverschämtheit. Hoffentlich arbeitest du beim Programmieren genauer.
Didi Auf diesen Beitrag antworten »

Danke für die schnelle antwort
und ja ich weiß ich habe eine grauenhafte rechtschreibenung
ich werde mich beim nächsten mal etwas mehr bemühen
auf meine rechschreibung zu achten
Nunja zum Thema
ich habs jetzt so aufgeschrieben und es scheint alles zu funktonieren
wenn wer sich den code noch anschauen will er liegt bei
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
 
            if(opA == opB & opB == opC)
            {
                string loesung = "Dreieck - gleichseitig";
                return loesung;
            }
            // - Dreieck rechtwinkelig -
            else if ((opA + opB) == opC)
            {
                string loesung = "Dreieck - rechtwinkelig";
                return loesung;
            }
            // - Dreieck gleichschenklig -
            else if(opA == opB | opA == opC | opB == opC)
            {
                string loesung = "Dreieck - gleichschenklig";
                return loesung;
            }
            // - Dreieck -
            else if((opA + opB) > opC | (opA + opC) > opB | (opB + opC) > opA)
            {
                string loesung = "Dreieck";
                return loesung;
            }
            // - kein Dreieck -
            else
            {
                string loesung = "kein Dreieck";
                return loesung;
            }
Leopold Auf diesen Beitrag antworten »

Das ist wohl nicht der Satz des Pythagoras, mit dem du da auf Rechtwinkligkeit testest. So wird das nichts.
Auch mußt du zuerst überprüfen, ob überhaupt ein Dreieck aus den drei Seiten erstellt werden kann. Denn dein Programm würde z.B. für a=6, b=6, c=14 ein gleichschenkliges Dreieck herausfinden, obwohl mit diesen Seiten überhaupt kein Dreieck konstruiert werden kann.
Vielleicht habe ich mich oben mißverständlich ausgedrückt: Für die Existenz eines Dreiecks muß die Dreiecksungleichung in allen drei Varianten erfüllt sein. Da gehört also ein "und" und kein "oder" dazwischen.
Und dann heißt es auch noch "rechtwinklig" und nicht "rechtwinkelig".
Didi Auf diesen Beitrag antworten »

ok so jetzt funktioniert es danke noch mal zu sicherheit lege ich denn
code nochmal bei
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
if ((opA + opB) > opC & (opA + opC) > opB & (opB + opC) > opA)
{
   string loesung = "Dreieck";
                    // ------- Dreiecks bestimmung
                    if (opA * opA + opB * opB == opC * opC)
                    {
                        string dloesung = "Dreieck - rechtwinkelig";
                        return dloesung;
                    }
                    else if (opA == opB | opA == opC | opB == opC)
                    {
                        string dloesung = "Dreieck - gleichschenklig";
                        return dloesung;
                    }
                    else if (opA == opB & opA == opC)
                    {
                        string dloesung = "Dreieck - gleichseitig";
                        return dloesung;
                    }
                    else 
                    {
                        return loesung;
                    }
}
else
{
string loesung = "kein Dreieck";
return loesung;
}
Didi Auf diesen Beitrag antworten »

ich hab das gleichschenklich und das gleichseitige umgetauscht
 
 
Leopold Auf diesen Beitrag antworten »

1. Der Test auf Rechtwinkligkeit ist nicht korrekt. Er überprüft nur die Rechtwinkligkeit bei C. Was aber, wenn bei A oder B ein rechter Winkel ist?

2. Die Schachtelung der Abfragen ist nicht korrekt. So wird zum Beispiel ein gleichschenklig-rechtwinkliges Dreieck nicht erkannt, ebensowenig ein gleichseitiges Dreieck.

Du solltest da noch einmal sorgfältig darübergehen. Beachte, daß Rechtwinkligkeit, Gleichschenkligkeit und Gleichseitigkeit keine Alternativen sind.
Didi Auf diesen Beitrag antworten »

erkannt wirt es schon also ich weiß nicht wie du jetzt drauf kommst und
wegen der überprüfung vom rechtwinkeligen Dreieck
da war ich mir nicht so sicher weil die seite C ist doch immer die längere
Seite zumindest bei einen rechtwinkeligen Dreieck oder nicht ?
Leopold Auf diesen Beitrag antworten »

Wo steht das geschrieben? Beim Dreieck mit a=13, b=5, c=12 ist der Winkel bei A ein rechter.
Ansonsten bleibe ich bei meinen Behauptungen. Beachte, daß du die neuen Abfragen immer im else-Teil der alten hast. Das funktioniert hier aber so nicht. Denke einmal darüber nach.
Didi Auf diesen Beitrag antworten »

zur Erklärung ich habe wie oben erwähnt
das ich die if elese anweißung vertauscht habe
else if (opA == opB | opA == opC | opB == opC)
else if (opA == opB & opA == opC)
nicht so sondern
else if (opA == opB & opA == opC)
else if (opA == opB | opA == opC | opB == opC)
damit wirt auch erkannt ob ein gleichschenkliges oder rein gleichseitiges
und jetzt hab ich mich auch registriert das ich nicht immer eine neue
antwort öffnen muss wenn ich was verbessern muss

PS iich kann dir gern das programm ink. projekt mappe (virtuel gemeint)
schicken einfach über pm ne e-mail oder so

das mit dem gleichschenklig-rechtwinklige Dreieck, ok ja daran hab ich nicht gedacht aber das ist auch in diesen programm nicht geplant
Leopold Auf diesen Beitrag antworten »

Und das gleichschenklig-rechtwinklige Dreieck? Das wird immer noch nicht erkannt.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »