Presentation is loading. Please wait.

Presentation is loading. Please wait.

Example Using Functions

Similar presentations


Presentation on theme: "Example Using Functions"— Presentation transcript:

1 Example Using Functions
Using Top-Down Design and Functions to Simplify Code and Create Modules

2 Problem: Interest Compute interest that is compounded annually.
Write an interactive program that allows the user to calculate the interest accrued in a savings account that is compounded annually over a period of years. The user must supply the principal amount, interest rate and the number of years .

3 Algorithm: Interest Print explanation of the program
Get principal from user. Get interest rate from user. Get number of years from user. For the number of years specified Calculate the amount in the account at the end of the year. (amount += amount * rate) interest accrued = amount - principal Print report.

4 Deciding on functions: Interest Write the Function Prototypes
void PrintInstructions (void) ; float GetPrincipal (float max, float min) ; float GetInterestRate (float max, float min) ; int GetYears (int max, int min) ; float CalculateAmount (float principal, float rate, int years) ; void PrintReport (float principal, float rate, int years, float amount, float interest) ;

5 Interest : Design the Report
Interest rate : % Period : 20 years Principal at start of period : Interest accrued : Total amount at end of period :

6 Improved Interest with functions Programmed Incrementally, #1 Write and test PrintInstructions( )
/*****************************************************************************************\ * Filename: interest.c * * Author: * * Description: This program computes the interest accrued in an account * * that compounds interest annually * \*****************************************************************************************/ #include <stdio.h> void PrintInstructions (void) ; int main ( ) { PrintInstructions ( ) ; return 0; } /************************************************** * PrintInstructions is a procedure that prints the program instructions for the user * It takes no arguments and returns no values \*************************************************/ void PrintInstructions (void) printf (“This program computes the interest accrued in an account\n ” ) ; printf (“that compounds interest annually. You will need to enter the\n ” ) ; printf (“amount of the principal, the interest rate and the number of years. \n\n ” ) ;

7 Interest : Output #1 This program computes the interest accrued in an account that compounds interest annually. You will need to enter the amount of the principal, the interest rate and the number of years.

8 Improved Interest with functions Programmed Incrementally, # 2 Add to main ( ), write & debug GetPrincipal ( ) /*****************************************************************************************\ * Filename: interest.c * * Author: * * Description: This program computes the interest accrued in an account * * that compounds interest annually * \******************************************************************************************/ #include <stdio.h> #define MAXPRIN #define MINPRIN void PrintInstructions (void) ; float GetPrincipal (float max, float min) ; int main ( ) { float principal ; PrintInstructions ( ) ; principal = GetPrincipal (MAXPRIN, MINPRIN) ; printf (“The principal is %.2f \n ” , principal) ; return 0; }

9 Improved Interest with functions Programmed Incrementally, # 2 Writing of GetPrincipal ( )
/************************************************** * GetPrincipal gets the principal amount from the user and returns it to the calling function. * It assures that the principal is between the minimum amount passed to this function and the * maximum amount passed to this function. \*************************************************/ float GetPrincipal (float max, float min) { float principal ; printf (“Enter the principal amount : “) ; scanf (“%f”, &principal) ; /* assure input is between min and max */ while ( principal < min || principal > max ) printf (“The principal amount must be a value between %.2f and %.2f\n”, min, max) ; printf (“Enter the principal amount : “); scanf (“ %f ”, &principal); } return principal ;

10 Interest : Output #2 Test GetPrincipal ( )
This program computes the interest accrued in an account that compounds interest annually. You will need to enter the amount of the principal, the interest rate and the number of years. Enter the principal amount : The principal amount must be a value between 0.00 and Enter the principal amount : -5.00 Enter the principal amount : Enter the principal amount : - .01 Enter the principal amount : The principal is

