From 163a11a080a3e482963e3796e7a86aa832043a12 Mon Sep 17 00:00:00 2001 From: Punk-Bird Date: Tue, 14 Oct 2025 03:33:59 +0500 Subject: [PATCH] Task 01-05 --- task01/src/com/example/task01/Point.java | 19 ++++++ task01/src/com/example/task01/Task01Main.java | 8 +-- task02/src/com/example/task02/Task02Main.java | 5 +- task02/src/com/example/task02/TimeSpan.java | 63 +++++++++++++++++++ .../src/com/example/task03/ComplexNumber.java | 23 +++++++ task03/src/com/example/task03/Task03Main.java | 6 +- task04/src/com/example/task04/Line.java | 27 ++++++++ task04/src/com/example/task04/Point.java | 27 ++++++++ task04/src/com/example/task04/Task04Main.java | 7 ++- task05/src/com/example/task05/Point.java | 36 +++-------- .../src/com/example/task05/PolygonalLine.java | 27 +++++--- 11 files changed, 202 insertions(+), 46 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..6c2f9caa 100644 --- a/task01/src/com/example/task01/Point.java +++ b/task01/src/com/example/task01/Point.java @@ -7,8 +7,27 @@ public class Point { int x; int y; + public Point(int x, int y) { + this.x = x; + this.y = y; + } + + void flip() { + int x1 = x; + x = -1 * y; + y = -1 * x1; + } + + double distance(Point point) { + return Math.sqrt(Math.pow(x - point.x, 2) + Math.pow(y - point.y, 2)); + } + void print() { String pointToString = String.format("(%d, %d)", x, y); System.out.println(pointToString); } + + public String toString() { + return String.format("(%d, %d)", x, y); + } } diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 7d71173a..9767f237 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -2,12 +2,8 @@ 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..fe13d714 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -2,6 +2,7 @@ public class Task02Main { public static void main(String[] args) { - + TimeSpan time01 = new TimeSpan(2, 40, 15); + System.out.println(time01); } -} +} \ No newline at end of file diff --git a/task02/src/com/example/task02/TimeSpan.java b/task02/src/com/example/task02/TimeSpan.java new file mode 100644 index 00000000..eb6ad6c4 --- /dev/null +++ b/task02/src/com/example/task02/TimeSpan.java @@ -0,0 +1,63 @@ +package com.example.task02; + +public class TimeSpan { + private int hour; + private int min; + private int sec; + + public int getHour() { + return this.hour; + } + public void setHour(int hour) { + if (hour >= 0) { + this.hour = hour; + } + } + + public int getMin() { + return this.min; + } + public void setMin(int min) { + if (min >= 0) { + this.hour += min / 60; + this.min = min % 60; + } + } + + public int getSec() { + return this.sec; + } + public void setSec(int sec) { + if (sec >= 0) { + this.hour += (sec / 3600) + ((this.min + (sec % 3600) / 60) / 60); + this.min = (this.min + (sec % 3600) / 60) % 60; + this.sec = sec % 60; + } + } + + public TimeSpan(int hour, int min, int sec) { + if (hour >= 0 && min >= 0 && sec >= 0) { + setHour(hour); + setMin(min); + setSec(sec); + } + + } + + void add(TimeSpan time) { + setHour(hour + time.hour); + setMin(min + time.min); + setSec(sec + time.sec); + } + + void subtract(TimeSpan time) { + int allTimeInSec = (sec + min * 60 + hour * 3600) - (time.sec + time.min * 60 + time.hour * 3600); + setHour(0); + setMin(0); + setSec(Math.max(0, allTimeInSec)); + } + + public String toString() { + return String.format("%d:%d:%d", hour, min, sec); + } +} diff --git a/task03/src/com/example/task03/ComplexNumber.java b/task03/src/com/example/task03/ComplexNumber.java new file mode 100644 index 00000000..456e63e9 --- /dev/null +++ b/task03/src/com/example/task03/ComplexNumber.java @@ -0,0 +1,23 @@ +package com.example.task03; + +public class ComplexNumber { + private double real; + private double imaginary; + + public ComplexNumber(double real, double imaginary) { + this.real = real; + this.imaginary = imaginary; + } + + public ComplexNumber sum(ComplexNumber number) { + return new ComplexNumber(real + number.real, imaginary + number.imaginary); + } + + public ComplexNumber product(ComplexNumber number) { + return new ComplexNumber(real * number.real - imaginary * number.imaginary, real * number.imaginary + number.real * imaginary); + } + + public String toString() { + return String.format("%.1f + %.1fi", real, imaginary); + } +} diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index ae40e6f2..d6aed21f 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -2,6 +2,10 @@ public class Task03Main { public static void main(String[] args) { - + ComplexNumber number1 = new ComplexNumber(2, 3); + ComplexNumber number2 = new ComplexNumber(4, 5); + System.out.println("Number 1: " + number1 + "\nNumber 2: " + number2); + System.out.println("\nSum: " + number1.sum(number2)); + System.out.println("Product: " + number1.product(number2)); } } diff --git a/task04/src/com/example/task04/Line.java b/task04/src/com/example/task04/Line.java new file mode 100644 index 00000000..9b4c862f --- /dev/null +++ b/task04/src/com/example/task04/Line.java @@ -0,0 +1,27 @@ +package com.example.task04; + +public class Line { + private Point p1; + 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 boolean isCollinearLine(Point p) { + return p1.distance(p2) == p1.distance(p) + p2.distance(p); + } + + public String toString() { + return String.format("[(%d,%d), (%d,%d)]", p1.x, p1.y, p2.x, p2.y); + } +} diff --git a/task04/src/com/example/task04/Point.java b/task04/src/com/example/task04/Point.java new file mode 100644 index 00000000..d4fae827 --- /dev/null +++ b/task04/src/com/example/task04/Point.java @@ -0,0 +1,27 @@ +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(x - point.x, 2) + Math.pow(y - point.y, 2)); + } + + void print() { + String pointToString = String.format("(%d, %d)", x, y); + System.out.println(pointToString); + } + + public String toString() { + return String.format("(%d, %d)", x, y); + } +} diff --git a/task04/src/com/example/task04/Task04Main.java b/task04/src/com/example/task04/Task04Main.java index 55917a30..64f6cf40 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(2, 1); + Point p2 = new Point(6, 3); + Line line = new Line(p1, p2); + System.out.println("Line: " + line); + Point p = new Point(4, 2); + 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..544ab535 100644 --- a/task05/src/com/example/task05/Point.java +++ b/task05/src/com/example/task05/Point.java @@ -4,46 +4,24 @@ * Точка в двумерном пространстве */ 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(x - point.x, 2) + Math.pow(y - point.y, 2)); } } diff --git a/task05/src/com/example/task05/PolygonalLine.java b/task05/src/com/example/task05/PolygonalLine.java index b534bfd5..b1464f45 100644 --- a/task05/src/com/example/task05/PolygonalLine.java +++ b/task05/src/com/example/task05/PolygonalLine.java @@ -1,9 +1,17 @@ package com.example.task05; +import java.util.ArrayList; +import java.util.List; + /** * Ломаная линия */ public class PolygonalLine { + private List points; + + public PolygonalLine() { + this.points = new ArrayList<>(); + } /** * Устанавливает точки ломаной линии @@ -11,7 +19,10 @@ public class PolygonalLine { * @param points массив точек, которыми нужно проинициализировать ломаную линию */ public void setPoints(Point[] points) { - // TODO: реализовать + this.points = new ArrayList<>(); + for (Point point : points) { + this.points.add(new Point(point.getX(), point.getY())); + } } /** @@ -20,7 +31,7 @@ public void setPoints(Point[] points) { * @param point точка, которую нужно добавить к ломаной */ public void addPoint(Point point) { - // TODO: реализовать + this.points.add(new Point(point.getX(), point.getY())); } /** @@ -30,7 +41,7 @@ public void addPoint(Point point) { * @param y координата по оси ординат */ public void addPoint(double x, double y) { - // TODO: реализовать + this.points.add(new Point(x, y)); } /** @@ -39,8 +50,10 @@ public void addPoint(double x, double y) { * @return длину ломаной линии */ public double getLength() { - // TODO: реализовать - throw new AssertionError(); + double length = 0.0; + for (int i = 1; i < points.size(); i++) { + length += points.get(i - 1).getLength(points.get(i)); + } + return length; } - -} +} \ No newline at end of file