Advertisement
Guest User

Untitled

a guest
Oct 7th, 2014
32
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ada 0.89 KB | None | 0 0
  1. with Ada.Text_IO, Ada.Integer_Text_IO;
  2. use Ada.Text_IO, Ada.Integer_Text_IO;
  3.  
  4. procedure permutation is
  5.  
  6.  
  7. tmp : Character;
  8. str : String := "123";
  9. start : Integer := 1;
  10.  
  11. procedure perms (s :  in out String; i : in Integer; n : in Integer);
  12. procedure change (s : in out String; i : in Integer; j : in out Integer);
  13.  
  14. procedure  perms (s : in out String; i : in Integer; n : in Integer) is
  15.  
  16. j : Integer := i;
  17.  
  18.      begin
  19.      if i = n then
  20.          put(s);
  21.          New_Line;
  22.      else
  23.         for Index in j..n loop
  24.             change(s,i,j);
  25.             perms(s,i+1,n);
  26.             change(s,i,j);
  27.         end loop;
  28.      end if;
  29.  
  30.  end perms;
  31.  
  32.  
  33.   procedure  change (s : in out String; i : in  Integer; j : in out Integer) is
  34.  
  35.   begin
  36.    
  37.     tmp  := s(i);
  38.     s(i) := s(j);
  39.     s(j) := tmp;
  40.  end change;
  41.  
  42. begin
  43.     perms(str,start,str'length);
  44.  
  45.  
  46. end permutation;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement