From d1acf6cbcbe1f649a2ffcece1316e3c2e853a3e4 Mon Sep 17 00:00:00 2001 From: gooseFn Date: Fri, 19 Sep 2025 23:31:20 +0500 Subject: [PATCH] =?UTF-8?q?=D0=93=D1=83=D1=81=D0=B5=D0=B2=20=D0=9E=D0=BB?= =?UTF-8?q?=D0=B5=D0=B3=20=D0=9F=D1=80=D0=98-201=20=D0=9C=D0=BE=D0=B4?= =?UTF-8?q?=D1=83=D0=BB=D1=8C=204(=D0=9E=D0=9E=D0=9F)=20=D0=97=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F=201-5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task01/src/com/example/task01/Point.java | 27 +++++++- task01/src/com/example/task01/Task01Main.java | 4 +- task02/src/com/example/task02/Task02Main.java | 7 +- task02/src/com/example/task02/TimeSpan.java | 65 +++++++++++++++++++ .../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 | 28 ++++++++ task04/src/com/example/task04/Task04Main.java | 5 +- task05/src/com/example/task05/Point.java | 42 +++--------- .../src/com/example/task05/PolygonalLine.java | 44 +++++-------- 11 files changed, 227 insertions(+), 69 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..fd8d3d96 100644 --- a/task01/src/com/example/task01/Point.java +++ b/task01/src/com/example/task01/Point.java @@ -7,8 +7,33 @@ public class Point { int x; int y; + public Point(int x, int y) { + this.x = x; + this.y = y; + } + + public Point() { + x = 0; + y = 0; + } + + void flip() { + int temp = x; + x = -y; + y = -temp; + } + + double distance(Point point) { + double a = Math.pow(x - point.x, 2); + double b = Math.pow(y - point.y, 2); + return Math.sqrt(a + b); + } + + public String toString() { + return String.format("(%d, %d)", x, y); + } void print() { - String pointToString = String.format("(%d, %d)", x, y); + String pointToString = toString(); System.out.println(pointToString); } } diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 7d71173a..15076642 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -2,9 +2,7 @@ public class Task01Main { public static void main(String[] args) { - Point p1 = new Point(); - p1.x = 10; - p1.y = 45; + Point p1 = new Point(10, 45); Point p2 = new Point(); 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..bcfe40e5 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(0,59,59); + TimeSpan time2 = new TimeSpan(0,0,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..01b57c0f --- /dev/null +++ b/task02/src/com/example/task02/TimeSpan.java @@ -0,0 +1,65 @@ +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; + this.hours = totalSecond / 3600; + this.minutes = (totalSecond % 3600) / 60; + this.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(); + } + + public String toString() { + return 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..4904d5ac --- /dev/null +++ b/task03/src/com/example/task03/ComplexNumber.java @@ -0,0 +1,39 @@ +package com.example.task03; + +public class ComplexNumber { + private final double realPart; + private final double imaginaryPart; + + public ComplexNumber(double realPart, double imaginaryPart) { + this.realPart = realPart; + this.imaginaryPart = imaginaryPart; + } + + public double getRealPart() { + return realPart; + } + + public double getImaginaryPart() { + return imaginaryPart; + } + + public ComplexNumber add(ComplexNumber complexNumber) { + double real = this.realPart + complexNumber.realPart; + double imaginary = this.imaginaryPart + complexNumber.imaginaryPart; + return new ComplexNumber(real, imaginary); + } + + public ComplexNumber multiply(ComplexNumber complexNumber) { + double real = this.realPart * complexNumber.realPart - this.imaginaryPart * complexNumber.imaginaryPart; + double imaginary = this.realPart * complexNumber.imaginaryPart + this.imaginaryPart * complexNumber.realPart; + return new ComplexNumber(real, imaginary); + } + + @Override + public String toString() { + if (imaginaryPart >= 0) { + return realPart + "+" + imaginaryPart + "i"; + } + return realPart + "-" + (-imaginaryPart) + "i"; + } +} \ No newline at end of file diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index ae40e6f2..2d949ff4 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 z1 = new ComplexNumber(0, 3); + ComplexNumber z2 = new ComplexNumber(1, -4); + System.out.println(z1); + System.out.println(z2); + System.out.println(z1.add(z2)); + System.out.println(z1.multiply(z1)); } } diff --git a/task04/src/com/example/task04/Line.java b/task04/src/com/example/task04/Line.java new file mode 100644 index 00000000..a23bee59 --- /dev/null +++ b/task04/src/com/example/task04/Line.java @@ -0,0 +1,28 @@ +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; + } + + @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..474f588e --- /dev/null +++ b/task04/src/com/example/task04/Point.java @@ -0,0 +1,28 @@ +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 a = Math.pow(x - point.x, 2); + double b = Math.pow(y - point.y, 2); + return Math.sqrt(a + b); + } + + public String toString() { + return String.format("(%d, %d)", x, y); + } + void print() { + String pointToString = toString(); + System.out.println(pointToString); + } +} diff --git a/task04/src/com/example/task04/Task04Main.java b/task04/src/com/example/task04/Task04Main.java index 55917a30..1d303086 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -2,6 +2,9 @@ public class Task04Main { public static void main(String[] args) { - + Point p1 = new Point(1,1); + Point p2 = new Point(5,1); + Line l1 = new Line(p1,p2); + System.out.println(l1.isCollinearLine(new Point(-5,1))); } } diff --git a/task05/src/com/example/task05/Point.java b/task05/src/com/example/task05/Point.java index 968ea652..790d6d37 100644 --- a/task05/src/com/example/task05/Point.java +++ b/task05/src/com/example/task05/Point.java @@ -1,49 +1,25 @@ package com.example.task05; -/** - * Точка в двумерном пространстве - */ public class Point { + private final double x; + private 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(); + double a = Math.pow(x - point.x, 2); + double b = Math.pow(y - point.y, 2); + return Math.sqrt(a + b); } - } diff --git a/task05/src/com/example/task05/PolygonalLine.java b/task05/src/com/example/task05/PolygonalLine.java index b534bfd5..fac48656 100644 --- a/task05/src/com/example/task05/PolygonalLine.java +++ b/task05/src/com/example/task05/PolygonalLine.java @@ -1,46 +1,32 @@ 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); + } } - /** - * Добавляет точку к ломаной линии - * - * @param point точка, которую нужно добавить к ломаной - */ public void addPoint(Point point) { - // TODO: реализовать + line.add(new Point(point.getX(), point.getY())); } - /** - * Добавляет точку к ломаной линии - * - * @param x координата по оси абсцисс - * @param y координата по оси ординат - */ public void addPoint(double x, double y) { - // TODO: реализовать + line.add(new Point(x, y)); } - /** - * Возвращает длину ломаной линии - * - * @return длину ломаной линии - */ public double getLength() { - // TODO: реализовать - throw new AssertionError(); + double length = 0; + for (int i = 0; i < line.size() - 1; i++) { + Point first = line.get(i); + Point second = line.get(i+1); + length += first.getLength(second); + } + return length; } }