Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Array und SortSelection Problem


FooGui - Mi 22.06.11 16:49
Titel: Array und SortSelection Problem
Hi,
ich bin ganz neu im Forum und bei Delphi. 8)
Eigentlich habe ich bis jetzt alles im Informatikunterricht schnell begriffen und stand auch immer auf 15 Punkten. Aber jetzt zu meinem, für euch vermutlich recht einfachen,Problem.
Wir sollen nun im Unterricht mit Hilfe von feldern(Array) unterschiedliche Zahlen in eine Listbox bringen und dort per SortSelection sortieren. Leider habe ich keine Ahnung wie ich das machen soll. Es wäre nett wenn ihr mit helft ;)


GericasS - Mi 22.06.11 16:55

Meinst du nicht mit Hilfe von SelectionSort ?


FooGui - Mi 22.06.11 17:00

user profile iconGericasS hat folgendes geschrieben Zum zitierten Posting springen:
Meinst du nicht mit Hilfe von SelectionSort ?

oder so...


Narses - Mi 22.06.11 17:03

Moin und :welcome: im Forum!

user profile iconFooGui hat folgendes geschrieben Zum zitierten Posting springen:
Leider habe ich keine Ahnung wie ich das machen soll.
15 Punkte, aber keinen Plan, wie man da ran geht? :gruebel:

Wie sieht denn dein Ansatz aus, hast du vielleicht schon was probiert, evtl. sogar etwas Code (muss ja nicht funktionieren) zu Hand? :les: ;)

Wir helfen dir gerne bei konkreten Fragen, aber wir machen nicht deine Hausaufgaben. :idea: :zwinker:

cu
Narses


FooGui - Mi 22.06.11 17:41

Danke für die schnelle Antwort ;)
Naja Hausaufgaben sind es nicht direkt. Wir schreiben nächste Woche eine Arbeit darüber und der ganze Jahrgang kann es nicht, weil unser Lehrer ne Pfeife ist. Der kann uns nichts beibringen. Er hat uns aber einen Code gegeben womit wir ein Array erstellen können. Der funktioniert aber nicht. Das ganze ist aber für Namen gedacht:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
globale Festlegungen:
      Const Anzahl=3;
      var
            Form1: TForm1;
            Person:ARRAY[1..Anzahl]of string;


      procedure TForm1.Button1Click(Sender: TObject);
      var i:integer;
      begin
          inc(Anzahl);
          Person[Anzahl]:=edit1.text;
          FOR i:=1 TO Anzahl DO listbox1.items.add(Person[i]);
      end;
Mir scheint es etwas merkwürdig, dass ich Anzahl erhöhen soll obwohl Anzahl konstant ist.

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt und Color- durch Highlight-Tags ersetzt.


Gausi - Mi 22.06.11 18:14

Wenn das wirklich der Code vom Lehrer ist, dann würde ich dieses eine mal zustimmen, dass
user profile iconFooGui hat folgendes geschrieben Zum zitierten Posting springen:
unser Lehrer ne Pfeife ist.

Da will wohl jemand dynamische Arrays haben, aber so läuft das nicht...

Eher so:

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:
//globale Festlegungen:
var
  Form1: TForm1;
  Person:ARRAY of string;
  Anzahl: Integer; // ggf. besser als ein Eigenschaft der Form, niht als globale Variable


// im FormCreate 
  Anzahl := 1;
  SetLength(Person, anzahl);

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  inc(Anzahl);
  SetLength(Person, anzahl); // Array vergrößern!
  Person[Anzahl-1] := edit1.text; // wichtig, dynamische Arrays fangen bei 0 an
  // besser auch noch: vorher ein
  Listbox1.Items.Clear 
  FOR i := 0 TO Anzahl-1 DO listbox1.items.add(Person[i]);
  // oder halt nur das letzte Item einfügen und den Rest so lassen
  // listbox1.items.add(Person[anzahl-1])
 end;


FooGui - Mi 22.06.11 18:40

Vielen Dank! ;)
hätte wohl niemand von uns so hinbekommen wir haben das mit den ARRAYS auch noch nicht so gemacht.


beastofchaos - Mi 22.06.11 23:35

Haha, jaaa Informatiklehrer sind teilweise noch richtige Pfeifen, die gut benoten :P (letztes Jahr hatten fast alle eine 1+), dieses erste Halbjahr habe ich eine 2 bekommen und alle anderen eine 1... Grund:???? obwohl die bei dem Problem auch hängen bleiben würden :P

Aber wie komtm ien LEHRER darauf, eine Konstante zu inkrementieren??? Frag ihn das mal so direkt :) Ich hoffe, deiner ist nicht wie meiner, der dir dann von der Geschichte der Informatik iwas lavert, aber deine Antwort nicht beantworten kann^-^ Ich steh dann teilweise 30 Minuten da, nur weil ich ihn gfragt habe, ob wir nächste Woche Informatik ahebn... omg!

Gruß, Thomas