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: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58:
| var Form1: TForm1; ergebnis : Textfile;
implementation
{$R *.dfm}
procedure perm (fest, vorrat : ARRAY OF Integer); VAR i,k : INTEGER; temp : STRING; neu_fest : ARRAY OF Integer; neu_vorrat : ARRAY OF Integer; begin if Length(vorrat)=1 THEN begin temp:=''; for i:=0 TO High(fest) DO temp:=temp+IntToStr(fest[i])+' '; temp:=temp+IntToStr(vorrat[0]); Writeln(ergebnis,temp); end else begin
SetLength(neu_fest,Length(fest)); for i:=0 TO High(fest) DO neu_fest[i]:=fest[i];
SetLength(neu_fest,Length(neu_fest)+1);
for i:=0 TO High(vorrat) DO begin neu_fest[High(neu_fest)]:=vorrat[i];
SetLength(neu_vorrat,Length(vorrat)-1); FOR k:=0 TO i-1 DO neu_vorrat[k]:=vorrat[k]; FOR k:=i+1 TO High(vorrat) DO neu_vorrat[k-1]:=vorrat[k];
perm(neu_fest,neu_vorrat); end; end; end;
procedure TForm1.Button1Click(Sender: TObject); const anzahl = 4; VAR i : INTEGER; leer : ARRAY OF Integer; zahlen : ARRAY OF Integer; begin AssignFile(ergebnis,'c:\ausgabe.txt'); ReWrite(ergebnis); SetLength(zahlen,anzahl); SetLength(leer,0); for i:=0 TO anzahl-1 DO zahlen[i]:=i+1; perm(leer,zahlen); ShowMessage('Fertig!'); CloseFile(ergebnis); end; |