home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / TURBOPAS / PAS_ENG.ZIP / TSTSORT.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  1985-07-19  |  1.3 KB  |  75 lines

  1. program tstsort;  { -> 172 }
  2. { test speed of sorting routine }
  3.  
  4. const max = 1000;
  5.  
  6. type ary = array[1..300] of real;
  7.  
  8. var x : ary;
  9.  n,i : integer;
  10.  seed : real;
  11.  first : boolean;
  12.  
  13.  
  14. {$I RANDOM.LIB }
  15.  
  16. procedure print;
  17. var i  : integer;
  18.  
  19. begin
  20.   writeln;
  21.   for i:=1 to n do
  22.     begin
  23.       write(x[i]:7:2);
  24.       if (i mod 10)=0 then writeln
  25.     end
  26. end;
  27.  
  28. procedure { bubble- } sort(var a: ary; n: integer);
  29. var i,j : integer;
  30.  hold : real;
  31.  
  32. begin  { procedure sort }
  33.   for i:=1 to n-1 do
  34.     for j:=i+1 to n do
  35.       begin
  36.  if a[i]>a[j] then
  37.    begin
  38.      hold:=a[i];
  39.      a[i]:=a[j];
  40.      a[j]:=hold
  41.    end
  42.     end  { for }
  43. end;  { procedure sort }
  44.  
  45. begin  { MAIN program }
  46.   clrscr;
  47.   seed:=4.0;
  48.   repeat
  49.     repeat
  50.       writeln;
  51.       write('How many points? ');
  52.       readln(n)
  53.     until n<=max;
  54.     if first then first:=false else clrscr;
  55.     for i:=1 to n do
  56.       x[i]:=100*random(0);
  57.     print;
  58.     write(chr(7));
  59.     sort(x,n);  { random numbers }
  60.     write(chr(7));
  61.     print;
  62.     writeln(' random ');
  63.     write(chr(7));
  64.     sort(x,n);  { sorted numbers }
  65.     write(chr(7));
  66.     print;
  67.     writeln(' sorted ');
  68.     for i:=1 to n do
  69.       x[i]:=n+1-i;
  70.     write(chr(7));
  71.     print;
  72.     writeln(' reversed ');
  73.   until n<5
  74. end.
  75.