![]() |
gibt es swap
Hallo,
Ich weiß das es bei DElphi sowas wie eine Swap funktion gibt, bin mir halt zimlich sicher... Jedenfalls versteh ich nicht wie das genau geht. Ich habe zwei integer Variabel. z.B: i und j Jetzt will ich das die beiden Inhalte getauscht werden. Wie ich sie mit einer dritten Variabel tausche weiß ich aber gibts da nicht sowas wie swap (i,j) ???? Danke für hilfe! Ferby |
Re: gibt es swap
Das gibt es schon, allerdings als Assembler-Statement:
Delphi-Quellcode:
Dieser Code tauscht (wie in deiner Frage) die zwei Variablen. Frage mich nicht, wie, denn das weiss ich auch nicht... ;)
asm
xchg i, j end; |
Re: gibt es swap
Hallo,
Ich habe ausprobiert:
Delphi-Quellcode:
asm
xchg eingabe[y], eingabe[y+1] end; wobei eingabe eine array of integer ist. es kommt die fehlermeldung [Fehler] Unit1.pas(60): Ungültige Kombination von Opcode und Operanden was ist falsch? |
Re: gibt es swap
Meinst du die Swapfunktion aus den Sortier-Tutorials? Die musst du die selbst bauen.
Delphi-Quellcode:
Wichtig ist nur das var, sonst passiert da nichts.
procedure Swapvalues(var x,y: integer);
var dummy: integer; begin dummy:=x; x:=y; y:= dummy; end; |
Re: gibt es swap
ja, assembler kann wahrscheinlich nicht mit arrays umgehen...
es gab auch ma ein verfahren ohne hilfsvariablen...
Delphi-Quellcode:
hier der thread dazu:
x:=x xor y;
y:=x xor y; x:=x xor y; ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:08 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