Страница 1 из 1

Корень суммы квадратов трех элементов выдает ошибку

Добавлено: 18 апр 2014, 10:13
sergentum
[syntax=java] totAcc = (float) Math.sqrt(Math.abs(
(valuesAccelMotion[1]*valuesAccelMotion[1])+
(valuesAccelMotion[2]*valuesAccelMotion[2])+
(valuesAccelMotion[3]*valuesAccelMotion[3])
));[/syntax]

переводы строки просто для удобства сделал, в иде в одну строку.

java.lang.ArrayIndexOutOfBoundsException: length=3; index=3
тогда как корень суммы квадратов двух элементов работает нормально.
Проблема с третьим элементом? почему не умножается. Умножать же можно и отрицательные и положительные и нули.
Что не так?

[syntax=java]totAcc = (float) Math.sqrt(Math.abs(Math.pow(valuesAccelMotion[1],2)+Math.pow(valuesAccelMotion[2],2)+Math.pow(valuesAccelMotion[3],2)));[/syntax]
так тоже не работает.

Re: Корень суммы квадратов трех элементов выдает ошибку

Добавлено: 18 апр 2014, 11:17
klblk
кто-то пропустил урок по массивам... индексы считаются от 0. И ошибка именно об этом и говорит: "нет элемента с индексом 3".

Re: Корень суммы квадратов трех элементов выдает ошибку

Добавлено: 18 апр 2014, 11:20
Foenix
скорее всего с нуля начинать надо, а не с 1. У тебя выход за границы массива.

Re: Корень суммы квадратов трех элементов выдает ошибку

Добавлено: 18 апр 2014, 11:40
sergentum
оу, точно, спасибо всем.