From 0d30ccd1b4132607a8193cecc312b04b29e310b1 Mon Sep 17 00:00:00 2001 From: nikita Date: Thu, 4 Sep 2025 16:37:16 +0500 Subject: [PATCH 1/5] =?UTF-8?q?=D0=9A=D0=BE=D1=81=D0=B0=D1=80=D0=B5=D0=B2?= =?UTF-8?q?=20=D0=9D.=D0=A1=20=D0=9F=D1=80=D0=98-202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task01/README.md | 4 ++-- task01/src/com/example/task01/Point.java | 20 +++++++++++++++++++ task01/src/com/example/task01/Task01Main.java | 4 ++-- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/task01/README.md b/task01/README.md index e128ff12..b6a86e08 100644 --- a/task01/README.md +++ b/task01/README.md @@ -1,4 +1,4 @@ -# Задание 01 - Точка +``# Задание 01 - Точка Создайте класс точки на плоскости целых чисел. Каждая точка должна обладать двумя координатами - *x* и *y* @@ -10,4 +10,4 @@ Добавьте метод `double distance(Point point)`, который будет принимать в качестве параметра объект точки и должен считать расстояние между двумя точками (той, для которой вызывается метод, и переданной в качестве аргумента) -Добавьте метод `public String toString()`, который должен возвращать строковое представление точки, например в формате (x, y) \ No newline at end of file +Добавьте метод `public String toString()`, который должен возвращать строковое представление точки, например в формате (x, y)`` \ No newline at end of file diff --git a/task01/src/com/example/task01/Point.java b/task01/src/com/example/task01/Point.java index ec5c69e8..2a726223 100644 --- a/task01/src/com/example/task01/Point.java +++ b/task01/src/com/example/task01/Point.java @@ -11,4 +11,24 @@ void print() { String pointToString = String.format("(%d, %d)", x, y); System.out.println(pointToString); } + + public Point(int x, int y) { + this.x = x; + this.y = y; + } + + public void flip(){ + int temp = x; + x = -y; + y = -temp; + } + + public double distance(Point p){ + return Math.sqrt(Math.pow(p.x-x, 2) + Math.pow(p.y-y, 2)); + } + + public String toString(){ + return "("+x+","+y+")"; + } + } diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 7d71173a..ed5855ee 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(3,3); p1.x = 10; p1.y = 45; - Point p2 = new Point(); + Point p2 = new Point(2,5); p2.x = 78; p2.y = 12; From 1430d0ea39d680f51662caab3be3c0caf83f74f3 Mon Sep 17 00:00:00 2001 From: nikita Date: Thu, 4 Sep 2025 17:06:52 +0500 Subject: [PATCH 2/5] =?UTF-8?q?=D0=9A=D0=BE=D1=81=D0=B0=D1=80=D0=B5=D0=B2?= =?UTF-8?q?=20=D0=9D.=D0=A1=20=D0=9F=D1=80=D0=98-202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task02/src/com/example/task02/Task02Main.java | 6 ++ task02/src/com/example/task02/TimeSpan.java | 59 +++++++++++++++++++ 2 files changed, 65 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..637d2cab 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -1,7 +1,13 @@ package com.example.task02; public class Task02Main { + public static void main(String[] args) { + TimeSpan timeSpan1 = new TimeSpan(2,30,0); + TimeSpan timeSpan2 = new TimeSpan(1,40,0); + timeSpan1.subtract(timeSpan2); + timeSpan1.getHour(); + System.out.println(timeSpan1); } } diff --git a/task02/src/com/example/task02/TimeSpan.java b/task02/src/com/example/task02/TimeSpan.java new file mode 100644 index 00000000..8d43d779 --- /dev/null +++ b/task02/src/com/example/task02/TimeSpan.java @@ -0,0 +1,59 @@ +package com.example.task02; + +public class TimeSpan { + private int hour; + private int minute; + private int second; + + public TimeSpan(int hour, int minute, int second) { + this.hour = hour; + this.minute = minute; + this.second = second; + sortTime(); + } + + public int getHour() { + return hour; + } + public void setHour(int hour) { + this.hour = hour; + sortTime(); + } + public int getMinute() { + return minute; + } + public void setMinute(int minute) { + this.minute = minute; + sortTime(); + } + public int getSecond() { + return second; + } + public void setSecond(int second) { + this.second = second; + sortTime(); + } + + public void add(TimeSpan timeSpan) { + this.second += timeSpan.second; + this.minute += timeSpan.minute; + this.hour += timeSpan.hour; + sortTime(); + } + public void subtract(TimeSpan timeSpan) { + this.second -= timeSpan.second; + this.minute -= timeSpan.minute; + this.hour -= timeSpan.hour; + } + + public void sortTime(){ + minute += second/60; + second %= 60; + hour += minute/60; + minute %= 60; + } + + public String toString(){ + return hour + ":" + minute + ":" + second; + } +} From 9239051378b48b28f2b2f389fba3781410f9e954 Mon Sep 17 00:00:00 2001 From: nikita Date: Thu, 4 Sep 2025 23:50:07 +0500 Subject: [PATCH 3/5] =?UTF-8?q?=D0=9A=D0=BE=D1=81=D0=B0=D1=80=D0=B5=D0=B2?= =?UTF-8?q?=20=D0=9D.=D0=A1=20=D0=9F=D1=80=D0=98-202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task04/src/com/example/task04/Line.java | 26 +++++++++++++++++++ task04/src/com/example/task04/Point.java | 25 ++++++++++++++++++ task04/src/com/example/task04/Task04Main.java | 7 +++++ 3 files changed, 58 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..f915df43 --- /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 this.p1; + } + public Point getP2(){ + return this.p2; + } + + public String toString(){ + return p1.toString() + "-----" + p2.toString(); + } + + public boolean isCollinearLine(Point point){ + return (int)this.p1.distance(this.p2) == (int)(point.distance(p1) + point.distance(p2)); + } +} diff --git a/task04/src/com/example/task04/Point.java b/task04/src/com/example/task04/Point.java new file mode 100644 index 00000000..1440319f --- /dev/null +++ b/task04/src/com/example/task04/Point.java @@ -0,0 +1,25 @@ +package com.example.task04; + +public class Point { + private final int x; + private final int y; + + void print() { + String pointToString = String.format("(%d, %d)", x, y); + System.out.println(pointToString); + } + + public Point(int x, int y) { + this.x = x; + this.y = y; + } + + public double distance(Point p){ + return Math.sqrt(Math.pow(p.x-x, 2) + Math.pow(p.y-y, 2)); + } + + public String toString(){ + return "("+x+","+y+")"; + } + +} diff --git a/task04/src/com/example/task04/Task04Main.java b/task04/src/com/example/task04/Task04Main.java index 55917a30..9fd072b2 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -3,5 +3,12 @@ public class Task04Main { public static void main(String[] args) { + Point p1 = new Point(1,1); + Point p2 = new Point(3,3); + + Line l1 = new Line(p1,p2); + + System.out.println(l1.isCollinearLine(new Point(2,2))); + } } From f65882d44557f75907de822018764bd2329634cd Mon Sep 17 00:00:00 2001 From: nikita Date: Fri, 5 Sep 2025 00:41:40 +0500 Subject: [PATCH 4/5] =?UTF-8?q?=D0=9A=D0=BE=D1=81=D0=B0=D1=80=D0=B5=D0=B2?= =?UTF-8?q?=20=D0=9D.=D0=A1=20=D0=9F=D1=80=D0=98-202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task05/src/com/example/task05/Point.java | 39 +++------------ .../src/com/example/task05/PolygonalLine.java | 50 ++++++++----------- task05/src/com/example/task05/Task05Main.java | 9 ++++ 3 files changed, 37 insertions(+), 61 deletions(-) diff --git a/task05/src/com/example/task05/Point.java b/task05/src/com/example/task05/Point.java index 968ea652..c10444ce 100644 --- a/task05/src/com/example/task05/Point.java +++ b/task05/src/com/example/task05/Point.java @@ -1,49 +1,24 @@ 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(); + return Math.sqrt(Math.pow(point.getX() - x, 2) + Math.pow(point.getY() - y, 2)); } } diff --git a/task05/src/com/example/task05/PolygonalLine.java b/task05/src/com/example/task05/PolygonalLine.java index b534bfd5..170f5606 100644 --- a/task05/src/com/example/task05/PolygonalLine.java +++ b/task05/src/com/example/task05/PolygonalLine.java @@ -1,46 +1,38 @@ package com.example.task05; -/** - * Ломаная линия - */ +import java.util.List; +import java.util.ArrayList; + public class PolygonalLine { - /** - * Устанавливает точки ломаной линии - * - * @param points массив точек, которыми нужно проинициализировать ломаную линию - */ + private List points = new ArrayList<>(); public void setPoints(Point[] points) { - // TODO: реализовать + this.points = new ArrayList<>(); + for (Point p : points) { + this.points.add(new Point(p.getX(), p.getY())); + } } - /** - * Добавляет точку к ломаной линии - * - * @param point точка, которую нужно добавить к ломаной - */ + public void addPoint(Point point) { - // TODO: реализовать + points.add(new Point(point.getX(), point.getY())); } - /** - * Добавляет точку к ломаной линии - * - * @param x координата по оси абсцисс - * @param y координата по оси ординат - */ public void addPoint(double x, double y) { - // TODO: реализовать + points.add(new Point(x, y)); } - /** - * Возвращает длину ломаной линии - * - * @return длину ломаной линии - */ + public double getLength() { - // TODO: реализовать - throw new AssertionError(); + double sum = 0.0; + for(int i = 0; i < points.size()-1; i++) { + sum += getLengthBetweenPoints(points.get(i), points.get(i+1)); + } + return sum; + } + + private double getLengthBetweenPoints(Point point1, Point point2) { + return Math.sqrt(Math.pow(point2.getX() - point1.getX(), 2) + Math.pow(point2.getY() - point1.getY(), 2)); } } diff --git a/task05/src/com/example/task05/Task05Main.java b/task05/src/com/example/task05/Task05Main.java index 4f745fb6..070b0e70 100644 --- a/task05/src/com/example/task05/Task05Main.java +++ b/task05/src/com/example/task05/Task05Main.java @@ -2,6 +2,15 @@ public class Task05Main { public static void main(String[] args) { + Point p1 = new Point(1, 0); + Point p2 = new Point(3, 0); + Point p3 = new Point(5, 0); + + PolygonalLine polygonalLine = new PolygonalLine(); + + polygonalLine.setPoints(new Point[]{p1, p2, p3}); + System.out.println(polygonalLine.getLength()); + } } From 08473c5d08f43726a0b6848133e897750587320e Mon Sep 17 00:00:00 2001 From: nikita Date: Fri, 5 Sep 2025 00:52:59 +0500 Subject: [PATCH 5/5] =?UTF-8?q?=D0=9A=D0=BE=D1=81=D0=B0=D1=80=D0=B5=D0=B2?= =?UTF-8?q?=20=D0=9D.=D0=A1=20=D0=9F=D1=80=D0=98-202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/example/task03/ComplexNumber.java | 38 +++++++++++++++++++ task03/src/com/example/task03/Task03Main.java | 9 +++++ 2 files changed, 47 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..f8cd37f2 --- /dev/null +++ b/task03/src/com/example/task03/ComplexNumber.java @@ -0,0 +1,38 @@ +package com.example.task03; + +class ComplexNumber { + private double real; + private double imag; + + public ComplexNumber(double real, double imag) { + this.real = real; + this.imag = imag; + } + + public ComplexNumber add(ComplexNumber other) { + return new ComplexNumber(this.real + other.real, this.imag + other.imag); + } + + public ComplexNumber multiply(ComplexNumber other) { + double newReal = this.real * other.real - this.imag * other.imag; + double newImag = this.real * other.imag + this.imag * other.real; + return new ComplexNumber(newReal, newImag); + } + + public double getReal() { + return real; + } + + public double getImag() { + return imag; + } + + public String toString() { + if (imag >= 0) { + return real + " + " + imag + "i"; + } else { + return real + " - " + (-imag) + "i"; + } + } +} + diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index ae40e6f2..41bd25a1 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -2,6 +2,15 @@ public class Task03Main { public static void main(String[] args) { + ComplexNumber z1 = new ComplexNumber(2, 3); + ComplexNumber z2 = new ComplexNumber(1, -4); + ComplexNumber sum = z1.add(z2); + ComplexNumber product = z1.multiply(z2); + + System.out.println(z1); + System.out.println(z2); + System.out.println(sum); + System.out.println(product); } }