package bmi;
import java.util.Scanner;
public class KSZ {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Jaka to firma (wpisz) jednoosobowa lub wieloosobowa: ");
String firma = input.next();
switch(firma){
case "jednoosobowa":
System.out.print("Podaj wartość nadwyżek finansowych: \n");
System.out.print("W ilu latach?: ");
int n = input.nextInt();
float [] NF = new float[n];
for (int i = 0; i < n; i++) {
System.out.print(" Rok "+i+" ");
NF[i] = input.nextFloat();
}
for (int i = 0; i < n; i++) {
System.out.print(NF[i]+" ");
}
System.out.println();
float [] NI = new float[n];
System.out.print("Podaj wartość nakładu inwestycyjnego: ");
NI[0] = input.nextFloat();
//---------- Księgowa stopa zwrotu z amortyzacją liniową
//float NI1, NI2, NI3, NI4, NI5;
//float A1, A2, A3, A4, A5;
//float Zn1, Zn2, Zn3, Zn4, Zn5;
//Obliczenie amortyzacji liniowej
float [] A = new float[n];
for (int i = 0; i < n; i++) {
A[i]=NI[0]/n;
}
for (int i = 0; i < n; i++) {
System.out.print(A[i]+" ");
}
System.out.println();
// A1 = NI/n;
// A2 = NI/n;
// A3 = NI/n;
// A4 = NI/n;
// A5 = NI/n;
float [] Zn = new float[n];
for (int i = 0; i < n; i++) {
Zn[i]=NF[i] - A[i];
}
for (int i = 0; i < n; i++) {
System.out.print(Zn[i]+" ");
}
System.out.println();
//Zn1 = NF[1] - A[1];
//Zn2 = NF[2] - A[2];
//Zn3 = NF[3] - A[3];
//Zn4 = NF[4] - A[4];
//Zn5 = NF[5] - A[5];
//float [] NII = new float[n];
for (int i = 0; i < n; i++) {
NI[i+1]=NI[i] - A[i+1];
}
for (int i = 0; i < n; i++) {
System.out.print(NI[i]+" ");
}
System.out.println();
//NI1 = NI - A[1];
//NI2 = NI1 - A[2];
//NI3 = NI2 - A[3];
//NI4 = NI3 - A[4];
//NI5 = NI4 - A[5];
float licznik = 0;
for (int i=0; i<n; i++) {
licznik += Zn[i];
}
float mianownik = 0;
for (int i=0; i<n; i++) {
mianownik += NI[i];
}
float zysknetto = licznik/n ;
float nakładyinwestycyjne = (NI[0]+mianownik)/n+1;
float KSZ1 = (zysknetto / nakładyinwestycyjne)*100;
System.out.print(KSZ1);
break;
case "wieloosobowa":
System.out.print("Wieloosobowa");
break;
default:
System.out.println("Nie rozpoznaje amortyzacji");
break;
}
input.close();
}
}
Taki błąd wyskakuje:
Exception in thread "main"
java.lang.ArrayIndexOutOfBoundsException: 5
at bmi.KSZ.main(KSZ.java:67)
Moim zdaniem w lini 67 jest za ilość wartości w tabeli
A w przypadku napisaniu tego typu :
for (int i = 0; i < n+1; i++) {
NI[i+1]=NI[i] - A[i+1];
}
Też jest błąd :(