Wie kann ich ein Programm für das Überprüfen von Eigenschaften von Dreiecken in C# erstellen?


22.03.2020, 15:49

Konsolenprogramm

2 Antworten

Zuerst brauchst du eine mathematische Lösung für jedes deiner Probleme.

Zuerst ist zu überprüfen, ob die Eingabe überhaupt sinnvoll ist (...)

Dafür steht die Lösung ja schon da.

(...), ob das Dreieck gleichseitig, gleichschenklig oder rechtwinklig ist.
  • Bei einem rechtwinkligen Dreieck gilt der Satz des Pythagoras.
  • Wie man ein gleichseitiges Dreieck bestimmt, erklärt sich bereits im Namen.
  • Ein gleichschenkliges Dreieck hat mindestens zwei gleichlange Seiten. Zudem gibt es den Basiswinkelsatz.

Schreibe dir für diese Fälle zunächst einmal den Lösungs- bzw. Rechenweg Schritt für Schritt auf. Was ist zuerst zu tun, was danach. Bau es dir am besten in einem Programmablaufdiagramm oder einem Struktogramm nach. Dafür gibt es sogar hilfreiche Software.

So ein Diagramm kannst du danach, wieder: Schritt für Schritt übersetzen. Da Elemente eines Programmablaufplans im Grunde schon die Grundelemente von einer Programmiersprache wie C# nahezu synchron abbilden, sollte dir nur noch die Syntax im Wege stehen, doch die kann man ja nachschlagen.

Strings kannst du mit Console.ReadLine einlesen und die Convert-Klasse eignet sich dazu, diese Zeichenketten in Integer/Float/Double umzuwandeln. Für Ausgaben gibt es Console.WriteLine und für mathematische Operationen solltest du auf die Methoden der Math-Klasse zurückgreifen. Variablen, Operatoren und Verzweigungen werdet ihr im Unterricht bereits behandelt haben.

Vielleicht hilft dir das, um das Maximum von drei Werten zu bestimmen.

max( a, b, c ) = max( a, max( b, c ) )

Das max von zwei Werte kannst du mit einem if bestimmen. Beispielsweise:

if (b > c) maximum = b else maximum = c;

Hiermit kannst du das Maximum von drei Werte mit 2 ifs ermitteln.

Verstehst du das?

Konsolenprogramm bedeutet, dass a, b und c als Parameter an main() kommen können.

int main( int argc, char ** argv )

argc muss 4 sein.

argv[1] ist a als char *

argv[2] ist b als char *

argv[3] ist c als char *

Umwandlung char * nach int mit atoi(). Oder entsprechend in einen double.


regex9  22.03.2020, 16:46

Es geht nicht um C++.

1