problem 3-1
problem 3-2
problem 3-3
problem 3-4