Видеолекция по синтаксису Java.
Поэтапное построение класса, представляющего вектор в n-мерном пространстве.
Реализуемые методы:
-double getLength() - возвращает длину вектора
-String toString() - выводит информацию об экземпляре класса
-void mult(double a) - умножает вектор на a
-void divide(double a) - делит вектор на a
-Vector summ(Vector b) - прибавляет к текущему вектору вектор b и возвращает результирующий
-Vector minus(Vector b) - аналогично последнему, только выполняет вычитание
Часть 1
Часть 2 Часть 3 Часть 4 Часть 5
Пояснения к коду находятся в видеолекции Сначала нужно написать класс, реализующий точку в n-мерном пространстве:
Поэтапное построение класса, представляющего вектор в n-мерном пространстве.
Реализуемые методы:
-double getLength() - возвращает длину вектора
-String toString() - выводит информацию об экземпляре класса
-void mult(double a) - умножает вектор на a
-void divide(double a) - делит вектор на a
-Vector summ(Vector b) - прибавляет к текущему вектору вектор b и возвращает результирующий
-Vector minus(Vector b) - аналогично последнему, только выполняет вычитание
Часть 1
Часть 2 Часть 3 Часть 4 Часть 5
public class Point { public static final int MAX_DIMENTIONS=100; private int dimentions; private double[] coordinates=new double[MAX_DIMENTIONS]; public Point(int dims, double[] coordinates) { dimentions=dims; for (int i=0;i<dims;i++) { this.coordinates[i]=coordinates[i]; } } public double getCoordinate(int index) { return coordinates[index]; } public void setCoordinate(int index, double value) { coordinates[index]=value; } public String toString() { String res="("; for (int i=0;i<dimentions;i++) { res+=" "+getCoordinate(i)+" "; if(i!=dimentions-1) { res+=";"; } } res+=")"; return res; } }Класс Vector:
public class Vector { private Point begin; private Point end; private int dimentions; public Vector(int dims, double[] coordinatesOfBegin, double[] coordinatesOfEnd) { begin=new Point(dims, coordinatesOfBegin); end=new Point(dims, coordinatesOfEnd); dimentions=dims; } public double getLength() { double summ=0; for (int i=0;i<dimentions;i++) { summ+=(end.getCoordinate(i)-begin.getCoordinate(i))*(end.getCoordinate(i)-begin.getCoordinate(i)); } summ=Math.sqrt(summ); return summ; } public void mult(double a) { for (int i=0;i<dimentions;i++) { double newValue=begin.getCoordinate(i)+a*(end.getCoordinate(i)-begin.getCoordinate(i)); end.setCoordinate(i, newValue); } } public void divide(double a) { mult(1/a); } public String toString() { String res=begin.toString()+" "+end.toString(); return res; } public Vector summ(Vector b) { double[] beginCoordinates=new double[Point.MAX_DIMENTIONS]; double[] endCoordinates=new double[Point.MAX_DIMENTIONS]; Vector res=new Vector(dimentions, beginCoordinates, endCoordinates); for (int i=0;i<dimentions;i++) { res.begin.setCoordinate(i, this.begin.getCoordinate(i)); res.end.setCoordinate(i, this.end.getCoordinate(i)+b.end.getCoordinate(i)-b.begin.getCoordinate(i)); } return res; } public Vector minus(Vector b) { b.mult(-1); return this.summ(b); } }
Комментариев нет:
Отправить комментарий