![]() |
c(f^=g^=f^=g;) nach Delphi
ich habe folgende Quellcodezeile, welche in C 2 Zahlen ohne Hilfsvariable vertauscht:
Code:
nun möcht ich das in Delphi auch machen. Geht das irgendwie?
int f = 2, g = 3;
f^=g^=f^=g; ^ ist xor [Edit] Beitrag erweitert [/Edit] |
Re: c(f^=g^=f^=g;) nach Delphi
In Delphi geht das (glaube ich) nicht, also um 'ne Hilfsvariable wirst du wohl nicht rumkommen.
Delphi-Quellcode:
h := f; f := g; g := h;
|
Re: c(f^=g^=f^=g;) nach Delphi
Geht doch:
Delphi-Quellcode:
oder:
a:=a+b;
b:=a-b; a:=a-b;
Delphi-Quellcode:
a := a xor b;
b := a xor b; a := a xor b; |
Re: c(f^=g^=f^=g;) nach Delphi
cool!
danke!! |
Re: c(f^=g^=f^=g;) nach Delphi
OK, aber mit dieser Variante kann es auch zu Problemen kommen.
(versuch mal 3.000.000.000.000 und 0,000.000.000.003 zu tauschen ^^) |
Re: c(f^=g^=f^=g;) nach Delphi
@himitsu: Berechtigter Einwand, aber so ein Vertauschen kommt sicher sehr häufig vor. Für "normale" Zahlen funktioniert Toms Lösung sicher.
|
Re: c(f^=g^=f^=g;) nach Delphi
Hallo!
Bist du denn auch sicher, dass solch ein Code wirklich einen Sinn macht (auch der von Toms)? Die rechtsassoziativen Zuweisungsoperatoren von C können ja durchaus oft sehr praktisch sein, aber bei so einem Ding würd ich himitsus Code allemal vorziehen. Ist doch eine Mordsaufwand bis du (falls du es mal vergessen haben solltest ;)) geschweigedenn jemand anderes durchschaut hat was dieser Code macht. Da würd ich an deiner Stelle lieber auf Leserlichkeit (= Wartbarkeit = Fehlerunanfälligkeit [rechtsassoziativ :mrgreen:] ) setzen. Zumal: Was macht schon eine lokale Hilfsvariable? Viele Grüße, Sebastian |
Re: c(f^=g^=f^=g;) nach Delphi
na ja, es geht in manchen programmen nicht darum, sie so lesbar wie möglich zu machen, sondern manchmal auch so unlesbar wie möglich.
v.a. wenn das prog für die Schule is und man den prof. nicht mag, der das Prog verbessern muss! |
Re: c(f^=g^=f^=g;) nach Delphi
Zitat:
|
Re: c(f^=g^=f^=g;) nach Delphi
@Skiron:
Och wie gemein :mrgreen: Aber pass auf, auch die Leserlichkeit gehört zur Qualität eines Codes und kann deshalb mit in die Wertung einfließen. Viele Grüße, Sebastian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 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