| "Autor" |
INFORMATIKPROBLEME |
|
|
|
geschrieben am: 06.10.2004 um 12:39 Uhr
|
|
PROGRAM sort_partition;
USES wincrt;
CONST
n=8;
TYPE
t_reihung = array[1..n] of integer;
VAR
a : t_reihung;
anz : integer;
PROCEDURE eingabe(VAR feld : t_reihung);
VAR
i: integer;
BEGIN
FOR i:= 1 TO n DO
BEGIN
write('Bitte ',i,'. Zahl eingeben: ');
readln(feld[i]);
END
END;
PROCEDURE ausgabe(feld: t_reihung; x, y: integer);
VAR i: integer;
BEGIN
FOR i:= 1 TO n DO
write(feld[i]:2,' ');
writeln;
END;
PROCEDURE partition (VAR feld: t_reihung; l, r : integer);
VAR i, j, x, hilf: integer;
BEGIN
randomize;
x:= a[random(n)+1];
writeln(x);
i:= l; j:= r;
x:= feld[(l+r) div 2];
writeln('pos=',(l+r) div 2,' ','x=',x,' ','l=',l,' ','r=',r);
REPEAT
WHILE feld[i] < x DO i:= i + 1;
WHILE feld[j] > x DO j:= j - 1;
IF i <= j THEN
BEGIN
hilf:= feld[i]; feld[i]:= feld[j]; feld[j]:= hilf;
ausgabe(feld, i, j);
i:= i + 1;
j:= j - 1;
END;
UNTIL
i >= j;
IF l < j THEN partition(feld,l,j);
IF i < r THEN partition(feld,i,r);
END;
BEGIN {Hauptprogramm}
clrscr;
eingabe(a);
ausgabe(a,1,n);
partition(a,1,n);
END. |
|
|
|
|
|
|
Top
|
| "Autor" |
|
|
|
|
geschrieben am: 06.10.2004 um 12:57 Uhr
|
|
| ich glaube im support hast du hiermit mehr glück ;-) |
|
|
|
|
|
|
Top
|
| "Autor" |
|
|
|
|
geschrieben am: 06.10.2004 um 15:52 Uhr
|
|
| Ne kleine Erklärung wäre auch mal ein Brüller gewesen... |
|
|
|
|
|
|
Top
|
| "Autor" |
|
|
|
|
geschrieben am: 06.10.2004 um 15:54 Uhr
|
|
| n Brüller wäre auch mal ne kleine Erklärung gewesen.... |
|
|
|
|
|
|
Top
|
| "Autor" |
|
|
|
|
geschrieben am: 06.10.2004 um 16:01 Uhr
|
|
|
|
|
|
|
|
|
Top
|
| "Autor" |
|
|
|
|
geschrieben am: 06.10.2004 um 18:41 Uhr
|
|
| tolles pascal programm!!*gg* |
|
|
|
|
|
|
Top
|
| "Autor" |
|
|
|
|
geschrieben am: 06.10.2004 um 18:43 Uhr
|
|
| Ist es das wirklich oder wollteste was kluges sagen? ;) |
|
|
|
|
|
|
Top
|