procedure ReversePrint(StartIndex, EndIndex: int, Strings : array 1 .. * of string) % ... your code here using some kind of loop end ReversePrint procedure ForwardPrint(StartIndex, EndIndex : int, Strings : array 1 .. * of string) % ... your code here using recursion end ForwardPrint var StringArray : array 1 .. 100 of string var i : int := 0 var s : string put "Input String, end with `end' " loop get s exit when s = "end" i := i + 1 StringArray(i) := s end loop ForwardPrint(1,i,StringArray) put "" ReversePrint(1,i,StringArray) put "" ForwardPrint(1,i div 2, StringArray) ReversePrint((i div 2) + 1, i,StringArray)