How to Prompt User for Desired Payment in Loan Payment Program?

  • Context: Fortran 
  • Thread starter Thread starter Nicolaus
  • Start date Start date
  • Tags Tags
    Beginner Fortran
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
4 replies · 2K views
Nicolaus
Messages
73
Reaction score
0
Can someone give him a head start re: the following Q:

We can make the program test itself by having it plug in the found root and evaluate the LHS (it should be zero). Complete the program by having it evaluate the LHS at x = root1.


! This program finds the roots of equations of the 2nd degree
! with coefficients a, b and c
program Equation
implicit none
real*4 a, b, c, delta
real*4 root1, root2
integer*1 count

! ----------------------------------------------Prompt and Input
print*, "Solves ax^2 + bx + c = 0"
print*, "Enter the coefficients a,b,c separated by commas..."
read*, a, b, c

! ----------------------------------------------Validate

! ----------------------------------------------Find delta
delta = b**2 - 4.* a * c

! ----------------------------------------------Determine Roots
if (delta .GT. 0.) then
root1 = (-b + sqrt(delta)) / (2. * a)
root2 = (-b - sqrt(delta)) / (2. * a)
count = 2
else if (delta .LT. 0.) then
count = 0
else
root1 = -b / (2. * a)
count = 1
end if

! ----------------------------------------------Show Results
if (count .EQ. 2) then
write(*,20) " Equation has two roots: ", root1, ", ", root2
else if (count .EQ. 1) then
write(*,20) " Equation has one root: ", root1
else
write(*,20) " Equation has no real roots!"
end if
20 format(1x, A, F10.4, A, F10.4)

! ----------------------------------------------Verify root1
if (count .GT. 0) then
print*, "Verifying the first root by computing the L.H.S.:"



end if

! ----------------------------------------------
end
 
Physics news on Phys.org
The previous Q asked me to modify the program under "Validate" so if a=0 then it stops the program from further computing, and now I need to output the root, if any, of the supplied 1st-degree equation. How do I modify the program to adopt this approach?


! This program finds the roots of equations of the 2nd degree
! with coefficients a, b and c
program Equation
implicit none
real*8 a, b, c, delta
real*8 root1, root2, x, LHS
integer*1 count

! ----------------------------------------------Prompt and Input
print*, "Solves ax^2 + bx + c = 0"
print*, "Enter the coefficients a,b,c separated by commas..."
read*, a, b, c

! ----------------------------------------------Validate
if (a .EQ. 0) then
print*, "This is not an equation of the 2nd degree!"
stop
end if

! ----------------------------------------------Find delta
delta = b**2 - 4.* a * c

! ----------------------------------------------Determine Roots
if (delta .GT. 0.) then
root1 = (-b + sqrt(delta)) / (2. * a)
root2 = (-b - sqrt(delta)) / (2. * a)
count = 2
else if (delta .LT. 0.) then
count = 0
else
root1 = -b / (2. * a)
count = 1
end if

! ----------------------------------------------Show Results
if (count .EQ. 2) then
write(*,20) " Equation has two roots: ", root1, ", ", root2
else if (count .EQ. 1) then
write(*,20) " Equation has one root: ", root1
else
write(*,20) " Equation has no real roots!"
end if
20 format(1x, A, F20.15, A, F20.15)

! ----------------------------------------------Verify root1
if (count .GT. 0) then
print*, "Verifying the first root by computing the L.H.S.:"
x = root1
LHS = a*x**2 + b*x + c
print*, "LHS = ", LHS
end if

! ----------------------------------------------
End
 
Thanks, finished that one. Now, I wrote the following program and am wondering how I would write a code that prompts the user every 12 months to make a desired payment of up to 10% of what remains of the loan.

! ------- Loan Payment -------

program Borrow
implicit none

integer month
real loan, mPayment, interestRate

print*, "Enter the amount of the loan: "
read*, loan

print*, "Enter the annual interest rate (as a percent): "
read*, interestRate

print*, "Enter the monthly payment: "
read*, mPayment

print*, "Amount of the loan is: ", loan
print*, "Annual interest rate : ", interestRate
print*, "Your monthly payment is : ", mPayment

print*, "month loan"
month = 0
do while (loan .gt. 0)
loan = loan + loan*interestRate/100/12 - mPayment
month = month + 1
write(*,12), month, loan
12 format(1x, I5, F12.2)
end do

stop
end