Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 02.07.2015
Сообщений: 28

Написать свой класс имплементирующий интерфейс ArrayVector

22.08.2015, 06:05. Показов 3834. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите с решением, дано следующее задание:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
public interface ArrayVector {
    /**
     * Задает все элементы вектора (определяет длину вектора).
     * Передаваемый массив не клонируется.
     * @param elements Не равен null
     */
    void set(double... elements);
    /**
     * Возвращает все элементы вектора. Массив не клонируется.
     */
    double[] get();
    /**
     * Возвращает копию вектора (такую, изменение элементов 
     *  в которой не приводит к изменению элементов данного вектора).<br/>
     * Рекомендуется вызвать метод clone() у самого массива или использовать
     *   {@link System#arraycopy(Object, int, Object, int, int)}.
     */
    ArrayVector clone();
    /**
     * Возвращает число элементов вектора.
     */
    int getSize();
 
    /**
     * Изменяет элемент по индексу. 
     * @param index В случае выхода индекса за пределы массива:<br/>
     *  а) если index<0, ничего не происходит;<br/>
     *  б) если index>=0, размер массива увеличивается так, чтобы index стал последним.
     */
    void set(int index, double value);
    /**
     * Возвращает элемент по индексу.
     * @param index В случае выхода индекса за пределы массива 
     *   должно генерироваться ArrayIndexOutOfBoundsException
     */
    double get(int index) throws ArrayIndexOutOfBoundsException;
 
    /**
     * Возвращает максимальный элемент вектора.
     */
    double getMax();
    /**
     * Возвращает минимальный элемент вектора.
     */
    double getMin();
    /**
     * Сортирует элементы вектора в порядке возрастания.
     */
    void sortAscending();
 
    /**
     * Умножает вектор на число.<br/>
     * Замечание: не пытайтесь использовать безиндексный цикл foreach: 
     *  для изменения элемента массива нужно знать его индекс. 
     * @param factor
     */
    void mult(double factor);
    /**
     * Складывает вектор с другим вектором, результат запоминает в элементах данного вектора.<br/>
     * Если векторы имеют разный размер, последние элементы большего вектора не учитываются<br/>
     *  (если данный вектор - больший, его размер менять не надо, просто не меняйте последние элементы).
     * @param anotherVector Не равен null
     * @return Ссылка на себя (результат сложения)
     */
    ArrayVector sum(ArrayVector anotherVector);
    /**
     * Возвращает скалярное произведение двух векторов.<br/>
     * Если векторы имеют разный размер, последние элементы большего вектора не учитываются.
     * @param anotherVector Не равен null
     */
    double scalarMult(ArrayVector anotherVector);  
    /**
     * Возвращает евклидову норму вектора (длину вектора 
     *  в n-мерном евклидовом пространстве, n={@link #getSize()}).
     * Квадрат нормы вектора равен скалярному произведению вектора на себя.
     */
    double getNorm();
}


Вот мое решение(все что до линии точно правильно)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import java.util.Arrays;
public class ArrayVectorImpl implements ArrayVector {
    private double[] vector;
    
