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
47 changes: 28 additions & 19 deletions 04-java-oop-basic/task05/src/com/example/task05/Point.java
Original file line number Diff line number Diff line change
@@ -1,49 +1,58 @@
package com.example.task05;

/**
* Точка в двумерном пространстве
*/
public class Point {
public class Point
{
private final double x, y;

/**
* Конструктор, инициализирующий координаты точки
*
* @param x координата по оси абсцисс
* @param y координата по оси ординат
*/
public Point(double x, 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
@@ -31,8 +27,7 @@ public double getX() {
* @return координату точки по оси Y
*/
public double getY() {
// TODO: реализовать
throw new AssertionError();
return y;
}

/**
* Подсчитывает расстояние от текущей точки до точки, переданной в качестве параметра
*
* @param point вторая точка отрезка
@@ -41,9 +36,12 @@ public double getY() {
* @param point вторая точка отрезка
* @return расстояние от текущей точки до переданной
*/
public String toString() {
return String.format("(%f, %f)", x, y);
}

public double getLength(Point point) {
// TODO: реализовать
throw new AssertionError();
return Math.sqrt(Math.pow(x- point.x,2)+Math.pow(y- point.y,2));
}

}
}
50 changes: 31 additions & 19 deletions 04-java-oop-basic/task05/src/com/example/task05/PolygonalLine.java
Original file line number Diff line number Diff line change
@@ -1,46 +1,58 @@
package com.example.task05;

/**
* Ломаная линия
*/
public class PolygonalLine {
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class PolygonalLine
{

private ArrayList<Point> points = new ArrayList<>();
/**
* Устанавливает точки ломаной линии
*
* @param points массив точек, которыми нужно проинициализировать ломаную линию
*/
public void setPoints(Point[] points) {
public void setPoints(Point[] points)
{
// TODO: реализовать
for(Point p : points){
this.points.add(new Point(p.getX(), p.getY()));
}
}

/**
* Добавляет точку к ломаной линии
*
* @param point точка, которую нужно добавить к ломаной
@@ -20,7 +28,7 @@ public void setPoints(Point[] points) {
* @param point точка, которую нужно добавить к ломаной
*/
public void addPoint(Point point) {
public void addPoint(Point point)
{
// TODO: реализовать
points.add(new Point(point.getX(),point.getY()));
}

/**
* Добавляет точку к ломаной линии
*
* @param x координата по оси абсцисс
* @param y координата по оси ординат
@@ -30,7 +38,7 @@ public void addPoint(Point point) {
* @param y координата по оси ординат
*/
public void addPoint(double x, double y) {
public void addPoint(double x, double y)
{
// TODO: реализовать
points.add(new Point(x,y));
}

/**
* Возвращает длину ломаной линии
*
* @return длину ломаной линии
@@ -39,8 +47,10 @@ public void addPoint(double x, double y){
* @return длину ломаной линии
*/
public double getLength() {
public double getLength()
{
// TODO: реализовать
throw new AssertionError();
double sum = 0;
for (int i=0; i<points.size()-1; i++){
sum+=points.get(i).getLength(points.get(i+1));
}
return sum;
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,98 @@
package com.example.task01;

public class Task01Main {
public static void main(String[] args) {
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Hashtable;
import java.util.Objects;

public class Logger
{
private static final Hashtable<String, Logger> loggers = new Hashtable<>();
protected final String name;
private LoggerLevel level = LoggerLevel.ERROR;
private static final SimpleDateFormat dateFormat = new SimpleDateFormat(" yyyy.MM.dd hh:mm:ss ");

protected Logger(String name)
{
this.name = name;
}

public String getName()
{
return name;
}

public static Logger getLogger(String name)
{
return Logger.loggers.computeIfAbsent(name, Logger::new);
}

public void setLevel(LoggerLevel level)
{
this.level = Objects.requireNonNull(level);
}

public LoggerLevel getLevel()
{
return level;
}

private void log(LoggerLevel level, String message) {

if (level.ordinal() >= this.level.ordinal())
{
System.err.println("[" + this.level.toString() + "]" + dateFormat.format(new Date()) +
this.name + " - " + message);
}
}

private void log(LoggerLevel level, String format, Object... objects)
{
if (level.ordinal() >= this.level.ordinal())
{
System.err.println("[" + this.level.toString() + "]" + dateFormat.format(new Date()) +
this.name + " - " + String.format(format, objects));
}
}

public void debug(String message)
{
this.log(LoggerLevel.DEBUG, message);
}
}

public void debug(String format, Object... objects)
{
this.log(LoggerLevel.DEBUG, format, objects);
}

public void info(String message)
{
this.log(LoggerLevel.INFO, message);
}

public void info(String format, Object... objects)
{
this.log(LoggerLevel.INFO, format, objects);
}

public void warning(String message)
{
this.log(LoggerLevel.WARNING, message);
}

public void warning(String format, Object... objects)
{
this.log(LoggerLevel.WARNING, format, objects);
}

public void error(String message)
{
this.log(LoggerLevel.ERROR, message);
}

public void error(String format, Object... objects)
{
this.log(LoggerLevel.ERROR, format, objects);
}

}