{============================================================== sort.p This program tests a sorting routine. Started by Jeff Ondich on 5/1/96 Last modified 5/8/96 ==============================================================} program sorttester(input,output); const maxIntarraySize = 100; type intarray = array[1..maxIntarraySize] of integer; var theNumbers : intarray; nNumbers : integer; {============================================================== PrintList prints the given list of integers on a single line. ==============================================================} procedure PrintList( var list : intarray; listLength : integer ); var i : integer; begin for i := 1 to listLength do write( list[i]:4 ); writeln end; {============================================================== Sort doesn't do anything, but it does provide a model procedure-header for sorting procedures. ==============================================================} procedure Sort( var list : intarray; listLength : integer ); begin end; {============================================================== SelectionSort sorts the given array of integers in decreasing order. ==============================================================} procedure SelectionSort( var num : intarray; length : integer ); var i, j, temp, indexOfMax : integer; begin for i := 1 to length-1 do begin { Find the largest item between indices i and length } indexOfMax := i; for j := i+1 to length do begin if num[j] > num[indexOfMax] then indexOfMax := j end; { Swap the max item and num[i] } temp := num[i]; num[i] := num[indexOfMax]; num[indexOfMax] := temp end end; {============================================================== GetNumbers gets a sequence of integers from the user,. ==============================================================} procedure GetNumbers( var num : intarray; var length : integer ); begin length := 0; while (length < maxIntarraySize) and (not eoln) do begin length := length + 1; read( num[length] ) end; readln end; {============================================================== The main program prompts the user, gets a list of integers, sorts them, and prints out the sorted list. ==============================================================} begin write( 'Enter integers separated by spaces: ' ); GetNumbers( theNumbers, nNumbers ); SelectionSort( theNumbers, nNumbers ); PrintList( theNumbers, nNumbers ) end.