From 4bb551c9e3e4acc967346df5e44fea258421cb26 Mon Sep 17 00:00:00 2001 From: Knyaz-v Date: Mon, 6 Oct 2025 21:13:01 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BD=D1=8F=D0=B7=D0=B5=D0=B2=D0=B0=20?= =?UTF-8?q?=D0=92=D0=B0=D0=BB=D0=B5=D1=80=D0=B8=D1=8F=20=D0=9F=D1=80=D0=98?= =?UTF-8?q?-201=204.1-4.5?= 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 | 4 +- task02/src/com/example/task02/Task02Main.java | 5 ++ task02/src/com/example/task02/TimeSpan.java | 74 +++++++++++++++++++ .../src/com/example/task03/ComplexNumber.java | 39 ++++++++++ task03/src/com/example/task03/Task03Main.java | 7 ++ task04/src/com/example/task04/Line.java | 28 +++++++ task04/src/com/example/task04/Point.java | 15 ++++ task04/src/com/example/task04/Task04Main.java | 7 ++ task05/src/com/example/task05/Point.java | 38 ++-------- .../src/com/example/task05/PolygonalLine.java | 25 +++++-- task05/src/com/example/task05/Task05Main.java | 16 ++++ 12 files changed, 240 insertions(+), 38 deletions(-) create mode 100644 task02/src/com/example/task02/TimeSpan.java create mode 100644 task03/src/com/example/task03/ComplexNumber.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..cf82abfd 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -2,10 +2,10 @@ public class Task01Main { public static void main(String[] args) { - Point p1 = new Point(); + Point p1 = new Point(10, 45); p1.x = 10; p1.y = 45; - Point p2 = new Point(); + Point p2 = new Point(78, 12); p2.x = 78; p2.y = 12; diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 644a0eba..d755b482 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -2,6 +2,11 @@ public class Task02Main { public static void main(String[] args) { + TimeSpan time = new TimeSpan(0,71,80); + System.out.println(time.getSeconds()); + System.out.println(time.getMinutes()); + System.out.println(time.getHours()); + System.out.println(time.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..a54981a9 --- /dev/null +++ b/task02/src/com/example/task02/TimeSpan.java @@ -0,0 +1,74 @@ +package com.example.task02; + +public class TimeSpan { + private int hours; + private int minutes; + private int seconds; + + 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 TimeSpan(int hours, int minutes, int seconds){ + this.hours = hours; + this.minutes = minutes; + this.seconds = seconds; + + timeConvert(); + } + + public void timeConvert(){ + while (seconds >= 60) { + minutes += 1; + seconds -= 60; + } + + while (minutes >= 60){ + hours += 1; + minutes -= 60; + } + } + + void add(TimeSpan time){ + hours += time.hours; + minutes += time.minutes; + seconds += time.seconds; + + timeConvert(); + } + + void subtract(TimeSpan time){ + hours -= time.hours; + minutes -= time.minutes; + seconds -= time.seconds; + + timeConvert(); + } + + public String toString(){ + return String.format("%d:%d:%d", hours, minutes, seconds); + } +} diff --git a/task03/src/com/example/task03/ComplexNumber.java b/task03/src/com/example/task03/ComplexNumber.java new file mode 100644 index 00000000..e195f1f1 --- /dev/null +++ b/task03/src/com/example/task03/ComplexNumber.java @@ -0,0 +1,39 @@ +package com.example.task03; + +public class ComplexNumber { + final private double realPart; + final private double imaginaryPart; + + public double getRealPart(){ + return realPart; + } + + public double getImaginaryPart(){ + return imaginaryPart; + } + + public ComplexNumber(double realPart, double imaginaryPart){ + this.realPart = realPart; + this.imaginaryPart = imaginaryPart; + } + + public ComplexNumber sumComplexNum(ComplexNumber complexNum){ + double newRealPart = realPart + complexNum.realPart; + double newImaginaryPart = imaginaryPart + complexNum.imaginaryPart; + return new ComplexNumber(newRealPart, newImaginaryPart); + } + + public ComplexNumber multiplyComplexNum(ComplexNumber complexNum){ + double newRealPart = realPart * complexNum.realPart - imaginaryPart * complexNum.imaginaryPart; + double newImaginaryPart = realPart * complexNum.imaginaryPart + complexNum.realPart * imaginaryPart; + return new ComplexNumber(newRealPart, newImaginaryPart); + } + + public String toString(){ + if (imaginaryPart < 0){ + return realPart + " - " + (-imaginaryPart) + "i"; + } + + return realPart + " + " + imaginaryPart + "i"; + } +} diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index ae40e6f2..fff60661 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(1, 3); + ComplexNumber complexNum2 = new ComplexNumber(1, -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..501a86e1 --- /dev/null +++ b/task04/src/com/example/task04/Line.java @@ -0,0 +1,28 @@ +package com.example.task04; + +public class Line { + final private Point p1; + final private Point p2; + + + public Point getP1(){ + return p1; + } + + public Point getP2(){ + return p2; + } + + public Line(Point p1, Point p2){ + this.p1 = p1; + this.p2 = p2; + } + + public String toString(){ + return "A" + p1 + " |--------------| " + "B" + p2; + } + + 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..e7b89acc --- /dev/null +++ b/task04/src/com/example/task04/Point.java @@ -0,0 +1,15 @@ +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; + } + + public String toString(){ + return String.format("(%d,%d)", x, y); + } +} \ No newline at end of file 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..024fc0b8 100644 --- a/task05/src/com/example/task05/Point.java +++ b/task05/src/com/example/task05/Point.java @@ -4,46 +4,24 @@ * Точка в двумерном пространстве */ public class Point { + final double x; + final double y; - /** - * Конструктор, инициализирующий координаты точки - * - * @param x координата по оси абсцисс - * @param y координата по оси ординат - */ public Point(double x, double y) { - throw new AssertionError(); + this.x = x; + this.y = y; } - /** - * Возвращает координату точки по оси абсцисс - * - * @return координату точки по оси X - */ 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((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..29069292 100644 --- a/task05/src/com/example/task05/PolygonalLine.java +++ b/task05/src/com/example/task05/PolygonalLine.java @@ -1,9 +1,13 @@ package com.example.task05; +import java.util.ArrayList; +import java.util.List; + /** * Ломаная линия */ public class PolygonalLine { + private ArrayList points = new ArrayList(); /** * Устанавливает точки ломаной линии @@ -11,7 +15,9 @@ public class PolygonalLine { * @param points массив точек, которыми нужно проинициализировать ломаную линию */ public void setPoints(Point[] points) { - // TODO: реализовать + for (Point p: points){ + addPoint(p); + } } /** @@ -20,7 +26,7 @@ public void setPoints(Point[] points) { * @param point точка, которую нужно добавить к ломаной */ public void addPoint(Point point) { - // TODO: реализовать + points.add(new Point(point.x, point.y)); } /** @@ -30,7 +36,7 @@ public void addPoint(Point point) { * @param y координата по оси ординат */ public void addPoint(double x, double y) { - // TODO: реализовать + points.add(new Point(x,y)); } /** @@ -39,8 +45,15 @@ public void addPoint(double x, double y) { * @return длину ломаной линии */ public double getLength() { - // TODO: реализовать - throw new AssertionError(); - } + double sumDistance = 0; + + for (int i = 1; i < points.size(); i++){ + Point p1 = points.get(i-1); + Point p2 = points.get(i); + sumDistance += p1.getLength(p2); + } + + return sumDistance; + } } diff --git a/task05/src/com/example/task05/Task05Main.java b/task05/src/com/example/task05/Task05Main.java index 4f745fb6..aa56feaa 100644 --- a/task05/src/com/example/task05/Task05Main.java +++ b/task05/src/com/example/task05/Task05Main.java @@ -2,6 +2,22 @@ public class Task05Main { public static void main(String[] args) { + Point[] points = { + new Point(1,3), + new Point(2,4), + new Point(3,5) + }; + PolygonalLine line = new PolygonalLine(); + + line.setPoints(points); + + double sum = line.getLength(); + System.out.println(sum); + System.out.println(line); + line.addPoint(new Point(4,6)); + System.out.println(line); + line.addPoint(5,7); + System.out.println(line); } }