diff --git a/task01/src/com/example/task01/Point.java b/task01/src/com/example/task01/Point.java index ec5c69e8..4c2f4aa2 100644 --- a/task01/src/com/example/task01/Point.java +++ b/task01/src/com/example/task01/Point.java @@ -7,8 +7,34 @@ public class Point { int x; int y; + void flip(){ + x *= (-1); + y *= (-1); + //по заданию нужно ещё их поменять местами, но этого не нужно ибо точка уже развёрнута на 180 + // но без этого не засчитывается тест + int swap = x; + x = y; + y = swap; + } + double distance(Point point){ + return Math.sqrt(Math.pow(Math.abs(x - point.x), 2) + Math.pow(Math.abs(y - point.y), 2)); + } + void print() { String pointToString = String.format("(%d, %d)", x, y); System.out.println(pointToString); } + public String toString() { + String pointToString = String.format("(%d, %d)", x, y); + return pointToString; + } + + public Point(){ + this.x = 0; + this.y = 0; + } + public Point(int x, int y){ + this.x = x; + this.y = y; + } } diff --git a/task02/src/com/example/task02/TimeSpan.java b/task02/src/com/example/task02/TimeSpan.java new file mode 100644 index 00000000..cbc02192 --- /dev/null +++ b/task02/src/com/example/task02/TimeSpan.java @@ -0,0 +1,72 @@ +package com.example.task02; + +public class TimeSpan { + private int hour; + public void setHour(int hour){ + this.hour = hour; + } + public int getHour(){ + return hour; + } + + private int minute; + public void setMinute(int minute){ + this.minute = minute % 60; + hour += minute / 60; + } + public int getMinute(){ + return minute; + } + + private int second; + public void setSecond(int second){ + this.second = second % 60; + minute += (second / 60) % 60; + hour += second / 3600; + } + public int getSecond(){ + return second; + } + + private void timeToSecond(){ + second += hour * 3600 + minute * 60; + minute = 0; + hour = 0; + } + private void secondToTime(){ + second %= 60; + minute += (second / 60) % 60; + hour += second / 3600; + } + void add(TimeSpan time){ + /* + second += time.second; + minute += time.minute + second / 60; + hour += time.hour + minute / 60; + second %= 60; + minute %=60; + */ + setHour(time.hour); + setMinute(time.minute); + setSecond(time.second); + } + void subtract(TimeSpan time){ + timeToSecond(); + time.timeToSecond(); + second -= time.second; + secondToTime(); + } + + public TimeSpan(int hour, int minute, int second) { + this.hour = 0; + this.minute = 0; + this.second = 0; + setHour(hour); + setMinute(minute); + setSecond(second); + } + public String toString(){ + String timeToString = String.format("(%d, %d, %d)", hour, minute, second); + return timeToString; + } +} diff --git a/task03/src/com/example/task03/ComplexNumber.java b/task03/src/com/example/task03/ComplexNumber.java new file mode 100644 index 00000000..d38fc866 --- /dev/null +++ b/task03/src/com/example/task03/ComplexNumber.java @@ -0,0 +1,40 @@ +package com.example.task03; + +public class ComplexNumber { + private double realPart; //a + private double imaginaryPart; // b + + public void setRealPart(double realPart){ + this.realPart = realPart; + } + public double getRealPart(){ + return realPart; + } + + public void setImaginaryPart(double imaginaryPart){ + this.imaginaryPart = imaginaryPart; + } + public double getImaginaryPart() { + return imaginaryPart; + } + public ComplexNumber(){ + this(0,0); + } + + public ComplexNumber sumComplexNumbers(ComplexNumber number){ + return new ComplexNumber(realPart + number.realPart, imaginaryPart + number.imaginaryPart); + } + public ComplexNumber multiplyComplexNumbers(ComplexNumber number){ + return new ComplexNumber(realPart * number.realPart - imaginaryPart * number.imaginaryPart, + imaginaryPart * number.realPart + realPart * number.imaginaryPart); + } + + public ComplexNumber(double realPart, double imaginaryPart){ + this.realPart = realPart; + this.imaginaryPart = imaginaryPart; + } + public String toString(){ + String numberToString = String.format("(%f; %f)", realPart, imaginaryPart); + return numberToString; + } +} diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index ae40e6f2..da170745 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -2,6 +2,11 @@ public class Task03Main { public static void main(String[] args) { - + ComplexNumber first = new ComplexNumber(4.5, 8.2); + ComplexNumber second = new ComplexNumber(2, 6); + ComplexNumber sum = first.sumComplexNumbers(second); + ComplexNumber mul = first.multiplyComplexNumbers(second); + System.out.println(sum.toString()); + System.out.println(mul.toString()); } } diff --git a/task04/src/com/example/task04/Line.java b/task04/src/com/example/task04/Line.java new file mode 100644 index 00000000..25360447 --- /dev/null +++ b/task04/src/com/example/task04/Line.java @@ -0,0 +1,24 @@ +package com.example.task04; + +public class Line { + private Point p1; + public Point getP1(){ + return p1; + } + private Point p2; + public Point getP2(){ + return p2; + } + public boolean isCollinearLine(Point p){ + double angleOfInclination = Math.atan((double) Math.abs(p1.y - p2.y) / Math.abs(p1.x - p2.x)); + double angleOfInclinationP = Math.atan((double) Math.abs(p.y - p2.y) / Math.abs(p.x - p2.x)); + return angleOfInclination == angleOfInclination; + } + public Line(Point p1, Point p2){ + this.p1 = p1; + this.p2 = p2; + } + public String toString(){ + return new String(p1.toString() + p2.toString()); + } +} diff --git a/task04/src/com/example/task04/Point.java b/task04/src/com/example/task04/Point.java new file mode 100644 index 00000000..9ce6e189 --- /dev/null +++ b/task04/src/com/example/task04/Point.java @@ -0,0 +1,31 @@ +package com.example.task04; + +/** + * Класс точки на плоскости + */ +public class Point { + public final int x; + public final int y; + + double distance(Point point){ + return Math.sqrt(Math.pow(Math.abs(x - point.x), 2) + Math.pow(Math.abs(y - point.y), 2)); + } + + void print() { + String pointToString = String.format("(%d, %d)", x, y); + System.out.println(pointToString); + } + public String toString() { + String pointToString = String.format("(%d, %d)", x, y); + return pointToString; + } + + public Point(){ + this.x = 0; + this.y = 0; + } + public Point(int x, int y){ + this.x = x; + this.y = y; + } +} diff --git a/task05/src/com/example/task05/Point.java b/task05/src/com/example/task05/Point.java index 968ea652..f445544c 100644 --- a/task05/src/com/example/task05/Point.java +++ b/task05/src/com/example/task05/Point.java @@ -5,45 +5,28 @@ */ public class Point { - /** - * Конструктор, инициализирующий координаты точки - * - * @param x координата по оси абсцисс - * @param y координата по оси ординат - */ - public Point(double x, double y) { - throw new AssertionError(); - } + private double x; + private double y; - /** - * Возвращает координату точки по оси абсцисс - * - * @return координату точки по оси X - */ + public void setX(double x){ + this.x = x; + } + public void setY(double y){ + this.y = y; + } public double getX() { - // TODO: реализовать - throw new AssertionError(); + return x; } - - /** - * Возвращает координату точки по оси ординат - * - * @return координату точки по оси Y - */ public double getY() { - // TODO: реализовать - throw new AssertionError(); + return y; } - /** - * Подсчитывает расстояние от текущей точки до точки, переданной в качестве параметра - * - * @param point вторая точка отрезка - * @return расстояние от текущей точки до переданной - */ public double getLength(Point point) { - // TODO: реализовать - throw new AssertionError(); + return Math.sqrt(Math.pow(Math.abs(x - point.x), 2) + Math.pow(Math.abs(y - point.y), 2)); } + public Point(double x, double y) { + this.x = x; + this.y = y; + } } diff --git a/task05/src/com/example/task05/PolygonalLine.java b/task05/src/com/example/task05/PolygonalLine.java index b534bfd5..22263d86 100644 --- a/task05/src/com/example/task05/PolygonalLine.java +++ b/task05/src/com/example/task05/PolygonalLine.java @@ -1,46 +1,42 @@ package com.example.task05; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * Ломаная линия */ public class PolygonalLine { + private ArrayList listPoint; - /** - * Устанавливает точки ломаной линии - * - * @param points массив точек, которыми нужно проинициализировать ломаную линию - */ public void setPoints(Point[] points) { - // TODO: реализовать + for (Point point : points) { + addPoint(point); + } } - /** - * Добавляет точку к ломаной линии - * - * @param point точка, которую нужно добавить к ломаной - */ public void addPoint(Point point) { - // TODO: реализовать + listPoint.add(new Point(point.getX(), point.getY())); } - /** - * Добавляет точку к ломаной линии - * - * @param x координата по оси абсцисс - * @param y координата по оси ординат - */ public void addPoint(double x, double y) { - // TODO: реализовать + listPoint.add(new Point(x, y)); } - /** - * Возвращает длину ломаной линии - * - * @return длину ломаной линии - */ public double getLength() { - // TODO: реализовать - throw new AssertionError(); + double sumLength = 0; + for(int i = 0; i < listPoint.toArray().length - 1; i++){ + sumLength += listPoint.get(i).getLength(listPoint.get(i + 1)); + } + return sumLength; } + public PolygonalLine(){ + listPoint = new ArrayList<>(); + } + public PolygonalLine(Point[] points){ + listPoint = new ArrayList<>(); + setPoints(points); + } }