package mortgagecalculator; /** this calculates the monthly payments and mortization tables for mortgages * * @author Melissa Foulger 12/09 */ import java.io.*; //accepts user input import java.text.NumberFormat; //formats decimal values public class MortgageCalculator { /** * @param args the command line arguments */ public static void main(String[] args)throws Exception { System.out.println("This program calculates monthly payments " + "and amoritization tables"); BufferedReader input = new BufferedReader (new InputStreamReader (System.in) ); String inputstring; //allocates space for user input double Principle, Interest, months; //declares variables NumberFormat dollars = NumberFormat.getCurrencyInstance();// set formats NumberFormat percent = NumberFormat.getPercentInstance(); percent.setMaximumFractionDigits(2); System.out.println("Enter Principle Amount and press enter"); inputstring = input.readLine(); Principle = Double.parseDouble(inputstring); //gets principle from user System.out.println("Principle Loan Amount: " + dollars.format (Principle)); System.out.println("Enter Annual Interest and press enter"); inputstring = input.readLine(); //gets rate from user Interest = ((Double.parseDouble((inputstring)) *.01 / 12)); //annual 2 monthly System.out.println("Enter Length of Loan in Years and press enter"); inputstring = input.readLine(); //gets length from user in years months = Double.parseDouble(inputstring) * 12; //years 2 months double monthly_payments = (Principle * Interest) /(1 Math.pow( 1 + Interest , months)); //calculates the monthly payments System.out.println("The monthly payments will be: " + dollars.format (monthly_payments)); double interest_paid = (Principle * Interest); double principle_paid = (monthly_payments  interest_paid); double ending_balance = Principle  principle_paid; int count = 0; while (count < 360) { double new_balance = ending_balance; interest_paid = new_balance * (Interest); // Calculate interest by multiplying rate against balance principle_paid = monthly_payments  interest_paid; // Subtract interest from your payment ending_balance = new_balance  principle_paid; // Subtract final payment from running balance // loan, interest, and payment made towards principle System.out.println ( " Payment: " + dollars.format(monthly_payments)); System.out.println( " Interest: " + dollars.format(interest_paid)); System.out.println( " Principle: " + dollars.format(principle_paid)); System.out.println( " Loan Balance is: " + dollars.format(ending_balance)); System.out.println("Press enter to continue"); try { System.in.read(); } catch (IOException e) { count ++; } if (count > 360) { //when all payments have been made. System.out.println (" Payment: " + dollars.format(new_balance + interest_paid) + " Interest: " + dollars.format(interest_paid) + " Principle: " + dollars.format(new_balance  interest_paid) + " Loan Balance is: $0.00"); } } } } [/code} Then I have this to create the array but I'm not sure where it would go or how I get the amounts into it. [code] double [] monthlyPayments = new double [3]; //declares the array int cnt = 0; for(cnt = 0; cnt < monthlyPayments.length; cnt++) { monthlyPayments[cnt]=cnt;
Need help with assigning values to an array
Page 1 of 11 Replies  844 Views  Last Post: 18 December 2009  08:11 AM
#1
Need help with assigning values to an array
Posted 18 December 2009  07:54 AM
I'm new at this and I'm having some trouble figuring out how to assign values to an array once I've figured out the values. Maybe I'm trying to do something that can't be done. I need to get the monthly payment amounts for three different mortgages. This is the code I have so far:
Replies To: Need help with assigning values to an array
#2
Re: Need help with assigning values to an array
Posted 18 December 2009  08:11 AM
girlinmorgue, on 18 Dec, 2009  06:54 AM, said:
I'm new at this and I'm having some trouble figuring out how to assign values to an array once I've figured out the values. Maybe I'm trying to do something that can't be done. I need to get the monthly payment amounts for three different mortgages. This is the code I have so far:
double [] monthlyPayments = new double [3]; //declares the array int cnt = 0; for(cnt = 0; cnt < monthlyPayments.length; cnt++) { monthlyPayments[cnt]=cnt;
I think you're almost there. You assign a value to an array by picking the index and then assigning a value of the type you specified when you declared the array (i.e. if you said it's an array of doubles, assign a double).
ex:
int[] example = new int[5];
example[0] = 42;
example[1] = 43;
System.out.println("The ultimate answer is " +example[0]);
Hence in your code:
monthlyPayments[cnt]=cnt;
Just means that monthlyPayments[0] = 0.
But what you probably want is monthly payment to be what you're calculating up top:
double monthly_payments = (Principle * Interest) /(1 Math.pow( 1 + Interest , months)); //calculates the monthly payments System.out.println("The monthly payments will be: " + dollars.format (monthly_payments)); monthlyPayments[someIndex] = monthly_payments;
Now what I can't tell you is exactly how you want to apply that loop because I'm not 100% sure what you're trying to get at. There's some logical relationship between what you're calculating and months, but you'll have to figure that out based on your goals.
However I hope the array bit was straightforward.
Page 1 of 1