11 Improved Interest with functions Programmed Incrementally, # 3 Add to main ( ), write and test GetRate ( ) /*****************************************************************************************\ * Filename: interest.c * * Author: * * Description: This program computes the interest accrued in an account * * that compounds interest annually * \*****************************************************************************************/ #include <stdio.h> #define MAXPRIN #define MINPRIN #define MAXRATE #define MINRATE void PrintInstructions (void) ; float GetPrincipal (float max, float min) ; float GetRate ( float max, float min); int main ( ) { float principal, rate ; PrintInstructions ( ) ; principal = GetPrincipal (MAXPRIN, MINPRIN) ; rate = GetRate (MAXRATE, MINRATE) ; printf (“The interest rate is %.4f \n ” , rate) ; return 0; }

12 Improved Interest with functions Programmed Incrementally, # 3 Write and test GetRate ( )
/************************************************** * GetRate gets the interest rate from the user and returns it to the calling function. * It assures that the rate is between the minimum amount passed to this function and the * maximum amount passed to this function. \*************************************************/ float GetRate (float max, float min) { float rate; printf (“Enter the interest rate as a decimal (for 7%% enter .07) : “) ; scanf (“%f”, &rate); /* assure input is between min and max */ while ( rate < min || rate > max ) printf (“The interest rate must be between %.4f and %.4f\n”, min, max ) ; printf (“Enter the interest rate as a decimal (for 7%% enter .07) : “) ; scanf ( “ %f ”, &rate); } return rate ;

13 Interest : Output #3 Test GetRate ( )
This program computes the interest accrued in an account that compounds interest annually. You will need to enter the amount of the principal, the interest rate and the number of years. Enter the principal amount : Enter the interest rate as a decimal (for 7% enter .07) : 5 The interest rate must be between and Enter the interest rate as a decimal (for 7% enter .07) : Enter the interest rate as a decimal (for 7% enter .07) : .07 The interest rate is .0700

14 Improved Interest with functions Programmed Incrementally, # 4 Add to main ( ), write and test GetYears ( ) /***********************************************************\ * Filename: interest.c * * Author: * * Description: This program computes the interest * * accrued in an account that * * compounds interest annually * \***********************************************************/ #include <stdio.h> #define MAXPRIN #define MINPRIN #define MAXRATE #define MINRATE #define MINYEARS 1 #define MAXYEARS void PrintInstructions (void) ; float GetPrincipal (float max, float min) ; float GetRate ( float max, float min) ; int GetYears (int max, int min) ; int main ( ) { float principal, rate ; int years ; PrintInstructions ( ) ; principal = GetPrincipal (MAXPRIN, MINPRIN) ; rate = GetRate (MAXRATE, MINRATE) ; years = GetYears (MAXYEARS, MINYEARS) ; printf (“years is %d\n”, years) ; return 0; }

15 Improved Interest with functions Programmed Incrementally, # 4 Write and test GetYears ( )
/************************************************** * GetYears gets the years of the investment from the user and returns it to the calling function. * It assures that the years are between the minimum amount passed to this function and the * maximum amount passed to this function. \*************************************************/ int GetYears (int max, int min) { int years ; printf (“Enter the number of years : “); scanf (“%d”, &years); /* assure input is between min and max */ while ( years < min || years > max ) printf (“The number of years must be between 1 and 100, inclusive \n ” ) ; } return years ;

16 Interest : Output #4 Test GetYears ( )
This program computes the interest accrued in an account that compounds interest annually. You will need to enter the amount of the principal, the interest rate and the number of years. Enter the principal amount : Enter the interest rate as a decimal (for 7% enter .07) : .07 Enter the number of years : 0 The number of years must be between 1 and 100, inclusive Enter the number of years : 101 Enter the number of years : 20 years is 20

