Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 22 additions & 1 deletion task01/src/com/example/task01/Point.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,32 @@
* Класс точки на плоскости
*/
public class Point {

int x;
int y;

public Point() {
this.x = x;
this.y = y;
}
public void flip() {
int temp = this.x;
this.x = -this.y;
this.y= -temp;
}

public double distance(Point point) {
int tempX = this.x - point.x;
int tempY = this.y - point.y;
return Math.sqrt(Math.pow(tempX, 2) + Math.pow(tempY, 2)); //По теореме Пифагора
}

public String toString() {
return "(" + x + ", " + y + ")";
}

void print() {
String pointToString = String.format("(%d, %d)", x, y);
System.out.println(pointToString);
}
}
}
21 changes: 21 additions & 0 deletions task02/src/com/example/task02/Task02Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,27 @@

public class Task02Main {
public static void main(String[] args) {
TimeSpan span1 = new TimeSpan (1, 50, 7);
TimeSpan span2 = new TimeSpan (0, 76, 100);
TimeSpan span3 = new TimeSpan (0, 61, 95);
TimeSpan span4 = new TimeSpan (0, 0, 1);

System.out.println("Интервал 1: " + span1);
System.out.println("Интервал 2: " + span2);
System.out.println("Интервал 3: " + span3);
System.out.println("Интервал 4: " + span4);

span1.add(span2);
System.out.println("После сложения 1 + 2: " + span1);

span3.subtract(span4);
System.out.println("После вычитания 3 - 4: " + span3);

System.out.println("Часы: " + span1.getHours());
System.out.println("Минуты: " + span1.getMin());
System.out.println("Секунды: " + span1.getSec());

span1.setMin(70);
System.out.println("После сеттера: " + span1);
}
}
84 changes: 84 additions & 0 deletions task02/src/com/example/task02/TimeSpan.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package com.example.task02;

public class TimeSpan {
//Поля класса
private int hSpan;
private int mSpan;
private int sSpan;

//Конструктор
public TimeSpan(int hSpan, int mSpan, int sSpan) {
this.hSpan = hSpan;
this.mSpan = mSpan;
this.sSpan = sSpan;
normalize();
}

//Геттеры
public Integer getHours() {
return hSpan;
}

public Integer getMin() {
return mSpan;
}

public Integer getSec() {
return sSpan;
}

//Сеттеры
public void setHours(int hSpan) {
this.hSpan = hSpan;
}

public void setMin(int hSpan) {
this.mSpan = hSpan;
}

public void setSec(int hSpan) {
this.sSpan = hSpan;
}

//Добавляет к текущему интервалу значение переданного интервала в минутах
public void add(TimeSpan time) {
this.hSpan += time.hSpan;
this.mSpan += time.mSpan;
this.sSpan += time.sSpan;
normalize();
}

void subtract(TimeSpan time) {
int tempTime1 = this.hSpan * 3600 + this.mSpan * 60 + this.sSpan;
int tempTime2 = time.hSpan * 3600 + time.mSpan * 60 + time.sSpan;

int difference = tempTime1 - tempTime2;

if (difference <= 0) {
this.hSpan = 0;
this.mSpan = 0;
this.sSpan = 0;
} else {
this.hSpan = difference / 3600;
this.mSpan = (difference % 3600) / 60;
this.sSpan = difference % 60;
}
}

public String toString() {
normalize();
return String.format("%02d:%02d:%02d", hSpan, mSpan, sSpan);
}

private void normalize() {
if (sSpan >= 60) {
mSpan += sSpan / 60;
sSpan = sSpan % 60;
}
else if (mSpan >= 60) {
hSpan += mSpan / 60;
mSpan = mSpan % 60;
}
}

}
38 changes: 38 additions & 0 deletions task03/src/com/example/task03/ComplexNumber.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
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 other) {
double newReal = this.realPart + other.realPart;
double newImaginary = this.imaginaryPart + other.imaginaryPart;
return new ComplexNumber(newReal, newImaginary);
}

public ComplexNumber multiply(ComplexNumber other) {
// (a + bi) * (c + di) = (ac - bd) + (ad + bc)i
double newReal = this.realPart * other.realPart - this.imaginaryPart * other.imaginaryPart;
double newImaginary = this.realPart * other.imaginaryPart + this.imaginaryPart * other.realPart;
return new ComplexNumber(newReal, newImaginary);
}

public String toString() {
if (imaginaryPart >= 0) return realPart + "+" + imaginaryPart + "i";
else return realPart + " - " + Math.abs(imaginaryPart) + "i";
}
}
4 changes: 4 additions & 0 deletions task03/src/com/example/task03/Task03Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

public class Task03Main {
public static void main(String[] args) {
ComplexNumber num1 = new ComplexNumber(1, 6);
ComplexNumber num2 = new ComplexNumber(-3, 2);

System.out.println("Сложение: " + num1.add(num2));
System.out.println("Умножение: " + num1.multiply(num2));
}
}
29 changes: 29 additions & 0 deletions task04/src/com/example/task04/Line.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
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;
}

public String toString() {
return "Отрезок от" + p1 + "до " + p2;
}

//(y₃ - y₁) × (x₂ - x₁) = (x₃ - x₁) × (y₂ - y₁), где A(x1, y1) и B(x2, y2) точки прямой, а C(x3, y3) точка, которую надо проверить
public boolean isCollinearLine(Point p){
return ((p.getY() - p1.getY()) * (p2.getX() - p1.getX())) == ((p.getX() - p1.getX()) * (p2.getY() - p1.getY()));
}
}
37 changes: 37 additions & 0 deletions task04/src/com/example/task04/Point.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package com.example.task04;

/**
* Класс точки на плоскости
*/
public class Point {
private final int x;
private final int y;

public Point(int x, int y) {
this.x=x;
this.y=y;
}

public int getX() {
return x;
}

public int getY() {
return y;
}

public double distance(Point point) {
int tempX = this.x - point.x;
int tempY = this.y - point.y;
return Math.sqrt(Math.pow(tempX, 2) + Math.pow(tempY, 2)); //По теореме Пифагора
}

public String ToString() {
return "(" + x + ", " + y + ")";
}

void print() {
String pointToString = String.format("(%d, %d)", x, y);
System.out.println(pointToString);
}
}
6 changes: 6 additions & 0 deletions task04/src/com/example/task04/Task04Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

public class Task04Main {
public static void main(String[] args) {
Point p1 = new Point(3, 3);
Point p2 = new Point(1, 1);
Point p3 = new Point(2, 2);

Line line = new Line(p1, p2);

System.out.println(line.isCollinearLine(p3));
}
}
47 changes: 14 additions & 33 deletions task05/src/com/example/task05/Point.java
Original file line number Diff line number Diff line change
@@ -1,49 +1,30 @@
package com.example.task05;

/**
* Точка в двумерном пространстве
*/
public class Point {

/**
* Конструктор, инициализирующий координаты точки
*
* @param x координата по оси абсцисс
* @param y координата по оси ординат
*/
private final int x;
private final int y;

public Point(double x, double y) {
throw new AssertionError();
this.x = (int) Math.round(x);
this.y = (int) Math.round(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 deltaX = this.x - point.x;
double deltaY = this.y - point.y;
return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));
}

}
public String toString() {
return "(" + x + ", " + y + ")";
}
}
Loading