AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Werte tauschen

Ein Thema von P4CM4N · begonnen am 21. Sep 2007 · letzter Beitrag vom 21. Sep 2007
Antwort Antwort
Seite 1 von 3  1 23      
P4CM4N

Registriert seit: 14. Jun 2007
49 Beiträge
 
#1

Werte tauschen

  Alt 21. Sep 2007, 15:33
Also bis jetzt hab ich folgendes:
Delphi-Quellcode:
procedure Swapvalues(var x,y: integer);
var
dummy: integer;
begin
dummy:=x;
x:=y;
y:= dummy;
end;
und das
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var zahl1:tzahl;
var c,super1:integer;
begin
Lotto(zahl1,super1); //Ausgabe
c:=1;
repeat
if zahl1[c]>zahl1[c+1] then SwapValues(zahl1[c],zahl1[c+1]);
Stringgrid1.Cells[c,0]:=IntToStr(zahl1[c]);
c:=c+1;
until c=7;
Nur irgendwie werden die Werte nur beim ersten mal auf Button1 sortiert. danach sind sie nich mehr sortiert. Woran liegt das?

[edit=SirThornberry]Titel geändert - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Und noch einmal... Werte tauschen

  Alt 21. Sep 2007, 16:06
Der Sortieralgo ist unvollständig (wahrscheinlich hattest du beim ersten Mal Glück).
Da solltest du nochmal drüberschauen!
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#3

Re: Und noch einmal... Werte tauschen

  Alt 21. Sep 2007, 16:18
Meine sieht so aus:

Delphi-Quellcode:
var
  Changed : Boolean;
  i : Integer;
  Speicher : Integer;

Repeat
  Changed := False;
  For i := 0 To Length(a) - 2 do
  begin
    if a[i] > a[i+1] then
    begin
      Speicher := a[i];
      a[i] := a[i+1];
      a[i+1] := Speicher;
      Changed := True;
    end;
  end;
Until Changed = False;
Christian
  Mit Zitat antworten Zitat
P4CM4N

Registriert seit: 14. Jun 2007
49 Beiträge
 
#4

Re: Und noch einmal... Werte tauschen

  Alt 21. Sep 2007, 16:38
Eine Sache verstehe ich an deinem Code nicht, und zwar diese Zeile:
  For i := 0 To Length(a) - 2 do was bewirkt die genau?
  Mit Zitat antworten Zitat
pstruh
(Gast)

n/a Beiträge
 
#5

Re: Und noch einmal... Werte tauschen

  Alt 21. Sep 2007, 16:57
Hallo!
Das Array hat den Namen "a", der höchste Index des Arrays ist Length(a)-1 (Basis 0, erstes Element hat den Index 0). Da innerhalb der Schleife auf a[i+1] zugegriffen wird, darf die Schleife eben nur bis zum vorletzten Element "hochzählen"
Gruß
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#6

Re: Und noch einmal... Werte tauschen

  Alt 21. Sep 2007, 16:59
Hallo,

tauscht man Werte nicht mit XOR?
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Und noch einmal... Werte tauschen

  Alt 21. Sep 2007, 17:00
Zitat von s-off:
Hallo,

tauscht man Werte nicht mit XOR?
Bits kannst du damit tasuchen, oder an was hast du gedacht?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#8

Re: Und noch einmal... Werte tauschen

  Alt 21. Sep 2007, 17:03
Zitat von sirius:
Zitat von s-off:
Hallo,

tauscht man Werte nicht mit XOR?
Bits kannst du damit tasuchen, oder an was hast du gedacht?
Ja, daran dachte ich.
Habe mir nicht den gesamten Thread durchgelesen, sondern nur nach Titel geantwortet; sorry.
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#9

Re: Werte tauschen

  Alt 21. Sep 2007, 17:04
Hä? XOr ist der Ausdruck für 'entweder a oder b' da wird nix getauscht. Das einzige, was an 'tauschen' auch nur im Ansatz rankommt wäre:
Delphi-Quellcode:
var
  a: Byte;
begin
  a:=134;
  a:=a XOR 11111111b;
end;
Damit kippst Du alle Bits von a (Du 'tauschst' quasi alle 1er mit 0ern und umgekehrt).
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#10

Re: Werte tauschen

  Alt 21. Sep 2007, 17:09
Achso, die äußere Repaet-Shleife ist dafür da, weil immer nur 2 Einträge miteniander vertauscht werden. Wenn un ein element am ende der Liste ganz nach vorne muss, muss die Tauschfunktion auch entsprechend oft durchlaufen werden, damit das funktioniert. Wenn nichts mehr getauscht wurde, ist alles an seinem Platz und bei Until wird die Schleife verlassen.
Christian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 Uhr.
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