From d6725cdc679c6f740a58d373ecce807f31a5e778 Mon Sep 17 00:00:00 2001 From: mishail3two1 Date: Sat, 20 Sep 2025 00:18:26 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B8=D0=B4=D0=BE=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D0=BA=D0=BE=20=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9F?= =?UTF-8?q?=D1=80=D0=98-201=20=D0=91=D0=BB=D0=BE=D0=BA=204?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task01/src/com/example/task01/Point.java | 26 ++++++++ task02/src/com/example/task02/Task02Main.java | 7 +- task02/src/com/example/task02/TimeSpan.java | 66 +++++++++++++++++++ task03/src/com/example/task03/ComplexNum.java | 40 +++++++++++ task03/src/com/example/task03/Task03Main.java | 5 +- task04/src/com/example/task04/Line.java | 28 ++++++++ task04/src/com/example/task04/Point.java | 30 +++++++++ task04/src/com/example/task04/Task04Main.java | 7 +- task05/src/com/example/task05/Point.java | 21 +++--- .../src/com/example/task05/PolygonalLine.java | 20 ++++-- 10 files changed, 233 insertions(+), 17 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..d5207da0 100644 --- a/task01/src/com/example/task01/Point.java +++ b/task01/src/com/example/task01/Point.java @@ -7,6 +7,32 @@ public class Point { int x; int y; + public Point() { + x = 0; + y = 0; + } + + 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){ + double distX = Math.pow(x-point.x,2); + double distY = Math.pow(y-point.y,2); + return Math.sqrt(distY + distX); + } + + 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/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 644a0eba..cb449646 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 time1 = new TimeSpan(1,654,340); + TimeSpan time2 = new TimeSpan(0,34,1); + time1.add(time2); + System.out.println(time1.toString()); + time1.setSeconds(60); + 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..f9aa6818 --- /dev/null +++ b/task02/src/com/example/task02/TimeSpan.java @@ -0,0 +1,66 @@ +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; + correctTime(); + } + public int getHours() { + return hours; + } + + public int getMinutes() { + return minutes; + } + + public int getSeconds() { + return seconds; + } + + public void setHours(int hours) { + this.hours = hours; + correctTime(); + } + + public void setMinutes(int minutes) { + this.minutes = minutes; + correctTime(); + } + + public void setSeconds(int seconds) { + this.seconds = seconds; + correctTime(); + } + + private void correctTime() { + int totalSecond = hours * 3600 + minutes * 60 + seconds; + hours = totalSecond / 3600; + minutes = (totalSecond % 3600) / 60; + seconds = (totalSecond % 3600) % 60; + } + + void add(TimeSpan time) { + this.hours += time.hours; + this.minutes += time.minutes; + this.seconds += time.seconds; + correctTime(); + } + + void subtract(TimeSpan time) { + this.hours -= time.hours; + this.minutes -= time.minutes; + this.seconds -= time.seconds; + correctTime(); + } + + @Override + public String toString() { + return 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..8d5f2891 --- /dev/null +++ b/task03/src/com/example/task03/ComplexNum.java @@ -0,0 +1,40 @@ +package com.example.task03; + +public class ComplexNum { + private final double rePart; + private final double imPart; + + public double getImPart() { + return imPart; + } + + public double getRePart() { + return rePart; + } + + public ComplexNum(double dPart, double mPart){ + this.rePart = dPart; + this.imPart = mPart; + } + + public ComplexNum Reverse(ComplexNum num){ + return new ComplexNum(num.rePart,-num.imPart); + } + + public ComplexNum Add(ComplexNum num){ + return new ComplexNum(rePart + num.imPart, imPart + num.imPart); + } + + public ComplexNum Multiply(ComplexNum num){ + return new ComplexNum((rePart*num.rePart - imPart*num.imPart),(rePart*num.imPart + imPart*num.rePart)); + } + + @Override + public String toString(){ + if(imPart>=0){ + return rePart + "+" + imPart + "i"; + } + return rePart + "-" + imPart + "i"; + } + +} diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index ae40e6f2..0a9cf32d 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -2,6 +2,9 @@ public class Task03Main { public static void main(String[] args) { - + ComplexNum num1 = new ComplexNum(10,12); + ComplexNum num2 = new ComplexNum(2,-4); + System.out.println(num1.Multiply(num2)); + System.out.println(num1.Add(num2)); } } diff --git a/task04/src/com/example/task04/Line.java b/task04/src/com/example/task04/Line.java new file mode 100644 index 00000000..4658b632 --- /dev/null +++ b/task04/src/com/example/task04/Line.java @@ -0,0 +1,28 @@ +package com.example.task04; + +public class Line { + private Point p1; + private Point p2; + + public Line(Point p1, Point p2){ + this.p1 = p1; + this.p2 = p2; + } + + public Point getP1(){ + return p1; + } + + public Point getP2(){ + return p2; + } + + @Override + public String toString(){ + return String.format("(%d,%d),(%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..db7b6f53 --- /dev/null +++ b/task04/src/com/example/task04/Point.java @@ -0,0 +1,30 @@ +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){ + double distX = Math.pow(x-point.x,2); + double distY = Math.pow(y-point.y,2); + return Math.sqrt(distY + distX); + } + + 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..700b8000 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -2,6 +2,11 @@ public class Task04Main { public static void main(String[] args) { - + Point p1 = new Point(1,1); + Point p2 = new Point(2,2); + Line linux = new Line(p1,p2); + System.out.println(linux.isCollinearLine(new Point(3,3))); } } + + diff --git a/task05/src/com/example/task05/Point.java b/task05/src/com/example/task05/Point.java index 968ea652..bcf029d4 100644 --- a/task05/src/com/example/task05/Point.java +++ b/task05/src/com/example/task05/Point.java @@ -4,16 +4,20 @@ * Точка в двумерном пространстве */ public class Point { + final private double x; + final private double y; + public Point(double x, double y){ + this.x = x; + this.y = y; + } /** * Конструктор, инициализирующий координаты точки * * @param x координата по оси абсцисс * @param y координата по оси ординат */ - public Point(double x, double y) { - throw new AssertionError(); - } + /** * Возвращает координату точки по оси абсцисс @@ -21,8 +25,7 @@ public Point(double x, double y) { * @return координату точки по оси X */ public double getX() { - // TODO: реализовать - throw new AssertionError(); + return x; } /** @@ -31,8 +34,7 @@ public double getX() { * @return координату точки по оси Y */ public double getY() { - // TODO: реализовать - throw new AssertionError(); + return y; } /** @@ -42,8 +44,9 @@ public double getY() { * @return расстояние от текущей точки до переданной */ public double getLength(Point point) { - // TODO: реализовать - throw new AssertionError(); + double distX = Math.pow(x-point.x,2); + double distY = Math.pow(y-point.y,2); + return Math.sqrt(distY + distX); } } diff --git a/task05/src/com/example/task05/PolygonalLine.java b/task05/src/com/example/task05/PolygonalLine.java index b534bfd5..3898b35e 100644 --- a/task05/src/com/example/task05/PolygonalLine.java +++ b/task05/src/com/example/task05/PolygonalLine.java @@ -1,9 +1,12 @@ package com.example.task05; +import java.util.ArrayList; + /** * Ломаная линия */ public class PolygonalLine { + private ArrayList line = new ArrayList(); /** * Устанавливает точки ломаной линии @@ -11,7 +14,9 @@ public class PolygonalLine { * @param points массив точек, которыми нужно проинициализировать ломаную линию */ public void setPoints(Point[] points) { - // TODO: реализовать + for (Point point : points) { + addPoint(point); + } } /** @@ -20,7 +25,7 @@ public void setPoints(Point[] points) { * @param point точка, которую нужно добавить к ломаной */ public void addPoint(Point point) { - // TODO: реализовать + line.add(new Point(point.getX(), point.getY())); } /** @@ -30,7 +35,7 @@ public void addPoint(Point point) { * @param y координата по оси ординат */ public void addPoint(double x, double y) { - // TODO: реализовать + line.add(new Point(x,y)); } /** @@ -39,8 +44,13 @@ public void addPoint(double x, double y) { * @return длину ломаной линии */ public double getLength() { - // TODO: реализовать - throw new AssertionError(); + double lengthOfLine = 0; + for (int i = 0; i < line.size() - 1; i++) { + Point first = line.get(i); + Point second = line.get(i+1); + lengthOfLine += first.getLength(second); + } + return lengthOfLine; } }