17 Improved Interest with functions Programmed Incrementally, # 5 Add to main ( ), write & test CalculateAmount ( ) /***********************************************************\ * Filename: interest.c * * Author: * * Description: This program computes the interest * * accrued in an account that * * compounds interest annually * \***********************************************************/ #include <stdio.h> #define MAXPRIN #define MINPRIN #define MAXRATE #define MINRATE #define MINYEARS 1 #define MAXYEARS void PrintInstructions (void) ; float GetPrincipal (float max, float min) ; float GetRate ( float max, float min) ; int GetYears (int max, int min) ; float CalculateAmount (float principal, float rate, int years ) ; int main ( ) { float principal, rate, amount ; int years ; PrintInstructions ( ) ; principal = GetPrincipal (MAXPRIN, MINPRIN) ; rate = GetRate (MAXRATE, MINRATE) ; years = GetYears (MAXYEARS, MINYEARS) ; amount = CalculateAmount (principal, rate, years) ; printf (“amount is %.2f\n”, amount) ; return 0; }

18 Improved Interest with functions Programmed Incrementally, # 5 Write and test CalculateAmount( )
/************************************************** * CalculateAmount calculates and returns the amount in the account when the account * is opened with the principal amount passed in, at the annual percentage rate passed in, * compounded annually, for the number of years passed in. \*************************************************/ float CalculateAmount (float principal, float rate, int years) { int i ; /* Calculate total amount in the account after the specified number of years */ for ( i = 0 ; i < years ; i++ ) principal += principal * rate ; } return principal;

19 Interest : Output #5 Test CalculateAmount ( )
This program computes the interest accrued in an account that compounds interest annually. You will need to enter the amount of the principal, the interest rate and the number of years. Enter the principal amount : Enter the interest rate as a decimal (for 7% enter .07) : .07 Enter the number of years : 20 amount is

20 Improved Interest with functions Programmed Incrementally, # 6 Add to main ( ), write & test PrintReport ( ) /***********************************************************\ * Filename: interest.c * * Author: * * Description: This program computes the interest * * accrued in an account that * * compounds interest annually * \***********************************************************/ #include <stdio.h> #define MAXPRIN #define MINPRIN #define MAXRATE #define MINRATE #define MINYEARS 1 #define MAXYEARS void PrintInstructions (void) ; float GetPrincipal (float max, float min) ; float GetRate ( float max, float min) ; int GetYears (int max, int min) ; float CalculateAmount (float principal, float rate, int years ) ; void PrintReport (float principal, float rate, int years, float amount, float interest) ; int main ( ) { float principal, rate, amount, interest ; int years ; PrintInstructions ( ) ; /Get valid input from user */ principal = GetPrincipal (MAXPRIN, MINPRIN) ; rate = GetRate (MAXRATE, MINRATE) ; years = GetYears (MAXYEARS, MINYEARS) ; /* Do Calculations */ amount = CalculateAmount (principal, rate, years) ; interest = amount - principal ; PrintReport (principal, rate, years, amount, interest ) ; return 0; }

21 Improved Interest with functions Programmed Incrementally, # 6 Write and test PrintReport( )
/************************************************** * PrintReport takes original principal amount, the interest rate, amount of years of the * investment, amount in the account at the end of the term and the accrued interest as * arguments. It prints these values in a report format. \*************************************************/ void PrintReport (float principal, float rate, int years, float amount, float interest) { printf (“\n\n”) ; printf (“Interest rate : %.4f %% \n ” , 100 * rate ) ; printf (“ Period : %d years \n \n ” , years ) ; printf (“ Principal at start of period : %9.2f \n ” , principal ) ; printf (“ Interest accrued : %9.2f \n ” , interest ) ; printf (“Total amount at end of period : %9.2f /n ” , amount) ; }

22 Interest : Output #6 Final output: Test PrintReport ( )
This program computes the interest accrued in an account that compounds interest annually. You will need to enter the amount of the principal, the interest rate and the number of years. Enter the principal amount : Enter the interest rate as a decimal (for 7% enter .07) : .07 Enter the number of years : 20 Interest rate : % Period : 20 years Principal at start of period : Interest accrued : Total amount at end of period :


Download ppt "Example Using Functions"

Similar presentations


Ads by Google