modular as the algorithms that you design get more complexit gets more and more difficult to make sense out of programs humans are pretty good at keeping track of eight to ten things at time when presented with an algorithm that is hundreds of lines longeven the best programmers will throw up their hands in bewilderment one way to deal with this complexity is to break an algorithm into smaller subprogramseach of which makes sense on its own 'll have lot more to say about this later when we discuss program design in for nowwe'll just take look at an example let' return to the future value problem one more time here is the main program as we left itdef main()introduction print("this program plots the growth of -year investment "get principal and interest rate principal eval(input("enter the initial principal")apr eval(input("enter the annualized interest rate")create graphics window with labels on left edge win graphwin("investment growth chart" win setbackground("white"win setcoords(- ,- text(point(- ) 'draw(wintext(point(- ) 'draw(wintext(point(- ) 'draw(wintext(point(- ) 'draw(wintext(point(- )' 'draw(windraw bar for initial principal drawbar(win principaldraw bar for each subsequent year for year in range( )principal principal ( aprdrawbar(winyearprincipalinput("press to quit "win close(main(although we have already shortened this algorithm through the use of the drawbar functionit is still long enough to make reading through it awkward the comments help to explain things