programming and problem solving with ada95