home *** CD-ROM | disk | FTP | other *** search
- begin comment algol-m program to compute permutations of
- sets of numbers;
- integer n;
- integer function factorial(n);
- integer n;
- FACTORIAL:=IF N=0 THEN 1 ELSE N*FACTORIAL(N-1);
- write("Input the number of numbers in the set");
- read(n);
- while n<>9999 do
- begin integer array set[1:n];
-
- procedure writeout;
- begin integer i; write(" ");
- for i:=1 step 1 until n do
- writeon(set[i]);
- end;
-
- procedure exchange(i,j);
- integer i,j;
- integer temp;
- begin temp:=set[i]; set[i]:=set[j];
- set[j]:=temp;
- end;
-
- procedure permute(k);
- integer k,i;
- begin
- if k=n then writeout else
- BEGIN
- for i:=k step 1 until n do
- begin exchange(i,k); permute(k+1);
- exchange(k,i);
- end;
- end;
- end;
-
- PROCEDURE READER;
- begin
- integer i;
- for i:=1 step 1 until n do
- begin
- write("Input number",i);
- read(set[i]);
- end;
- writeout;
- end;
-
- WRITE(" "); WRITE("THERE ARE",FACTORIAL(N)," ");
- WRITEON("PERMUTATIONS OF THE FOLLOWING SET OF NUMBERS");
- READER; WRITE(" "); WRITE(" ");
- permute(1); write(" "); read(n);
- end;
- write("end of run");
- end
- eof