Autor Beitrag
depigoid
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24

Win XP

BeitragVerfasst: 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?


ausblenden volle Höhe Delphi-Quelltext
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; //Array festlegen
const n=20;                        
var i,j,help:integer;
    a,b:tfeld;
begin
  for i:=1 to n do
   begin
    a[i]:=random(593);                  //Zufällige Zahlen ermitteln im Array 1 bis 20
    listbox1.items.Add(inttostr(a[i])); //Zufällige Zahlen ausgeben in Listbox1
   end;

  for i:=1 to n do
   begin
    if a[i]<a[i-1then
     begin
      j:=i;
      help:=a[i];
       if (a[j-1]>help and j>0then  //DIESE Zeile (...funktioniert nicht)
        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 user profile iconGausi: Delphi-Tags hinzugefügt
Robinator
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 275

WinXP
BDS 2006
BeitragVerfasst: Mo 12.03.07 17:41 
Bitte Delphi-Tags benutzen! So kann man das nicht lesen ;)

gruss, Rob

_________________
erare humanum est
Jann1k
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 866
Erhaltene Danke: 43

Win 7
TurboDelphi, Visual Studio 2010
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: Mo 12.03.07 17:54 
Hallo :wave:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24

Win XP

BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mo 12.03.07 20:01 
Hallo depigoid!
Delphi Text setzt du mit [delphi] {Code} [/delphi] ;)
ausblenden Delphi-Quelltext
1:
if (a[j-1]>help and j>0then //DIESE Zeile (...funktioniert nicht)					

Wenn du mehere Abfragen mit AND, OR oder XOR zusammenfast musst du jeden Vergleich einklammern:
ausblenden Delphi-Quelltext
1:
if (a[j-1] > help) and (j > 0then //DIESE Zeile (...funktioniert!!!)					

grüße marc

//edit: JayEff: Problem gelöst!


Zuletzt bearbeitet von Marc. am Mo 12.03.07 20:31, insgesamt 4-mal bearbeitet
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Mo 12.03.07 20:29 
user profile iconMarc. hat folgendes geschrieben:
ausblenden Quelltext
1:
[delphi] {Code} [/delphi[b][/b]]					

//edit: wieso zur Hölle funktionieren die DelphiTags nicht?!

Weil noch ein Delphitag offen ist.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
depigoid Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24

Win XP

BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24

Win XP

BeitragVerfasst: 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?

ausblenden volle Höhe Delphi-Quelltext
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-1then
     begin
      j:=i;
      help:=a[i];
       if (a[j-1]>help) and (j>0then
        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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Di 13.03.07 23:21 
[x] das ist eine Hausarbeit.
[x] du hast nicht aufgepasst.

Stimmts?

_________________
Na denn, dann. Bis dann, denn.
r2c2
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: Mi 14.03.07 10:48 

_________________
Kaum macht man's richtig, schon klappts!
depigoid Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24

Win XP

BeitragVerfasst: 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