Hilfe! Meine Matheprüfung steht kurz bevor und ich habe nicht gelernt! 1 Teil der Prüfung ist es, ein Viereck anhand seiner Scheitelpunktkoordinaten zu klassifizieren, was ich leider nicht kann. 2
Ihre Herausforderung besteht also darin, ein Programm zu schreiben, das dies für mich erledigt, damit ich nicht versage!
Herausforderung
Bestimmen Sie bei vier Scheitelpunkten, von denen keiner kollinear ist, die spezifischste Klassifikation des durch diese vier Scheitelpunkte gebildeten Vierecks.
Was ich unter "spezifischster Klassifizierung" verstehe, ist, dass, obwohl alle Quadrate Rechtecke sind, wenn die Form ein Quadrat ist, Sie angeben sollten, dass es ein Quadrat ist, und nicht, dass es ein Rechteck ist.
Eingang
Die Eingabe erfolgt als vier (x, y) Koordinaten. Sie können diese als eine Liste der Länge 4 von Listen / Tupeln der Länge 2 nehmen. Alternativ können Sie Eingaben als eine Liste der x-Koordinaten und eine Liste der jeweiligen y-Koordinaten nehmen.
Zum Beispiel, wenn meine Form Ecken an den Punkten hat (0, 0), (5, 0), (6, 1), und (1, 1)kann wählen Sie Eingabe in einem der folgenden Formate oder etwas ähnliches zu nehmen:
[(0, 0), (5, 0), (6, 1), (1, 1)]
([0, 5, 6, 1], [0, 0, 1, 1])
Sie können davon ausgehen, dass sich das Viereck nicht selbst schneidet und die Punkte in der richtigen Reihenfolge angegeben werden (dh zwei aufeinanderfolgende Punkte in der Eingabe werden durch ein Liniensegment im Viereck verbunden).
Ausgabe
Sie benötigen eine eindeutige Ausgabe für jede der folgenden Klassen von Vierecken:
- Platz
- Rechteck
- Rhombus
- Parallelogramm
- Trapez / Trapez
- Drachen
- Viereck
Dies kann der genaue Name selbst, ein Zeichen, eine Ganzzahl usw. sein.
Regeln
- Es gelten Standardlücken
- Wenn Ihre Programmiersprache über eine integrierte Software verfügt, die genau diese Aufgabe ausführt, ist diese integrierte Software nicht zulässig.
- Eingebaute Funktionen zum Ermitteln der Entfernung zwischen zwei Punkten sind zulässig.
- Eingebaute Funktionen zum Ermitteln des Winkels zwischen zwei Linien sind zulässig.
Wenn Sie alle Begriffe kennen, können Sie jetzt mit dem Programmieren beginnen! (Testfälle sind am Ende)
Terminologie
Dieser Abschnitt richtet sich an alle, die Erläuterungen zu den Definitionen der verschiedenen Formen benötigen.
Platz
Ein Viereck ist genau dann ein Quadrat, wenn alle vier Seiten gleich lang sind und jedes Paar benachbarter Seiten senkrecht steht (dh, es ist sowohl ein Rechteck als auch eine Raute).
Rechteck
Ein Viereck ist nur dann ein Rechteck, wenn jedes Paar benachbarter Seiten senkrecht steht.
Rhombus
Ein Viereck ist nur dann eine Raute, wenn alle vier Seiten gleich sind.
Parallelogramm
Ein Viereck ist genau dann ein Parallelogramm, wenn jedes Paar gegenüberliegender Seiten parallel ist und jedes Paar gegenüberliegender Winkel gleich ist. Diese beiden Bedingungen implizieren sich gegenseitig, sodass Sie nur nach einer von ihnen suchen müssen.
Trapez / Trapez
Ein Viereck ist genau dann ein Trapez / Trapez, wenn es mindestens ein Paar paralleler Seiten hat.
Drachen
Ein Viereck ist ein Drachen, wenn zwei gegenüberliegende Paare benachbarter Seiten gleich lang sind. das heißt, zwei seiner benachbarten Seiten sind gleich und die anderen beiden sind ebenfalls gleich.
Testfälle
input as (x, y) * 4 -> full name
[(0, 0), (1, 0), (1, 1), (0, 1)] -> square
[(0, 0), (1, 1), (-1, 3), (-2, 2)] -> rectangle
[(0, 0), (5, 0), (8, 4), (3, 4)] -> rhombus
[(0, 0), (5, 0), (6, 1), (1, 1)] -> parallelogram
[(0, 0), (4, 0), (3, 1), (1, 1)] -> trapezoid/trapezium
[(0, 0), (1, 1), (0, 3), (-1, 1)] -> kite
[(0, 0), (2, 0), (4, 4), (0, 1)] -> quadrilateral
Links (Desmos Grafikrechner)
Hier finden Sie Links zu Visualisierungen der einzelnen Testfälle.
Quadratisches
Rechteck
Rhombus
Parallelogramm
Trapez / Trapez
Drachen
Viereck
Gewinnkriterien
Ich kann offensichtlich keinen Computer in die Prüfung einbinden, daher muss der Code so kurz wie möglich sein, damit ich ihn mir merken kann. Ich muss es in die Ränder schreiben und mit TryItOffline TM ausführen, damit es in die Ränder passt. Ihr Programm muss so klein wie möglich sein!
1 Natürlich habe ich tatsächlich getan: P
2 Natürlich habe ich tatsächlich getan: P