Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Ayuda con un código

Disculpen, tengo un programa para hallar el area de un poligono , pero me saca error
(java.lang.ArrayIndexOutOfBoundsException..) Les importaría ayudarme, Gracias ! :3


import java.util.Scanner;


public class Prueba {


public static void main(String[] args) {



int AreaTotal=0;


Scanner e = new Scanner(System.in);


System.out.println("#Vertices");
int n= e.nextInt();

int coor_x[] = new int[n];
int coor_y[] = new int[n];

System.out.println("Coordenadas");

for (int i = 0; i <= n; i++) {
System.out.println("x");
coor_x[i] = e.nextInt();
System.out.println("y");
coor_y[i] = e.nextInt();
}


for (int i=1; i<=n; i++){

if ( i == n){

coor_x [i+1]=coor_x[1];
coor_y [i+1]=coor_y[1];

}

int []area_triangulo = new int [i];

area_triangulo[i]= (coor_x[i+1]-coor_x[i])*(coor_y[i+1]-coor_y[i])/2;

int [] area_rectangulo= new int[i];
area_rectangulo[i]= (coor_x[i+1]-coor_x[i])*coor_y[i];

AreaTotal= AreaTotal + area_triangulo[i]+area_rectangulo[i];
}


System.out.println(AreaTotal);
}

}

enero 21, 2014 | Unregistered Commenterkn

Los arrays empiezan con un índice 0, por eso esta línea es errónea:

for (int i = 0; i <= n; i++) {

debería ser

for (int i = 0; i < n; i++) {

El último índice de un array es siempre su longitud - 1

enero 21, 2014 | Registered Commenterchoces