    @Override public ArrayVector clone() {
        ArrayVector cloneVector = new ArrayVectorImpl();
        cloneVector.set(get().clone());
        return cloneVector;
    }
    @Override public double get(int index) throws ArrayIndexOutOfBoundsException {
        if(index<0 && index>vector.length) {
            throw new ArrayIndexOutOfBoundsException();
        }
        return vector[index];
    }
    @Override public double getMax() {
        double max = vector[0];
        for(int i=0;i<vector.length;i++){
            if(vector[i]>max){
                max=vector[i];
            }
        }
        return max;
    }
    @Override public double getMin() {
        double min = vector[0];
        for(int i=0;i<vector.length;i++){
            if(vector[i]<min){
                min=vector[i];
            }
        }
        return min;
    }
    @Override public void mult(double factor) {
        for(int i=0;i<get().length;i++){
            get()[i]=get()[i]*factor;
        }
 
    }
    @Override public double getNorm() {
        double norm;
        double summ=0;
        for(int i=0;i<vector.length;i++){
            summ+=vector[i]*vector[i];
        }
        norm=Math.sqrt(summ);
        return norm;
    }
    @Override public void sortAscending() {
        double temp;
        for(int j=0;j<get().length;j++){
            for(int i=0;i<get().length-j-1;i++){
                if(get()[i]>get()[i+1]){
                    temp=get()[i];
                    get()[i]=get()[i+1];
                    get()[i+1]=temp;
 
                }
            }
        }
 
 
    }
    
    
    /////////////////////////////////////////////////////////////////////////////////////////
    @Override 
    public void set(double... elements) {
        vector=elements;
    }
    @Override
    public double[] get() {return vector;
    }
    @Override
    public int getSize() {
        return get().length;
    }
    @Override
    public void set(int index, double value) {
        if((index>0) && (index<vector.length)){
            vector[index]=value;
        }else if (index>vector.length){
            vector=Arrays.copyOf(get(),index);
         }
    }
    @Override
/**
 * Складывает вектор с другим вектором, результат запоминает в элементах данного вектора.<br/>
 * Если векторы имеют разный размер, последние элементы большего вектора не учитываются<br/>
 *  (если данный вектор - больший, его размер менять не надо, просто не меняйте последние элементы).
 * @param anotherVector Не равен null
 * @return Ссылка на себя (результат сложения)*/
    public ArrayVector sum(ArrayVector anotherVector) {
            for (int i=0;i<get().length;i++){
                anotherVector.get()[i]+=get()[i];
            }
        return anotherVector;
    }
    @Override
    public double scalarMult(ArrayVector anotherVector) {
        double result=0;
 
        if(anotherVector.get().length>vector.length) {
            for (int i = 0; i < anotherVector.get().length; i++) {
                result+=vector[i]*anotherVector.get()[i];
            }
        }else {
            if (vector.length > anotherVector.get().length) {
                for (int i = 0; i < vector.length; i++) {
                    result += vector[i] * anotherVector.get()[i];
                }
 
            }
        }
        return result;
    }
 
  
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.08.2015, 06:05
Ответы с готовыми решениями:

Возможно ли написать свой класс 2д графики?
Возможно ли написать свой класс 2д графики? Скажесм, который будет хронить х, у pixel-я, цвет pixel-я, массив растов pixel-ов и т.д. Ну и...

Написать свой класс в WCF для экспорта
Здравствуйте. Скажите пожалуйста, как можно в WCF service Application , написать свой класс (назавем MyClass) так, что бы, когда в...

Написать класс сравнения чисел, реализующий интерфейс срвнения iComparer<int>
Задача : Написать класс сравнения чисел, реализующий интерфейс сравнения iComparer&lt;int&gt;, который сортирует числа следующим образом: ...

6
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
26.08.2015, 00:33
И в чём ваш вопрос?
0
1 / 1 / 0
Регистрация: 02.07.2015
Сообщений: 28
27.08.2015, 22:08  [ТС]
В том, где ошибка в методах после строки со слешем
0
29.08.2015, 08:55

Не по теме:

что-то мне подсказывает, что до слеша было написано другим человеком

0
1 / 1 / 0
Регистрация: 02.07.2015
Сообщений: 28
31.08.2015, 23:35  [ТС]
Не знаю что или кто Вам подсказывает, но форум предполагает обмен опытом и знаниями, а не эмоциями и предчувствиями. И если Вам нечего добавить по заданию, то не нужно что-то выдумывать.
0
01.09.2015, 07:15

Не по теме:

вот именно - обмен
а что на обмен можешь предложить ты?

Цитата Сообщение от dscience Посмотреть сообщение
И если Вам нечего добавить по заданию, то не нужно что-то выдумывать.
ты указываешь другим что делать, я правильно понимаю?

0
1 / 1 / 0
Регистрация: 02.07.2015
Сообщений: 28
03.09.2015, 20:12  [ТС]
Паблито, отличную матчасть(по совершенно разным направлениям) , + data sciense
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.09.2015, 20:12
Помогаю со студенческими работами здесь

В свой div свой текст, класс один и тот же
div class=&quot;head&quot;&gt;ОДИН&lt;/div&gt; &lt;div class=&quot;body&quot;&gt;&lt;div class=&quot;cl&quot;&gt;&lt;/div&gt; &lt;script&gt; $(document).ready(function() { //Если клик...

Можно ли создать интерфейс, в котором один из методов будет возвращать класс, который реализует интерфейс
Можно ли создать интерфейс, в котором один из методов будет возвращать класс, который реализует интерфейс. Т.е. что-то вроде этого: ...

Свой интерфейс в конфигурации 1С
Доброго времени суток! Подскажите как сделать, чтобы окно при запуске конфигурации выглядело не так: а вот так: т.е. разбить...

Свой интерфейс формы
здравствуйте, расскажите или скиньте ссылку на какую-нибудь документацию о том, как делается своя оболочка формы типа steam или metroui, но...

Как переопределить класс integer в свой класс ('целочисленный')?
как переопредельть класс Int32 в свой класс ('целочисленный') я писал: class целочисленный : System.Int32{} выводит ошибку :...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru