(* Chapter 5 - Program 2 *) program Another_Procedure_Example; var Count : integer; Index : integer; procedure Print_Data_Out(Puppy : integer); begin Writeln('This is the print routine',Puppy:5); Puppy := 12; end; procedure Print_And_Modify(var Cat : integer); begin Writeln('This is the print and modify routine',Cat:5); Cat := 35; end; begin (* main program *) for Count := 1 to 3 do begin Index := Count; Print_Data_Out(Index); Writeln('Back from the print routine, Index =',Index:5); Print_And_Modify(Index); Writeln('Back from the modify routine, Index =',Index:5); Print_Data_Out(Index); Writeln('Back from print again and the Index =',Index:5); Writeln; (* This is just for formatting *) end; end. (* of main program *) { Result of execution This is the print routine 1 Back from the print routine, Index = 1 This is the print and modify routine 1 Back from the modify routine, Index = 35 This is the print routine 35 Back from print again and the Index = 35 This is the print routine 2 Back from the print routine, Index = 2 This is the print and modify routine 2 Back from the modify routine, Index = 35 This is the print routine 35 Back from print again and the Index = 35 This is the print routine 3 Back from the print routine, Index = 3 This is the print and modify routine 3 Back from the modify routine, Index = 35 This is the print routine 35 Back from print again and the Index = 35 }