From b570c4ea569f17b5b3c7867cb009eec7021c580c Mon Sep 17 00:00:00 2001 From: Mishbringer Date: Tue, 28 Oct 2025 16:30:00 +0500 Subject: [PATCH 1/7] task01 solved --- task01/src/com/example/task01/Point.java | 19 +++++++++++++++++++ task01/src/com/example/task01/Task01Main.java | 16 ++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/task01/src/com/example/task01/Point.java b/task01/src/com/example/task01/Point.java index ec5c69e8..64ba3b44 100644 --- a/task01/src/com/example/task01/Point.java +++ b/task01/src/com/example/task01/Point.java @@ -7,6 +7,25 @@ public class Point { int x; int y; + public Point(int x, int y) { + this.x = x; + this.y = y; + } + + void flip() { + int temp = x; + x = -y; + y = -temp; + } + + double distance(Point point) { + return Math.sqrt((point.x - x) * (point.x - x) + (point.y - y) * (point.y - y)); + } + + public String toString() { + return String.format("(%d, %d)", x, y); + } + void print() { String pointToString = String.format("(%d, %d)", x, y); System.out.println(pointToString); diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 7d71173a..b34af799 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -2,12 +2,9 @@ public class Task01Main { public static void main(String[] args) { - Point p1 = new Point(); - p1.x = 10; - p1.y = 45; - Point p2 = new Point(); - p2.x = 78; - p2.y = 12; + Point p1 = new Point(0, 3); + Point p2 = new Point(4, 0); + System.out.println("Point 1:"); p1.print(); @@ -15,5 +12,12 @@ public static void main(String[] args) { System.out.println("Point 2:"); p2.print(); System.out.println(p2); + + System.out.println(p1.distance(p2)); + + p1.flip(); + p1.print(); + + System.out.println(p1.toString()); } } From 102680d3cf3d9b6ca1f3e0a1ea2220866c8bc90b Mon Sep 17 00:00:00 2001 From: Mishbringer Date: Tue, 28 Oct 2025 16:30:41 +0500 Subject: [PATCH 2/7] task02 solved --- task02/src/com/example/task02/Task02Main.java | 4 ++ task02/src/com/example/task02/TimeSpan.java | 71 +++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 task02/src/com/example/task02/TimeSpan.java diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 644a0eba..02a70fab 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -2,6 +2,10 @@ public class Task02Main { public static void main(String[] args) { + TimeSpan test = new TimeSpan(0, 100, 0); + test.subtract(new TimeSpan(2, 0, 0)); + + System.out.println(test.toString()); } } diff --git a/task02/src/com/example/task02/TimeSpan.java b/task02/src/com/example/task02/TimeSpan.java new file mode 100644 index 00000000..ce227f0f --- /dev/null +++ b/task02/src/com/example/task02/TimeSpan.java @@ -0,0 +1,71 @@ +package com.example.task02; + +public class TimeSpan { + private int hours; + private int minutes; + private int seconds; + + public TimeSpan(int hours, int minutes, int seconds) { + this.hours = hours; + this.minutes = minutes; + this.seconds = seconds; + timeFormat(); + } + + private void timeFormat() { + if (seconds >= 60) { + minutes += seconds / 60; + seconds %= 60; + } + + if (minutes >= 60) { + hours += minutes / 60; + minutes %= 60; + } + } + + public int getHours() { + return hours; + } + public void setHours(int hours) { + this.hours = hours; + timeFormat(); + } + + public int getMinutes() { + return minutes; + } + public void setMinutes(int minutes) { + this.minutes = minutes; + timeFormat(); + } + + public int getSeconds() { + return seconds; + } + public void setSeconds(int seconds) { + this.seconds = seconds; + timeFormat(); + } + + public void add(TimeSpan time) { + seconds += time.seconds; + minutes += time.minutes; + hours += time.hours; + timeFormat(); + } + + public void subtract(TimeSpan time) { + int prog_data = hours * 3600 + minutes * 60 + seconds; + int user_data = time.hours * 3600 + time.minutes * 60 + time.seconds; + int new_time = Math.abs(user_data - prog_data); + + hours = new_time / 3600; + minutes = (new_time % 3600) / 60; + seconds = new_time % 60; + } + + public String toString() { + return String.format("%d hours, %d minutes, %d seconds", hours, minutes, seconds); + } +} From 00eb2ebfc99935c55416fa9809e3889207b4e20e Mon Sep 17 00:00:00 2001 From: Mishbringer Date: Tue, 28 Oct 2025 16:34:15 +0500 Subject: [PATCH 3/7] task03 solved --- .../src/com/example/task03/ComplexNumber.java | 38 +++++++++++++++++++ task03/src/com/example/task03/Task03Main.java | 7 ++++ 2 files changed, 45 insertions(+) create mode 100644 task03/src/com/example/task03/ComplexNumber.java diff --git a/task03/src/com/example/task03/ComplexNumber.java b/task03/src/com/example/task03/ComplexNumber.java new file mode 100644 index 00000000..87d21812 --- /dev/null +++ b/task03/src/com/example/task03/ComplexNumber.java @@ -0,0 +1,38 @@ +package com.example.task03; + +public class ComplexNumber { + private final double realPart; + private final double imgPart; + + public ComplexNumber(double realPart, double imgPart){ + this.realPart = realPart; + this.imgPart = imgPart; + } + + public double getRealPart(){ + return realPart; + } + + public double getImgPart(){ + return imgPart; + } + + public ComplexNumber sumComplexNumber(ComplexNumber complexNumber){ + double newRealPart = realPart + complexNumber.realPart; + double newImaginaryPart = imgPart + complexNumber.imgPart; + return new ComplexNumber(newRealPart, newImaginaryPart); + } + + public ComplexNumber multiplyComplexNumber(ComplexNumber complexNumber){ + double newRealPart = realPart * complexNumber.realPart - imgPart * complexNumber.imgPart; + double newImaginaryPart = realPart * complexNumber.imgPart + complexNumber.realPart * imgPart; + return new ComplexNumber(newRealPart, newImaginaryPart); + } + + public String toString(){ + if (imgPart < 0){ + return realPart + " - " + Math.abs(imgPart) + "i"; + } + return realPart + " + " + imgPart + "i"; + } +} diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index ae40e6f2..7a0ea98d 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -2,6 +2,13 @@ public class Task03Main { public static void main(String[] args) { + ComplexNumber complexNum1 = new ComplexNumber(2, 3); + ComplexNumber complexNum2 = new ComplexNumber(2, -4); + System.out.println(complexNum1); + System.out.println(complexNum2); + + System.out.println(complexNum1.sumComplexNumber(complexNum2)); + System.out.println(complexNum1.multiplyComplexNumber(complexNum2)); } } From 7c21a6352ee6aea3b6f89a7456bb4b8f0b7a3801 Mon Sep 17 00:00:00 2001 From: Mishbringer Date: Tue, 28 Oct 2025 16:55:22 +0500 Subject: [PATCH 4/7] task01 modify --- task01/src/com/example/task01/Point.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/task01/src/com/example/task01/Point.java b/task01/src/com/example/task01/Point.java index 64ba3b44..f6dc446d 100644 --- a/task01/src/com/example/task01/Point.java +++ b/task01/src/com/example/task01/Point.java @@ -27,7 +27,6 @@ public String toString() { } void print() { - String pointToString = String.format("(%d, %d)", x, y); - System.out.println(pointToString); + System.out.println(this.toString()); } } From 6382b82dc4fab832e2b8020e2cda221d79213861 Mon Sep 17 00:00:00 2001 From: Mishbringer Date: Tue, 28 Oct 2025 17:28:49 +0500 Subject: [PATCH 5/7] task04 solve --- task04/src/com/example/task04/Task04Main.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/task04/src/com/example/task04/Task04Main.java b/task04/src/com/example/task04/Task04Main.java index 55917a30..cf2ec7b8 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -2,6 +2,13 @@ public class Task04Main { public static void main(String[] args) { + Point p1 = new Point(3,2); + Point p2 = new Point(5,10); + Point p = new Point(4,6); + Line line = new Line(p1, p2); + + System.out.println(line); + System.out.println(line.isCollinearLine(p)); } } From 79a1fc84eac65e10681d91e3c42c6f4b553c4f69 Mon Sep 17 00:00:00 2001 From: Mishbringer Date: Tue, 28 Oct 2025 17:28:57 +0500 Subject: [PATCH 6/7] task04 solve --- task04/src/com/example/task04/Line.java | 26 ++++++++++++++++++++++++ task04/src/com/example/task04/Point.java | 26 ++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 task04/src/com/example/task04/Line.java create mode 100644 task04/src/com/example/task04/Point.java diff --git a/task04/src/com/example/task04/Line.java b/task04/src/com/example/task04/Line.java new file mode 100644 index 00000000..8254eda2 --- /dev/null +++ b/task04/src/com/example/task04/Line.java @@ -0,0 +1,26 @@ +package com.example.task04; + +public class Line { + private final Point p1; + private final Point p2; + + public Line(Point p1, Point p2) { + this.p1 = p1; + this.p2 = p2; + } + + public Point getP1() { + return p1; + } + public Point getP2() { + return p2; + } + + public String toString() { + return String.format("p1:(%d, %d) p2:(%d, %d)", p1.x, p1.y, p2.x, p2.y); + } + + public boolean isCollinearLine(Point p) { + return (p2.x - p1.x) * (p.y - p1.y) - (p.x - p1.x) * (p2.y - p1.y) == 0; + } +} \ No newline at end of file diff --git a/task04/src/com/example/task04/Point.java b/task04/src/com/example/task04/Point.java new file mode 100644 index 00000000..870336b7 --- /dev/null +++ b/task04/src/com/example/task04/Point.java @@ -0,0 +1,26 @@ +package com.example.task04; + +/** + * Класс точки на плоскости + */ +public class Point { + final int x; + final int y; + + public Point(int x, int y) { + this.x = x; + this.y = y; + } + + double distance(Point point) { + return Math.sqrt((point.x - x) * (point.x - x) + (point.y - y) * (point.y - y)); + } + + public String toString() { + return String.format("(%d, %d)", x, y); + } + + void print() { + System.out.println(this.toString()); + } +} From 25964e84fab85cc7a7902ff08e2217d7fac21ef0 Mon Sep 17 00:00:00 2001 From: Mishbringer Date: Tue, 28 Oct 2025 17:29:28 +0500 Subject: [PATCH 7/7] task05 solve --- task05/src/com/example/task05/Point.java | 15 +++++++-------- .../src/com/example/task05/PolygonalLine.java | 19 ++++++++++++++----- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/task05/src/com/example/task05/Point.java b/task05/src/com/example/task05/Point.java index 968ea652..d8529466 100644 --- a/task05/src/com/example/task05/Point.java +++ b/task05/src/com/example/task05/Point.java @@ -4,6 +4,8 @@ * Точка в двумерном пространстве */ public class Point { + final double x; + final double y; /** * Конструктор, инициализирующий координаты точки @@ -12,7 +14,8 @@ public class Point { * @param y координата по оси ординат */ public Point(double x, double y) { - throw new AssertionError(); + this.x = x; + this.y = y; } /** @@ -21,8 +24,7 @@ public Point(double x, double y) { * @return координату точки по оси X */ public double getX() { - // TODO: реализовать - throw new AssertionError(); + return x; } /** @@ -31,8 +33,7 @@ public double getX() { * @return координату точки по оси Y */ public double getY() { - // TODO: реализовать - throw new AssertionError(); + return y; } /** @@ -42,8 +43,6 @@ public double getY() { * @return расстояние от текущей точки до переданной */ public double getLength(Point point) { - // TODO: реализовать - throw new AssertionError(); + return Math.sqrt((point.x - x) * (point.x - x) + (point.y - y) * (point.y - y)); } - } diff --git a/task05/src/com/example/task05/PolygonalLine.java b/task05/src/com/example/task05/PolygonalLine.java index b534bfd5..45f32109 100644 --- a/task05/src/com/example/task05/PolygonalLine.java +++ b/task05/src/com/example/task05/PolygonalLine.java @@ -1,9 +1,11 @@ package com.example.task05; +import java.util.ArrayList; /** * Ломаная линия */ public class PolygonalLine { + private final ArrayList line = new ArrayList<>(); /** * Устанавливает точки ломаной линии @@ -11,7 +13,9 @@ public class PolygonalLine { * @param points массив точек, которыми нужно проинициализировать ломаную линию */ public void setPoints(Point[] points) { - // TODO: реализовать + for (Point point: points) { + addPoint(point); + } } /** @@ -20,7 +24,7 @@ public void setPoints(Point[] points) { * @param point точка, которую нужно добавить к ломаной */ public void addPoint(Point point) { - // TODO: реализовать + line.add(new Point(point.getX(), point.getY())); } /** @@ -30,7 +34,7 @@ public void addPoint(Point point) { * @param y координата по оси ординат */ public void addPoint(double x, double y) { - // TODO: реализовать + line.add(new Point(x, y)); } /** @@ -39,8 +43,13 @@ public void addPoint(double x, double y) { * @return длину ломаной линии */ public double getLength() { - // TODO: реализовать - throw new AssertionError(); + double length = 0; + for (int i = 0; i < line.size() - 1; i++) { + Point this_p = line.get(i); + Point next_p = line.get(i + 1); + length += this_p.getLength(next_p); + } + return length; } }