Autor Beitrag
Dominikdak
Hält's aus hier
Beiträge: 6

Win Vista
C#
BeitragVerfasst: Di 31.05.11 16:38 
Hi Leute!

Laut de.wikipedia.org/wiki/Polygon#Regelm.C3.A4.C3.9Fige_Polygone rechnet man den Flächeninhalt eines regelmäßigen n-Ecks n * Seite² / 4 * tan(180°/n).
Das wollte ich in C# umsetzen, hat ja auch alles geklappt, nur die Ergebnisse stimmen nicht. ZB der Inhalt eines Sechsecks mit Seitenlänge 5 ist nicht -7,49!

Ich zeig euch mal den Code:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
try
            {
                double n = Convert.ToDouble(textBox3.Text);
                double seitenlaenge = Convert.ToDouble(textBox4.Text);

                double bruch1 = n * Math.Pow(2, seitenlaenge);

                double tangens = 180 / n;
                double bruch2 = 4 * Math.Tan(tangens);

                double flaeche = bruch1 / bruch2;
                string ergebnis = Convert.ToString(flaeche);
                label13.Text += ergebnis;
            }
....


Wer findet den Fehler?

Danke im Vorraus!
Dominikdak
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Di 31.05.11 17:25 
user profile iconDominikdak hat folgendes geschrieben Zum zitierten Posting springen:
ausblenden C#-Quelltext
 
6:
/* ... */
double bruch1 = n * Math.Pow(2, seitenlaenge);

Das heißt 2^seitenlaenge, und nicht seitenlaenge^2. Entweder du vertauschst die Parameter, oder du multiplizierst seitenlaenge einfach mit sich selbst.
Dominikdak Threadstarter
Hält's aus hier
Beiträge: 6

Win Vista
C#
BeitragVerfasst: Di 31.05.11 17:36 
Bringt nichts.
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Di 31.05.11 17:48 
Ok, nächster Versuch: Laut Dokumentation erwartet die Math.Tan-Funktion einen Winkel im Bogenmaß. Den Wert für Pi erhältst du über Math.Pi.

Für diesen Beitrag haben gedankt: Dominikdak
Dominikdak Threadstarter
Hält's aus hier
Beiträge: 6

Win Vista
C#
BeitragVerfasst: Di 31.05.11 18:29 
HERZLICHEN DANK!

Klappt jetzt! Hier die korrekte Form:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
                double n = Convert.ToDouble(textBox3.Text);
                double seitenlaenge = Convert.ToDouble(textBox4.Text);

                double bruch1 = n * seitenlaenge * seitenlaenge;

                double tangens = 180 / n;
                double bogenmass = tangens * (Math.PI / 180);
                double bruch2 = 4 * Math.Tan(bogenmass);

                double flaeche = bruch1 / bruch2;

                string ergebnis = Convert.ToString(flaeche);
                label13.Text += ergebnis;


Ciao!