From 64e08a1b1306bf1d8fe1d6d1a1ac6cf5d1674914 Mon Sep 17 00:00:00 2001 From: bychevskaya Date: Tue, 28 Oct 2025 03:26:00 +0500 Subject: [PATCH] =?UTF-8?q?=D0=91=D1=8B=D1=87=D0=B5=D0=B2=D1=81=D0=BA?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=98=D1=80=D0=B8=D0=BD=D0=B0=20=D0=9F=D1=80?= =?UTF-8?q?=D0=98-201.=20=D0=9C=D0=BE=D0=B4=D1=83=D0=BB=D1=8C=204?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task01/src/com/example/task01/Point.java | 20 +++++ task01/src/com/example/task01/Task01Main.java | 9 +-- task02/src/com/example/task02/Task02Main.java | 9 ++- task02/src/com/example/task02/TimeSpan.java | 78 +++++++++++++++++++ task03/src/com/example/task03/ComplexNum.java | 40 ++++++++++ task03/src/com/example/task03/Task03Main.java | 8 ++ task04/src/com/example/task04/Line.java | 27 +++++++ task04/src/com/example/task04/Point.java | 25 ++++++ task04/src/com/example/task04/Task04Main.java | 7 ++ task05/src/com/example/task05/Point.java | 15 ++-- .../src/com/example/task05/PolygonalLine.java | 20 +++-- task05/src/com/example/task05/Task05Main.java | 11 +++ 12 files changed, 248 insertions(+), 21 deletions(-) create mode 100644 task02/src/com/example/task02/TimeSpan.java create mode 100644 task03/src/com/example/task03/ComplexNum.java create mode 100644 task04/src/com/example/task04/Line.java create mode 100644 task04/src/com/example/task04/Point.java diff --git a/task01/src/com/example/task01/Point.java b/task01/src/com/example/task01/Point.java index ec5c69e8..64082050 100644 --- a/task01/src/com/example/task01/Point.java +++ b/task01/src/com/example/task01/Point.java @@ -7,6 +7,26 @@ 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(Math.pow((point.x - x),2) + + Math.pow((point.y - y),2)); + } + + 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..b4720a46 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(10, 45); + Point p2 = new Point(78, 12); + System.out.println("Point 1:"); p1.print(); diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 644a0eba..02ab318e 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -2,6 +2,13 @@ public class Task02Main { public static void main(String[] args) { - + TimeSpan time1 = new TimeSpan(3, 30, 60); + System.out.println(time1.toString()); + TimeSpan time2 = new TimeSpan(1, 45, 0); + System.out.println(time2.toString()); + time1.subtract(time2); + System.out.println(time1.toString()); + time1.setSeconds(59); + System.out.println(time1.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..067b25d6 --- /dev/null +++ b/task02/src/com/example/task02/TimeSpan.java @@ -0,0 +1,78 @@ +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; + + timeConvert(); + } + + public int getHours(){ + return hours; + } + + public void setHours(int hours){ + this.hours = hours; + timeConvert(); + } + + public int getMinutes(){ + return minutes; + } + + public void setMinutes(int minutes){ + this.minutes = minutes; + timeConvert(); + } + + public int getSeconds(){ + return seconds; + } + + public void setSeconds(int seconds){ + this.seconds = seconds; + timeConvert(); + } + + public void timeConvert(){ + if (seconds >= 60) { + minutes += seconds / 60; + seconds %= 60; + } + + if (minutes >= 60) { + hours += minutes / 60; + minutes %= 60; + } + } + + void add(TimeSpan time){ + hours += time.hours; + minutes += time.minutes; + seconds += time.seconds; + + timeConvert(); + } + + void subtract(TimeSpan time) { + int totalSecondsThis = hours * 3600 + minutes * 60 + seconds; + int totalSecondsOther = time.hours * 3600 + time.minutes * 60 + time.seconds; + + int sub = Math.abs(totalSecondsThis - totalSecondsOther); + + hours = sub / 3600; + minutes = (sub % 3600) / 60; + seconds = sub % 60; + } + + public String toString(){ + return String.format("%d:%d:%d", hours, minutes, seconds); + } +} + diff --git a/task03/src/com/example/task03/ComplexNum.java b/task03/src/com/example/task03/ComplexNum.java new file mode 100644 index 00000000..4d5d1070 --- /dev/null +++ b/task03/src/com/example/task03/ComplexNum.java @@ -0,0 +1,40 @@ +package com.example.task03; + +public class ComplexNum { + private final double realPart; + private final double imgPart; + + public ComplexNum(double realPart, double imgPart){ + this.realPart = realPart; + this.imgPart = imgPart; + } + + public double getRealPart(){ + return realPart; + } + + public double getImgPart(){ + return imgPart; + } + + public ComplexNum sumComplexNum(ComplexNum complexNum){ + double newRealPart = realPart + complexNum.realPart; + double newImaginaryPart = imgPart + complexNum.imgPart; + return new ComplexNum(newRealPart, newImaginaryPart); + } + + public ComplexNum multiplyComplexNum(ComplexNum complexNum){ + double newRealPart = realPart * complexNum.realPart - imgPart * complexNum.imgPart; + double newImaginaryPart = realPart * complexNum.imgPart + complexNum.realPart * imgPart; + return new ComplexNum(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..ffed104d 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -2,6 +2,14 @@ public class Task03Main { public static void main(String[] args) { + ComplexNum complexNum1 = new ComplexNum(2, 3); + ComplexNum complexNum2 = new ComplexNum(2, -4); + System.out.println(complexNum1); + System.out.println(complexNum2); + + System.out.println(complexNum1.sumComplexNum(complexNum2)); + System.out.println(complexNum1.multiplyComplexNum(complexNum2)); } } + diff --git a/task04/src/com/example/task04/Line.java b/task04/src/com/example/task04/Line.java new file mode 100644 index 00000000..71ca8f24 --- /dev/null +++ b/task04/src/com/example/task04/Line.java @@ -0,0 +1,27 @@ +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("from (%d, %d) to (%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; + } +} diff --git a/task04/src/com/example/task04/Point.java b/task04/src/com/example/task04/Point.java new file mode 100644 index 00000000..0539e5a6 --- /dev/null +++ b/task04/src/com/example/task04/Point.java @@ -0,0 +1,25 @@ +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(Math.pow((point.x - x),2) + + Math.pow((point.y - y),2)); + } + + 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/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)); } } diff --git a/task05/src/com/example/task05/Point.java b/task05/src/com/example/task05/Point.java index 968ea652..c7c662ec 100644 --- a/task05/src/com/example/task05/Point.java +++ b/task05/src/com/example/task05/Point.java @@ -4,7 +4,8 @@ * Точка в двумерном пространстве */ public class Point { - + final double x; + final double y; /** * Конструктор, инициализирующий координаты точки * @@ -12,7 +13,8 @@ public class Point { * @param y координата по оси ординат */ public Point(double x, double y) { - throw new AssertionError(); + this.x = x; + this.y = y; } /** @@ -21,8 +23,7 @@ public Point(double x, double y) { * @return координату точки по оси X */ public double getX() { - // TODO: реализовать - throw new AssertionError(); + return x; } /** @@ -31,8 +32,7 @@ public double getX() { * @return координату точки по оси Y */ public double getY() { - // TODO: реализовать - throw new AssertionError(); + return y; } /** @@ -42,8 +42,7 @@ public double getY() { * @return расстояние от текущей точки до переданной */ public double getLength(Point point) { - // TODO: реализовать - throw new AssertionError(); + return Math.sqrt(Math.pow((point.x - x),2) + Math.pow((point.y - y),2)); } } diff --git a/task05/src/com/example/task05/PolygonalLine.java b/task05/src/com/example/task05/PolygonalLine.java index b534bfd5..17921063 100644 --- a/task05/src/com/example/task05/PolygonalLine.java +++ b/task05/src/com/example/task05/PolygonalLine.java @@ -1,17 +1,20 @@ package com.example.task05; +import java.util.ArrayList; /** * Ломаная линия */ public class PolygonalLine { - + private ArrayList line = new ArrayList(); /** * Устанавливает точки ломаной линии * * @param points массив точек, которыми нужно проинициализировать ломаную линию */ public void setPoints(Point[] points) { - // TODO: реализовать + for (Point point: points){ + addPoint(point); + } } /** @@ -20,7 +23,7 @@ public void setPoints(Point[] points) { * @param point точка, которую нужно добавить к ломаной */ public void addPoint(Point point) { - // TODO: реализовать + line.add(new Point(point.getX(), point.getY())); } /** @@ -30,7 +33,7 @@ public void addPoint(Point point) { * @param y координата по оси ординат */ public void addPoint(double x, double y) { - // TODO: реализовать + line.add(new Point(x, y)); } /** @@ -39,8 +42,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 point1 = line.get(i); + Point point2 = line.get(i + 1); + length += point1.getLength(point2); + } + return length; } } diff --git a/task05/src/com/example/task05/Task05Main.java b/task05/src/com/example/task05/Task05Main.java index 4f745fb6..5421f48d 100644 --- a/task05/src/com/example/task05/Task05Main.java +++ b/task05/src/com/example/task05/Task05Main.java @@ -2,6 +2,17 @@ public class Task05Main { public static void main(String[] args) { + Point[] points = { + new Point(1,4), + new Point(2,3), + new Point(3,5) + }; + PolygonalLine line = new PolygonalLine(); + line.setPoints(points); + + System.out.println(line.getLength()); + line.addPoint(new Point(4,6)); + System.out.println(line.getLength()); } }