Laden...

Geometrie Neu überarbeitet v2

Erstellt von ZebRa vor 13 Jahren Letzter Beitrag vor 13 Jahren 3.435 Views
Z
ZebRa Themenstarter:in
8 Beiträge seit 2010
vor 13 Jahren
Geometrie Neu überarbeitet v2

So hab/will ein Geometrieprogramm machen, mit dem man alle mögliche Körper und Flächen berechnen kann.
Hab mal mit der Pyramide angefangen.

Würde mich über Tipps und Bugreport freuen.
Bin neu in der Programmierung und vil. bekomm ich hilfreiche Tipps.
Hab mit dem Galileo-Openbook angefangen, und hier gelesen, dass das Buch C# von Kopf bis Fuß sehr zu empfehlen ist.
Des hab ich dann auch direkt vorher bestellt. : )
Aber schluss mit dem unsinnigen gelaber.

Link entfernt.. und als Dateianhang hinzugefügt

Mit freundlichen Grüßen

Okay vielen Dank, werde es in Zukunft berücksichtigen.

Hinweis von michlG vor 13 Jahren

Willkommen im Forum
Bitte die Dateien immer als Dateianhang anhängen. Denn diese Gratis-Uploader löschen die Dateien oft, dann hagelt es tote Links.
Ich habe das mal schnell für dich gemacht

Grüsse
Michael

297 Beiträge seit 2008
vor 13 Jahren

Hi ZebRa,

ich habe es mir nur kurz angeschaut und einen Fehler gefunden. Wenn man für die Höhe und die Seitenlänge 5 einträgt, bekommt man zwar die richtigen Werte für die Seitenhöhe und Seitenkante, allerdings ist das Ergebnis der Mantelfläche falsch. Das angezeigte Ergebnis ist 50, richtig (meiner Rechnung zufolge) ist aber Seitenhöhe * Seitenkante * 2 was in diesem Fall etwa 55,901699.
Dementsprechend ist auch das Ergebnis der Oberfläche falsch.
Das Volumen wird auch richtig berechnet.

Ich hoffe, dass dir der Bugreport hilft.

PS: Mich würde auch der Sourcecode interessieren, damit könnte man dir sicher mehr Tips geben als mit der lauffähigen Anwendung.

There are 10 kind of people, those who understand binary and those who don't.

Z
ZebRa Themenstarter:in
8 Beiträge seit 2010
vor 13 Jahren

Danke...
Habs behoben.
Am Anfang hab ich immer mit XXX * XXX die Quadratzahl ausgerechnet.
Bis ich gelesen hab das man da Math.Pow(XXX, 2) benutzen kann.
Hab dann ausversehn Math.Pow(Seitenlänge, 2); gehabt anstatt (Seitenlänge * Seitenhöhe) * 2;

Der Quellcode, kommt gleich.

Edit: Okay, Quellcode + update oben im Dateinanhang.

297 Beiträge seit 2008
vor 13 Jahren

Ok, ich habs mal kurz überflogen und habe ein paar Anmerkungen:

  • Du solltest die ganze Berechnung nicht in einer Methode durchführen, sondern die einzelnen Berechnungen, je nachdem welche Werte eingegeben wurden, in eigene Methoden auslagern. Damit verkürzt du dann auch die 255 Zeilen lange Methode erheblich. Prinzipiell kannst du davon ausgehen, dass Methoden, in denen du #region-Elemente brauchst, damit sie halbwegs übersichtlich sind, viel zu lang.
  • Der Try-Catch-Block ist für meinen Geschmack etwas arg groß. Entweder du machst mehrere kleine Try-Catch-Blöcke um die einzelnen Konvertierungen, oder du verwendest die statische TryParse-Methode der double-Klasse, dann brauchst du gar keinen Try-Catch-Block mehr (zumindest nicht für das Konvertieren)
  • Der Catch-Abschnitt des Try-Catch-Blocks fängt alle Exceptions auf, statt diese explizit zu nennen, beispielsweise die InvalidCastException oder eine DivideByZeroException.
  • Die ganzen "" für einen leeren String sollten durch string.Empty ersetzt werden.
  • Statt Convert.ToString(Grund); kannst du auch einfach Grund.ToString(); schreiben.

Das wars mal fürs Erste, bei Fragen kannst du dich gerne melden.

There are 10 kind of people, those who understand binary and those who don't.

Z
ZebRa Themenstarter:in
8 Beiträge seit 2010
vor 13 Jahren

Das mit den Methoden weis ich nicht genau was du meinst. -.-
Hast du ein kleines Beispiel?

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo Schlopp,

Die ganzen "" für einen leeren String sollten durch string.Empty ersetzt werden.

Abgesehen von der Leserlichkeit nicht notwendig. Der Compiler führt ein "String-Pooling" durch. Siehe auch [FAQ] Besonderheiten der String-Klasse (immutabler Referenztyp mit Wertsemantik)

Hallo ZebRa,

Das mit den Methoden weis ich nicht genau was du meinst.

Damit ist gemeint dass (zu) lange Methode refactored werden sollen. Schau dir hierzu mal die Kapitel in Refactoring. Ich weiß dass das etwas viel Text sein wird, aber glaub mir dass es sich lohnt 😉

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

Z
ZebRa Themenstarter:in
8 Beiträge seit 2010
vor 13 Jahren

Hab die "" schon durch das genannte ersetzt. : )
Werd ich lesen... auch wenns englisch ist. -.-

Edit:
Habe jetzt mehrere Methoden geschrieben anstatt alles in eine zu stecken, nachdem ich das Kapitel in meinem Buch durchgearbeitet hab.
Als nächstes kommt dann die Fehlerbeahndlung.

Würde mich aber freuen, wenn ihr den Code schonmal anschaut. : )
Und vielleicht den ein oder anderen Tipp für mich habt.

Grüße ZebRa

Z
ZebRa Themenstarter:in
8 Beiträge seit 2010
vor 13 Jahren

Update. : )

[Edit=gfoidl] Oben wurde eine neue Version hinzugefügt -> daher das Update [/Edit]