Entwickler-Ecke

Sonstiges (Delphi) - Eckige Klammern in for-Schleifen?


handchris - Fr 12.11.10 21:03
Titel: Eckige Klammern in for-Schleifen?
Hallo liebe Community...
Ist das eins meiner Hirngespinste, dass man innerhalb von for-Schleifen hinter durchnummerierte Variablen in eckigen Klammern die Zählvariable schreiben kann?
Also ich möchte 5 Integer-Werte der Größe nach sortieren (den Kleinsten an den Anfang).

Variablen: a1,a2,a3,a4,a5 und x als Hilfe


Quelltext
1:
2:
3:
4:
5:
6:
if a1>a2 then
 begin 
  x:=a1;
  a1:=a2;
  a2:=x;
 end;


so... und das möchte ich jetzt mit a2>a3 und a3>a4 undso wiederholen... also dachte ich mir: Machste eine for-Schleife:


Quelltext
1:
2:
3:
4:
5:
6:
if a[i]>n[a+1] then 
 begin
   x:=a[i];
   a[i]:=a[i+1];
   a[i+1]:=x;
 end;


So. Das funktioniert nicht, weil das wohl so mit den eckigen Klammern nicht geht.
Gibt es da irgendeine ähnliche Möglichkeit oder wieso kenn ich solche komischen Sachen wenn sie falsch sind? ô.o

Danke schonmal fürs Lesen! :D


Bergmann89 - Fr 12.11.10 21:06

Hey,

mit Eckigen Klammern greift man immer auf ein Element in einem Array zu. Hast du denn deine Variablen auch als Array deklariert? a: array[0..5of Integer

MfG Bergmann


handchris - Fr 12.11.10 21:08

Ok danke erstmal!
Also dann hab ich da früher wohl immer Arrays benutzt...

SO habe es mal ausprobiert und mit den Arrays scheint es theoretisch zu gehen. (Praktisch vielleicht nicht, da das Programm etwas komplexer ist als das Beispiel gerade... mal sehn.)

Vielen Danke für die schnelle und präzise Antwort! :D


Bergmann89 - Sa 13.11.10 00:21

Hey,

wegen dem Sortieren kannst du mal bei Wikipedia gucken, da haste den Pseudecode un evtl auch Pascal Code. Einfach mal die verschiedenen Sortieralgorithmen suchen: Bubblesort, Selectsort, Insertsort, Quicksort, Mergesort, ...
Ansonsten im Forum suchen, das Thema gab es auch schon relativ oft ;)

MfG Bergmann


jaenicke - Sa 13.11.10 07:03

user profile iconhandchris hat folgendes geschrieben Zum zitierten Posting springen:
(Praktisch vielleicht nicht, da das Programm etwas komplexer ist als das Beispiel gerade... mal sehn.)
Falls das an der festen Länge des Array liegt, kannst du die Länge auch dynamisch zuweisen. (Falls du das nicht kennst ;-))