Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lassen? (https://www.delphipraxis.net/92967-zahlenreihenfolge-mit-4-zahlen-ordnen-und-anzeigen-lassen.html)

DeddyH 31. Mai 2007 12:08

Re: Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lasse
 
Und hier eine Variante zum Vertauschen zweier ganzer Zahlen ohne Puffer-Variable.
Delphi-Quellcode:
procedure VertauscheZahlen(var a,b: integer);
begin
  a := a xor b;
  b := b xor a;
  a := a xor b;
end;

Mexbuild 3. Jun 2007 21:12

Re: Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lasse
 
@Bitsetter
Diese Methode ist sehr gut. Könntest du mir deine Version erläutern, wie sie im genaueren Funktioniert?

U.a:
Delphi-Quellcode:
procedure VertauscheZahlen(var zahlA, zahlB: integer);
var
  Puffer: integer;
begin
  Puffer := zahlA;
  zahlA := zahlB;
  zahlB := Puffer;
end;
und...

procedure VergleicheZahlen(var zahlA, zahlB: integer);
begin
if zahlB < zahlA then
VertauscheZahlen(zahlA, zahlB);
end;

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  zahl1, zahl2, zahl3, zahl4: integer;
begin
  zahl1 := StrToInt(Edit1.Text);
  zahl2 := StrToInt(Edit2.Text);
  zahl3 := StrToInt(Edit3.Text);
  zahl4 := StrToInt(Edit4.Text);

  VergleicheZahlen(zahl1, zahl2);
  VergleicheZahlen(zahl1, zahl3);
  VergleicheZahlen(zahl1, zahl4);

  VergleicheZahlen(zahl2, zahl3);
  VergleicheZahlen(zahl2, zahl4);

  VergleicheZahlen(zahl3, zahl4);
Was passiert bei "VergleicheZahlen"? Wird dort das gleiche wie bei "max" gemacht? Und was hat es mit dem Puffer aus sich? (Erste zitierte Prozedur)

bitsetter 3. Jun 2007 22:02

Re: Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lasse
 
Zitat:

Zitat von Mexbuild
Wird dort das gleiche wie bei "max" gemacht?(Erste zitierte Prozedur)

EDIT: Nein

Zitat:

Zitat von Mexbuild
Und was hat es mit dem Puffer aus sich? (Erste zitierte Prozedur)

Um die Zahlen tauschen zu können muss ich zahlA zwischenspeichern.
Delphi-Quellcode:
zahlA := zahlB;
zahlB := zahlA;
So könnte ich die Zahlen nicht vertauschen.


Im Endeffekt möchte ich, dass zahl1 die kleinste Zahl und zahl4 die größte Zahl wird. Dazu muss ich alle Zahlen systematisch miteinander vergleichen:
Delphi-Quellcode:
procedure VergleicheZahlen()
.
Wenn zum Beispiel
Delphi-Quellcode:
   
  zahl1 := 5;
  zahl4 := 1;
  VergleicheZahlen(zahl1, zahl4);
dann würde daraus zahl1 = 1 und zahl4 = 5 werden.
Der Code ist natürlich noch nicht optimal aber er funktioniert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz