![]() |
Formatierung langer Terme
Hi!
Bei langen Termen mit vielen Klammern stellt sich mir immer wieder die Frage: Wo soll ich am besten Leerzeichen und Zeilenbrüche einbauen, damit der Code möglichst gut lesbar ist? Hier mal ein Beispiel:
Delphi-Quellcode:
Ich hab damit schon viel damit rumprobiert, eine Möglichkeit wäre z.B. auch diese:
edtVx.Text := FloatToStr(Ord((Angle < 90) or (Angle > 270)) *
Sqrt(Sqr(TotalSpeed) / (Sqr(Tan(DegToRad(Angle))) + 1)));
Delphi-Quellcode:
Wie würdet ihr diesen Befehl (oder allgemein solche Terme) formatieren?
edtVx.Text := FloatToStr( Ord((Angle < 90) or (Angle > 270)) *
Sqrt( Sqr(TotalSpeed) / ( Sqr(Tan(DegToRad(Angle))) + 1 ) ) ); Würdet ihr Sqr(Ausdruck) vll auch durch Ausdruck * Ausdruck ersetzen oder DegToRad(Angle) durch Angle * Pi / 180? Oder statt "Ord" ein paar if-Abfragen? Ich hab bisher noch nichts gefunden, was mich überzeugt? |
Re: Formatierung langer Terme
Also wenn du unbedingt umbrechenn willst, dann am besten Konsquent.
Klammern würde ich so umbrechen, wie es in Delphi mit begin und end üblich ist:
Delphi-Quellcode:
Genau wie bei Delphi's begin und end siehst du sofort jede öffnende und schliessende Klammer und du kannst eine fehlende Klammer sofort identifizieren.
edtVx.Text := FloatToStr
( Ord((Angle < 90) or (Angle > 270)) * Sqrt ( Sqr(TotalSpeed) / ( Sqr(Tan(DegToRad(Angle))) + 1 ) ) ); EDIT: Mit Hilfe von Delphi's Klammerhervorhebung solltest du dann immer 2 Klammern, die auf einer Ebene stehen gleichzeitig hervorheben können. Wenn das nicht klappt wiesst du sofort, dass was falsch ist und kansnt anfangen die Unterteile auch noch in extra-Zeilen umzubrechen, bis du den Fehler hast... |
Re: Formatierung langer Terme
Das ist doch nicht übersichtlich...
Delphi-Quellcode:
So würde ich das übersichtlich gestalten.
edtVx.Text := FloatToStr( Ord((Angle < 90) or (Angle > 270)) *
Sqrt( Sqr(TotalSpeed) / ( Sqr(Tan(DegToRad(Angle))) + 1 ) ) );
Delphi-Quellcode:
(Falls das korrekt von mir entwirrt wurde :mrgreen: ).
...
Var Vx, Ts2, TanAngle2 : Double; Mult : Integer; Begin Ts2 := Sqr (TotalSpeed); TanAngle2 := 1 + Sqr (Tan (DegToRad (Angle))); If (Angle < 90) or (Angle > 270) Then Mult := 1 // Wieso??? else Mult := 0; vx := Mult *Sqrt(Ts2/TanAngle2); edtVx.Text := FloatToStr(vx); ... Und richtig übersichtlich wird es, wenn du noch dazuschreibst, was das soll. Wie willst Du denn eigentlich bei deinem Stil Fehler finden? Und denk jetzt nicht, das das ja total langsam wird..... |
Re: Formatierung langer Terme
@yankee: Hm, dann gehn ja noch mehr Zeilen für einen Befehl drauf :|
Zitat:
Zitat:
Zitat:
Mein aktueller Favorit ist jetzt:
Delphi-Quellcode:
Wenn ihr noch weitere Ideen habt, schreibt sie hier rein.
var
vx: Extended; begin {...} vx := Sqrt( Sqr(TotalSpeed) / (Sqr(Tan(DegToRad(Angle))) + 1) ); if (Angle > 90) and (Angle < 270) then vx := -vx; edtVx.Text := FloatToStr(vx); {...} |
Re: Formatierung langer Terme
Zitat:
Ich aber solange du das Zeugs nur auf dem Bildschirm hast, solltest du mit den Zeilen nicht sparsam sein. Ich kann den Drang wenige Zeilen zu verbrauchen zwar nachvollziehen (habe ich auch manchmal), aber begrünbar ist es eigentlich nicht. Nagut, macnhaml muss man elend viell scrollen. Aber sonst mache die Kosntrukte eben nur so zum debuggen und schmeisse sie am Ende wieder in eine Zeile. So amche ich es meistens auch. |
Re: Formatierung langer Terme
@Cöster: Kann man so stehen lassen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz