Programming in C Interest Simulation PR01 Generally when som

Programming in C Interest Simulation

PR01

Generally, when someone takes out a mortgage or other non-revolving loan, each payment is
the same except for the final payment, which might be a little more or a little less in order to
exactly pay off the loan. How is the required payment amount calculated? There is a closed
form solution for this problem, which is easily derivable or can be looked up, but it produces a
result that is not quite correct because it is based on the assumption that all transactions have
infinite resolution, meaning, for instance, that the monthly payment might be
$1234.5678473…. In actuality, all transactions are rounded to the nearest cent. The result is
that the actual monthly payment will be slightly different than the ideal payment – though
seldom by more than a few cents – and that the final payment must be slightly different,
usually by just a few dollars, to clear up the residual error.


Your program here will compute a mock Financial Disclosure statement for the principal and
interest portion of a fixed-rate mortgage. The user will be asked to enter the initial mortage
balance, the APR, and the number of years in the loan term. To simplify things, it will be
assumed that the mortgage is taken out on the first day of the month and that payments are
due the first day of the each month thereafter. This is not at all an unreasonable assumption
because loan companies generally force this situation to be the case, in effect, by requiring
interest associated with a closing date that is not on the first of the month either be prepaid at
closing or folded into the loan balance as of the first day of the next month. The other
assumption we will make is that a “month” is exactly 1/12 of a year. This is common practice in
the financial industry and is written into almost all mortgage contracts.


In order to determine the actual payment schedule for a real mortgage, the loan payments are
simulated and the payment amount adjusted until the payment that comes closest to paying off
the loan on schedule is found. The final payment is then adjusted to exactly clear the loan.


You are to run such a simulation to find the correct monthly payment. Each month interest is
first computed on the prior month’s balance and then this amount is added to the balance and
the current month’s payment is applied. Keep in mind that each transaction must be properly
rounded to the nearest cent. The simulation should run in a loop that progressively adjusts the
monthly payment until the magnitude of the residual balance after the final payment is as small
as possible; this might result in either a slight overpayment or a slight underpayment.

Typical run of the program:
What is the beginning principal balance ($): $ 250000.00
What is the annual interest rate (%): 4.125
What is the loan term (years): 15
IF PAID OFF ON SCHEDULE
179 equal payments of:.... $ 1864.92
Final payment of:......... $ 1864.59
Total Finance Cost:....... $ 85985.27
Run your simulations for the following cases and place the results in a ReadMe.txt file.
$200,000; 4.500%; 30 year
$200,000; 4.375%; 20 year
$200,000; 3.875%; 15 year
$200,000; 3.875%; 10 year


NOTE: These rates are current rates for no-closing cost loans with superior credit.

PR02


Write a program that asks the user for an integer value (may be negative) and that outputs the
bit pattern for that integer, starting with the most significant bit. You should use an int data
type which, on nearly all modern compilers, is a 32-bit value. Your output should print the
decimal value, the 8-digit hexadecimal representation, and the 32-bit binary bit pattern with
the bits in groups of four separated by a space.


You are required to write (and use) the function-like macro
testbit(integer, position)
that evaluates to true (1) or false (0) depending on if the bit in the indicated position (with 0
being the least significant bit) is a 1 or 0, respectively.
Run your program for a selection of small, moderate, and large integer values, both positive
and negative, placing the results in a ReadMe.txt file.


NOTE FOR BOTH PROGRAMS
We have not covered programmer-defined functions yet and so it is expected that all of your
code will be in a single main() function. If you want to write functions, that is fine. However, you
are NOT to use any library functions that perform the significant tasks, such as rounding a value
to the nearest cent. Part of the intent is for you to solve those types of problems yourself.

Solution

#include <stdio.h>
#include <math.h>

int main()
{

float int_rate, t_mortgage, mort, payments;
float loan_amount,remaining_balance,rate_decimal;
string fpayments;
double result;
int month = 1;


// Input entering ..................

printf(\"enter amount of mortgage in $ \");
scanf(\"%f\", &t_mortgage);
printf(\"Enter mort period in years: \");
scanf(\"%f\", &mort);
printf(\"Enter interest rate percentage \");
scanf(\"%f\", &int_rate);
printf(\"Enter frequency of payments, Monthly =month, bi-weekly = bi, Weekly = week: \");
scanf(\"%s\", &frequency_of_payments);


result = pow(1 + mort / 1200,interest_rate * 4.125);
result = (t_mortgage * interest_rate * result) / (1200 * (result - 1));

switch(f_payments) {
case \'month\' : result = (result * 12 / 12);
break;
case \'bi\' : result = (result * 12 / 24);
break;
case \'week\' : result = (result * 12 / 48);
break;
default : result = (result * 12 / 12);   
}

payments = result;

// Payment Output
switch(f_payments) {
case \'month\' : printf(\" Your monthly payments will be: $ %.2f\ \ \",payments);
break;
case \'bi\' : printf(\" Your bi-weekly payments will be: $ %.2f\ \ \",payments);
break;
case \'week\' : printf(\"Your weekly payments will be: $ %.2f\ \ \",payments);
break;
default : printf(\"]Your monthly payments will be: $ %.2f\ \ \",payments);
}
while(remaining_balance > 0)

{

remaining_balance = loan_amount - payments;

rate_decimal = interest_rate * 4.125;

interest = rate_decimal * remaining;
payment = month_payment;

printf(\" payment and remaining balance\"

, month, payment, interest, remaining_balance);
month = month + 1;

}


return 0;
}

Programming in C Interest Simulation PR01 Generally, when someone takes out a mortgage or other non-revolving loan, each payment is the same except for the fina
Programming in C Interest Simulation PR01 Generally, when someone takes out a mortgage or other non-revolving loan, each payment is the same except for the fina
Programming in C Interest Simulation PR01 Generally, when someone takes out a mortgage or other non-revolving loan, each payment is the same except for the fina

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site