ich hab ein ziemliches problem den konstruktor und die methode zu verstehen um den umfang eines n ecks zuberechen.
könnte mir jemand das verständlicher erläutern bitte?
namespace N_Eck
{
class Program
{
struct Punkt
{
public double x, y;
public Punkt(double x, double y)
{
this.x = x;
this.y = y;
}
}
class Neck
{
//Konstruktor
public Neck(Punkt mittelpunkt, double radius, int eckenanzahl)
{
double Winkel = 2 * Math.PI / eckenanzahl;
double x;
double y;
for (int i = 0; i < eckenanzahl; i++)
{
x = mittelpunkt.x + (radius * Math.Cos(i * Winkel));
y = mittelpunkt.y + (radius * Math.Sin(i * Winkel));
}
}
}
//Methode:
static public double Umfang(int eckenanzahl, double radius)
{
double winkel = Math.PI / eckenanzahl;
return eckenanzahl * 2 * radius * Math.Sin(winkel);
}
static void Main(string[] args)
{
Console.Write("Geben Sie die Anzahl der Ecken an: ");
int n = int.Parse(Console.ReadLine());
Console.Write("Geben Sie den Radius ein: ");
double r = double.Parse(Console.ReadLine());
Console.Write("Geben Sie den X-Wert des Mittelpunktes ein: ");
double x = double.Parse(Console.ReadLine());
Console.Write("Geben Sie den Y-Wert des Mittelpunktes ein: ");
double y = double.Parse(Console.ReadLine());
Console.WriteLine("Der Umfang beträg: " + (Umfang(n,r)));
Console.ReadKey();
Hallo suave86,
Bitte benutze die Code-Tags. [Hinweis] Wie poste ich richtig? Punkt 6.
Was willst du denn genau wissen? Der Konstruktor macht das, was er sagt: Er konstruiert eine Klasse. Kannst du mit
MyClass myclass = new MyClass();
aufrufen. Dann hast du eine Instanz deiner Klasse. Der Konstruktor kann auch Parameter übergeben bekommen, womit man initiale Eigenschaften der Klasse beschreiben kann. In deinem Fall bekommt "Neck" einen Mittelpunkt, einen Radius und eine Eckenanzahl.
Methoden innerhalb einer Klasse können irgenwelche Aktionen ausführen. Etwas berechnen beispielsweise.
Deine Methode "Umfang" berechnet den Umfang und gibt diesen zurück.
Du solltest nicht Code kopieren den du nicht verstehst 😉 Und vielleicht mal ein Buch lesen. Oder im Internet stöbern.
[Hinweis] Bitte schau in die SDK-/MSDN-Doku
[FAQ] Wie finde ich den Einstieg in C#?
Ich hoffe, ich konnte dir ein wenig helfen. Aber: Was genau ist denn dein Problem? Also was genau verstehst du nicht?
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
was ein konstruktor und eine methode ist weiß ich .ich versteh bloss nicht in diesen fall wie er den umfang berechnet .das ist mein problem
Dann verwende den [Artikel] Debugger: Wie verwende ich den von Visual Studio?, damit Du schritt-weise den Code nachverfolgen kannst.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
ich versteh bloss nicht in diesen fall wie er den umfang berechnet
Hallo suave86,
was meinst du damit? Wie er es berechnet? Er verrechnet einfach die Werte.
Da wo du sie aufrufst setzt er das Ergebnis ein.
Console.WriteLine("Der Umfang beträg: " + (Umfang(n,r)));
Ist vielleicht einfacher/verständlicher wenn du schreibst
double umfang = Umfang(n,r);
Console.WriteLine("Der Umfang beträg: " + umfang));
Lässt sich auch schöner debuggen 😉
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
ja genau die berechnung versteh ich nicht die mittels des konstruktors und der methode angewendet wird.kann die nicht nachvollziehen.
Hallo suave86,
wenn dus nicht nachvollziehen kannst nimm mal den Debugger und schau, was dien Code macht und versuche zu verstehen, was da vor sich geht. Abt hat den Link nicht umsonst gepostet. Der Konstruktor hat mit der Berechnung recht wenig zu tun, denn "Umfang" benutzt ja nur Parameter, die sie übergeben bekommt zum Berechnen.
Btw: Einmal berechnest du den Winkel mit 2 * ... und in der Methode nicht 😉 Die Variablen haben unterschiedliche scopes, heissen aber ähnlich. Vielleicht verwirrt dich das...
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
danke ich versuchs mal.bin eher verwirrt weil ich einfach die art nicht versteh wie der umfang berechnet wird.
finde auch keine passende formel die mittels der x,y,anzahl der ecken und radius den unfang berechnet
Die Struktur Punkt sowie die Klasse Neck werden ja auch gar nicht in der Main-Methode benutzt, d.h. du könntest sie auch löschen 😉
Woher hast du denn den Code? Aus einem Buch oder Tutorial?
Und der Umfang wird in der statischen Methode mittels der Umfang eines regelmäßigen Polygons-Formel berechnet.
PS: Der bisherige Code im Neck-Kosntruktor ist auch ziemlich sinnfrei, da dort bisher n (=eckenanzahl) mal der Wert für x und y berechnet wird (und danach dann die Werte nicht weiter benutzt werden). Soll das eine Aufgabe sein, damit man die Formel herleiten soll?
PPS: Daß der Umfang eine N-Ecks unabhängig von dem Mittelpunkt ist, sollte dir aber klar sein, oder?
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
ne ist eine aufgabe vom studium, wir sollten eigentlich den flächeninhalt(mittels x,y koordinaten) und umfang(mittels x,y koordinaten) berechnen mit geeigneten konstruktoren und methoden.als exkurs hat unser tutor uns die aufgabe mit dem umfang so gelöst anhand der echzahlen,radius etc.
Bitte beachte [Hinweis] Wie poste ich richtig?, besonders Punkt 2.3
Bitte verwende auch - wenn möglich - Groß und Kleinschreibung bzw. Zeichensetzung.