Program 16.3
Program 16.4
Program 16.4b
Program 16.4c