From c7ee2e4b08b10d50f04d272c81213f2bbea5c3f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1?= <мфв> Date: Mon, 6 Oct 2025 21:12:43 +0500 Subject: [PATCH] =?UTF-8?q?=D0=93=D1=80=D0=B8=D1=88=D0=B8=D0=BD=20=D0=92?= =?UTF-8?q?=D0=B0=D0=B4=D0=B8=D0=BC=20=D0=9F=D1=80=D0=B8-201=204.1=20-=204?= =?UTF-8?q?.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- task01/src/com/example/task01/Point.java | 40 ++++++++++-- task01/src/com/example/task01/Task01Main.java | 16 +---- task02/src/com/example/task02/Task02Main.java | 5 +- task02/src/com/example/task02/TimeSpan.java | 62 +++++++++++++++++++ .../src/com/example/task03/ComplexNumber.java | 37 +++++++++++ task03/src/com/example/task03/Task03Main.java | 7 ++- task04/src/com/example/task04/Line.java | 27 ++++++++ task04/src/com/example/task04/Point.java | 25 ++++++++ task05/src/com/example/task05/Point.java | 41 ++++-------- .../src/com/example/task05/PolygonalLine.java | 45 +++++--------- 10 files changed, 227 insertions(+), 78 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..239d6235 100644 --- a/task01/src/com/example/task01/Point.java +++ b/task01/src/com/example/task01/Point.java @@ -1,14 +1,44 @@ package com.example.task01; +import java.text.MessageFormat; + /** * Класс точки на плоскости */ public class Point { - int x; - int y; + private int x; + private int y; + + public int getX(){ + return x; + } + + public int getY(){ + return y; + } + + public Point(int x, int y){ + this.x = x; + this.y = y; + } - void print() { - String pointToString = String.format("(%d, %d)", x, y); - System.out.println(pointToString); + public void flip(){ + int temp = x; + x = -y; + y = -temp; } + + public double distance(Point point){ + double Xd = Math.abs(point.x - x); + double Yd = Math.abs(point.y - y); + + return Math.sqrt(Math.pow(Xd, 2) + Math.pow(Yd, 2)); + } + + 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..45403569 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -2,18 +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; - - System.out.println("Point 1:"); - p1.print(); - System.out.println(p1); - System.out.println("Point 2:"); - p2.print(); - System.out.println(p2); + Point point = new Point(5, -7); + point.flip(); + System.out.println(point); } } diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 644a0eba..31562bd4 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -2,6 +2,9 @@ public class Task02Main { public static void main(String[] args) { - + TimeSpan time1 = new TimeSpan(10, 20, 36); + TimeSpan time2 = new TimeSpan(5, 10, 24); + time1.add(time2); + 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..ff391eaf --- /dev/null +++ b/task02/src/com/example/task02/TimeSpan.java @@ -0,0 +1,62 @@ +package com.example.task02; + +public class TimeSpan { + private int hours; + private int minutes; + private int seconds; + + public int getHours(){ + return hours; + } + public int getMinutes(){ + return minutes; + } + public int getSeconds(){ + return seconds; + } + + public void setHours(int hours){ + this.hours = hours; + correct(); + } + public void setMinutes(int minutes){ + this.minutes = minutes; + correct(); + } + public void setSeconds(int seconds){ + this.seconds = seconds; + correct(); + } + + public TimeSpan(int hours, int minutes, int seconds){ + this.hours = hours; + this.minutes = minutes; + this.seconds = seconds; + correct(); + } + + public void add(TimeSpan time){ + this.hours += time.hours; + this.minutes += time.minutes; + this.seconds += time.seconds; + correct(); + } + + public void subtract(TimeSpan time){ + this.hours -= time.hours; + this.minutes -= time.minutes; + this.seconds -= time.seconds; + correct(); + } + + public String toString(){ + return String.format("%dч %dм %dс", hours, minutes, seconds); + } + + private void correct(){ + int totalTime = hours* 3600 + minutes * 60 + seconds; + hours = totalTime / 3600; + minutes = (totalTime % 3600) / 60; + seconds = (totalTime % 3600) % 60; + } +} diff --git a/task03/src/com/example/task03/ComplexNumber.java b/task03/src/com/example/task03/ComplexNumber.java new file mode 100644 index 00000000..bad28977 --- /dev/null +++ b/task03/src/com/example/task03/ComplexNumber.java @@ -0,0 +1,37 @@ +package com.example.task03; + +public class ComplexNumber { + private final double real; + private final double imaginary; + + public double getReal(){ + return real; + } + public double getImaginary(){ + return imaginary; + } + + public ComplexNumber(double real, double imaginary){ + this.real = real; + this.imaginary = imaginary; + } + + public ComplexNumber add(ComplexNumber complexNumber){ + double realPart = real + complexNumber.real; + double imaginaryPart = imaginary + complexNumber.imaginary; + return new ComplexNumber(realPart, imaginaryPart); + } + + public ComplexNumber mult(ComplexNumber complexNumber){ + double realPart = real * complexNumber.real - imaginary * complexNumber.imaginary; + double imaginaryPart = real * complexNumber.imaginary + imaginary * complexNumber.real; + return new ComplexNumber(realPart, imaginaryPart); + } + + public String toString(){ + if(imaginary >= 0){ + return real + "+" + imaginary + "i"; + } + return real + "-" + (-imaginary) + "i"; + } +} diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index ae40e6f2..94d8bd29 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 number1 = new ComplexNumber(1, 3); + ComplexNumber number2 = new ComplexNumber(1, -4); + System.out.println(number1); + System.out.println(number2); + System.out.println(number1.add(number2)); + System.out.println(number1.mult(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..afe27a4a --- /dev/null +++ b/task04/src/com/example/task04/Line.java @@ -0,0 +1,27 @@ +package com.example.task04; + +public class Line { + private final Point p1; + private final 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 (p2.x - p1.x) * (p.y - p1.y) - (p.x - p1.x) * (p2.y - p1.y) == 0; + } + + public String toString() { + return String.format("т1(%d, %d), т2(%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..f3d2738a --- /dev/null +++ b/task04/src/com/example/task04/Point.java @@ -0,0 +1,25 @@ +package com.example.task04; + +import java.text.MessageFormat; + +public class Point { + final int x; + final int y; + + + public Point(int x, int y){ + this.x = x; + this.y = y; + } + + public double distance(Point point){ + double Xd = Math.abs(point.x - x); + double Yd = Math.abs(point.y - y); + + return Math.sqrt(Math.pow(Xd, 2) + Math.pow(Yd, 2)); + } + + public String toString(){ + return String.format("(%d,%d)",x,y); + } +} diff --git a/task05/src/com/example/task05/Point.java b/task05/src/com/example/task05/Point.java index 968ea652..451a354f 100644 --- a/task05/src/com/example/task05/Point.java +++ b/task05/src/com/example/task05/Point.java @@ -4,46 +4,29 @@ * Точка в двумерном пространстве */ 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 Xd = Math.abs(point.x - x); + double Yd = Math.abs(point.y - y); + + return Math.sqrt(Math.pow(Xd, 2) + Math.pow(Yd, 2)); } } diff --git a/task05/src/com/example/task05/PolygonalLine.java b/task05/src/com/example/task05/PolygonalLine.java index b534bfd5..0f2d0731 100644 --- a/task05/src/com/example/task05/PolygonalLine.java +++ b/task05/src/com/example/task05/PolygonalLine.java @@ -1,46 +1,33 @@ package com.example.task05; -/** - * Ломаная линия - */ + +import java.util.ArrayList; + public class PolygonalLine { + private ArrayList linePoints = new ArrayList(); - /** - * Устанавливает точки ломаной линии - * - * @param points массив точек, которыми нужно проинициализировать ломаную линию - */ public void setPoints(Point[] points) { - // TODO: реализовать + for(Point p: points){ + addPoint(p); + } } - /** - * Добавляет точку к ломаной линии - * - * @param point точка, которую нужно добавить к ломаной - */ public void addPoint(Point point) { - // TODO: реализовать + linePoints.add(new Point(point.getX(), point.getY())); } - /** - * Добавляет точку к ломаной линии - * - * @param x координата по оси абсцисс - * @param y координата по оси ординат - */ public void addPoint(double x, double y) { - // TODO: реализовать + linePoints.add(new Point(x, y)); } - /** - * Возвращает длину ломаной линии - * - * @return длину ломаной линии - */ public double getLength() { - // TODO: реализовать - throw new AssertionError(); + double length = 0; + for(int i = 0; i < linePoints.size() - 1; i++){ + Point p1 = linePoints.get(i); + Point p2 = linePoints.get(i + 1); + length += p1.getLength(p2); + } + return length; } }