home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
SIMTEL
/
CPMUG
/
CPMUG028.ARK
/
PERM.ALG
< prev
next >
Wrap
Text File
|
1984-04-29
|
1KB
|
56 lines
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