![]() |
AW: Programm Hilfe
genau da weiß ich nicht mehr weiter vielleicht eine hilfestellung
|
AW: Programm Hilfe
Delphi-Quellcode:
[edit] P.S.: Das ist aufsteigende Sortierung, für absteigende muss der Vergleich genau anders herum sein. [/edit]
Durchlauf := 1;
repeat //wir sagen mal von vornherein: wir sind fertig done := true; for i := Low(DeinArray) to High(DeinArray) - Durchlauf do if DeinArray[i] > DeinArray[i + 1] then begin //tauschen (selbst implementieren) //wir mussten tauschen, also doch nicht fertig done := false; end; Durchlauf := Durchlauf + 1; until done; //nix mehr getauscht -> fertig |
AW: Programm Hilfe
jetzt aber oder?
|
AW: Programm Hilfe
Es ist nicht sehr zielführend, wenn Du "alte" Posts editierst und man erst suchen muss, wo der geänderte Code jetzt steht. Außerdem subtrahierst Du ja jetzt fix immer 1, im Gegensatz zu mir. Und ein wenig Formatierung und Einrückung täte Deinem Code gut. Versuch doch erst einmal, den Bubblesort zu begreifen, dann siehst Du auch, wie Du ihn implementieren musst.
|
AW: Programm Hilfe
Delphi-Quellcode:
so?
doppelt:=true;
for i:= Low(a) to High(a) - Strtoint(park) do if a[i] > a[i+1] then begin park:=a[i];a[i]:=a[i+1];a[i+1]:=park; doppelt:= false; end; park :=strtoint(park) +1; until doppelt; |
AW: Programm Hilfe
Zitat:
Edit: Und aus dem park ein integer und aus a, b array [1..4] of integer statt string und StrToInt(Copy(.. |
AW: Programm Hilfe
Was willst Du denn jetzt mit diesem komischen "park" (und dann noch String als Integer samt Umwandlung)? Deklarier doch einfach eine Integer-Variable (in meinem Fall "Durchlauf"), dann kannst Du meinen Code fast 1:1 übernehmen.
|
AW: Programm Hilfe
Delphi-Quellcode:
so?
Form1: TForm1;
i,j,zahl1,zahl2,differenz,durchlauf,park:integer; spielplatz,zahltext,zahltexteins,zahltextzwei:string; doppelt:boolean; a,b:array[1..4] of integer; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin zahltext:=edit1.text; for i:=1 to 4 do begin //zerlegung a[i]:=copy(Strtoint(zahltext),i,1); b[i]:=copy(Strtoint(zahltext),i,1); end; durchlauf:=1; repeat doppelt:=true; for i:= Low(a) to High(a) - durchlauf do if a[i] > a[i+1] then begin park:=a[i];a[i]:=a[i+1];a[i+1]:=park; doppelt:= false; end; durchlauf :=durchlauf +1; until doppelt; wie so? |
AW: Programm Hilfe
In dieser Variante gibt es kein J.
|
AW: Programm Hilfe
das mit copy ist schwer dann
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:03 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