Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Java: Lainalaskuri

koodaaja [24.10.2021 23:11:42]

#

On olemassa karkeasti ottaen kolme eri tyyppistä lainaa, kun luokitellaan takaisinmaksuerien laskemista. Tasalyhennys, tasaerä -ja annuiteettilaina. Tasaerä -ja annuiteettilainan ero on se pyyskö maksueräsamana koron muuttuessa.

Tiedot asennetaan taulukkoon. Ensimmäiseen alkioon laitetaan lyhennykset ja toiseen laitetaan korot. Lainan laskemiseen tarvitaan koron (ja annuiteettilainan kaava).

Tämän vuoden aikana en lähetä uusia vinkkejä.

import java.util.Scanner;


public class Laina {

 //Karkeasti ottaen on olemassa tasalyhennys ja annuiteetti/tasaerälaina.
 static public double[][] LaskeSummat(double laina, double vuosi, int kuukaudet, int tyyppi){
  double tulos[][] =new double[2][kuukaudet];

  double maksuEra = 0.0;
  double lyhennys = 0.0;
  double koronMaara = 0.0;


  if (tyyppi == 1){
   //Lasketaan annuiteetti.
   maksuEra = (Math.pow(1+(vuosi/12.0/100.0),kuukaudet))*(vuosi/12.0/100.0)*laina;
   maksuEra /= (Math.pow(1+(vuosi/12.0/100.0),kuukaudet)-1);

  }
  else if (tyyppi == 2){
  //Lasketaan lyhennys.
   lyhennys = laina/kuukaudet;
  }
  int i = 0;
  //Lasketaan korkojen (ja lyhennysten summa)
  while (laina > 0.01){
   koronMaara = laina*(vuosi/12.0/100.0);
   if (tyyppi == 1){
    lyhennys= maksuEra-koronMaara;
   }
   tulos[0][i] = lyhennys;
   tulos[1][i] = koronMaara;
   i++;
   laina -= lyhennys;

  }


  return tulos;
 }

 public static void main(String[] args){

  Scanner syote = new Scanner(System.in);

  double vuosiKorko = 0.0;
  double laina = 0.0;
  int kuukaudet = 0;
  int tyyppi = 0;

  //Annetaan lähtötiedot.
  System.out.println("Syötä lainan määrä:");
  laina = syote.nextDouble();
  System.out.println("Syötä maksukuukausien määrä.");
  kuukaudet = syote.nextInt();

  System.out.println("Syötä vuosikoron määrä.");
  vuosiKorko = syote.nextDouble();

  System.out.println("Anna lainan tyyppi");
  System.out.println("1) Annuiteetti");
  System.out.println("2) Tasalyhennyslaina");
  tyyppi = syote.nextInt();
  //Lasketaan funktion kautta lainan korot ja lyhennykset
  double tulos[][]= LaskeSummat(laina,vuosiKorko, kuukaudet, tyyppi);

  //Näytetään lyhennykset ja koronmäärät.
  for (int i = 0; i< tulos[0].length; i++){
   System.out.println("Erä:" + (i+1));
   System.out.println("Lyhennys:" + Math.round(tulos[0][i]*100)/100.0);
   System.out.println("Koron määrä:" + Math.round(tulos[1][i]*100)/100.0);
   System.out.println("");
  }


 }



}

Vastaus

Muista lukea kirjoitusohjeet.
Tietoa sivustosta