The SDL Component Suite is an industry leading collection of components supporting scientific and engineering computing. Please visit the SDL Web site for more information....



Example program SORTINTO.PAS


The program SORTINTO.PAS shows the application of the procedures SortArray,SortIntoArray, InsertIntoArray on the calculation of the smallest value of a series of numbers. Out of the input numbers the 17 smallest numbers are shown on the screen.

 
program sortinto; 

uses 
  crt, math1; 

const 
  MaxNum = 17; 

var 
  ra      : array[1..MaxNum] of real; 
  raix    : array[1..MaxNum] of integer; 
  newval  : real; 
  cnt     : integer; 
  index   : word; 
  EndProg : boolean; 

procedure DisplayArray; 
(*-------------------*) 

var 
  i : integer; 

begin 
gotoxy (7,1); 
write ('sorted Array          Index'); 
for i:=1 to MaxNum do 
  begin 
  gotoxy (10,i+1); 
  write (ra[i]:10:2, '   ',raix[i]:10); 
  end; 
end; 

begin 
ClrScr; 
for cnt:=1 to MaxNum do 
  begin 
  ra[cnt] := 1000.0*random; 
  raix[cnt] := cnt; 
  end; 
SortArray (addr(ra),MaxNum,rnum,true); 
DisplayArray; 
EndProg := false; 
repeat 
  gotoxy (1,23); DelLine; DelLine; 
  gotoxy (1,24); 
  write ('(ABORT: Enter any character)'); 
  gotoxy (1,23); 
  write ('Enter a number to be sorted into the array: '); 
  {$I-} read (newval); {$I+} 
  if IoResult <> 0 
    then EndProg := True 
    else begin 
         index := SortIntoArray (addr(ra),MaxNum,rnum, 
                                 addr(newval),true,true); 
         if index > 0 
           then begin 
                inc (cnt); 
                InsertIntoArray (addr(raix),MaxNum,inum, 
                                 addr(cnt),index); 
                DisplayArray; 
                end 
           else begin 
                gotoxy (1,23); DelLine; DelLine; 
                write ('Number to large - press <ESC> to continue'); 
                repeat until readkey = #27; 
                end; 
         end; 
until EndProg; 
end. 


Last Update: 2023-Feb-06