Autor |
Beitrag |
depigoid
      
Beiträge: 24
Win XP
|
Verfasst: Mo 12.03.07 17:34
Hallo!
Ich habe einen Quelltext zum Thema insertion sort, der nicht funktioniert und den ich nicht verstehe. Könnte mir bitte jemand sagen, warum DIESE (s.u.) Zeile nicht funktioniert - es kommt immer als Fehlermeldung "Imkompatible Typen". Könnte mir bitte auch jemand diesen Quelltext erklären?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| procedure THauptfenster.BerechneClick(Sender: TObject); type tfeld=array[1..20]of integer; const n=20; var i,j,help:integer; a,b:tfeld; begin for i:=1 to n do begin a[i]:=random(593); listbox1.items.Add(inttostr(a[i])); end;
for i:=1 to n do begin if a[i]<a[i-1] then begin j:=i; help:=a[i]; if (a[j-1]>help and j>0) then begin a[j]:=a[j-1]; j:=j-1; end; a[j]:=help; end; end;
for i:=1 to n do listbox2.items.Add(inttostr(a[i])); end;
end. |
Ich würde mich sehr über Hilfe freuen!
Mit freundlichen Grüßen
depigoid
Moderiert von Gausi: Delphi-Tags hinzugefügt
|
|
Robinator
      
Beiträge: 275
WinXP
BDS 2006
|
Verfasst: Mo 12.03.07 17:41
Bitte Delphi-Tags benutzen! So kann man das nicht lesen
gruss, Rob
_________________ erare humanum est
|
|
Jann1k
      
Beiträge: 866
Erhaltene Danke: 43
Win 7
TurboDelphi, Visual Studio 2010
|
Verfasst: Mo 12.03.07 17:50
weiß zwar nicht was bei deiner markierten zeile nicht stimmt aber klappt den schon darüber
if a[i]<a[i-1] then
nicht? wenn i=1 ist a(i-1)=a(0) und a(0) gibts nicht, also müsste das proggi abstürzen...denke ich
|
|
r2c2
      
Beiträge: 324
Erhaltene Danke: 2
Linux
|
Verfasst: Mo 12.03.07 17:54
Hallo
das Problem, was zum Fehler führt, sind IMHO fehlende Klammern.
Zu Fehlermeldungen im Allgemeinen siehe auch: r2c2.weingut-rehn.de...-Fehlermeldungen.htm
mfg
Christian
_________________ Kaum macht man's richtig, schon klappts!
|
|
depigoid 
      
Beiträge: 24
Win XP
|
Verfasst: Mo 12.03.07 19:57
erstmal danke!
aber was dagegen zu tun ist, weiß ich leider immer noch nicht.
"[...],sind IMHO fehlende Klammern." - was ist das bzw. was heißt das?
Was will mir der Quelltext überhaupt sagen?
dann leider noch ein weiteres Problem der Unwissenheit: wie mach ich das mit den Tags? Ich hab das jetzt einfach mal als Anhang mit rangemacht. Ich hoffe es funktioniert.
Mit freundlichen Grüßen
depigoid
Einloggen, um Attachments anzusehen!
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Mo 12.03.07 20:01
Hallo depigoid!
Delphi Text setzt du mit [delphi ] {Code} [/delphi ]
Delphi-Quelltext 1:
| if (a[j-1]>help and j>0) then |
Wenn du mehere Abfragen mit AND, OR oder XOR zusammenfast musst du jeden Vergleich einklammern:
Delphi-Quelltext 1:
| if (a[j-1] > help) and (j > 0) then |
grüße marc
//edit: JayEff: Problem gelöst!
Zuletzt bearbeitet von Marc. am Mo 12.03.07 20:31, insgesamt 4-mal bearbeitet
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mo 12.03.07 20:29
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
depigoid 
      
Beiträge: 24
Win XP
|
Verfasst: Di 13.03.07 22:09
Vielen Dank.
Könnte mir bitte noch jemand sagen, was der Quelltext ansonsten mir versucht zu sagen? Er legt ne Schleife durchs gesamte Array [i] - und dann?
Mit freundlichen Grüßen
depigoid
|
|
depigoid 
      
Beiträge: 24
Win XP
|
Verfasst: Di 13.03.07 22:22
Er gibt mir jetzt aber immer noch nicht die Zahlen sortiert aus. Woran liegt das? Zählt das immer noch unter Insertion sort?
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| procedure THauptfenster.BerechneClick(Sender: TObject); type tfeld=array[1..20]of integer; const n=20; var i,j,help:integer; a,b:tfeld; begin for i:=1 to n do begin a[i]:=random(593); listbox1.items.Add(inttostr(a[i])); end;
for i:=1 to n do begin if a[i]<a[i-1] then begin j:=i; help:=a[i]; if (a[j-1]>help) and (j>0) then begin a[j]:=a[j-1]; j:=j-1; end; a[j]:=help; end; end;
for i:=1 to n do listbox2.items.Add(inttostr(a[i])); end;
end. |
MfG depigoid
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Di 13.03.07 23:21
[x] das ist eine Hausarbeit.
[x] du hast nicht aufgepasst.
Stimmts?
_________________ Na denn, dann. Bis dann, denn.
|
|
r2c2
      
Beiträge: 324
Erhaltene Danke: 2
Linux
|
Verfasst: Mi 14.03.07 10:48
_________________ Kaum macht man's richtig, schon klappts!
|
|
depigoid 
      
Beiträge: 24
Win XP
|
Verfasst: Do 15.03.07 17:38
1. Hausarbeit: stimmt (wenigstens z.T.)
2. du hast nicht aufgepasst: stimmt nicht!
Vielen Dank für die Hilfe! Ich glaube ich weiß jetzt, gegen wen's geht. Nochmal danke!!
Mit freundlichen Grüßen
depigoid
|
|