A9

package sk.upjs.paz1a.cvicenie9;

public class Bod extends Object {

        private double x;
        private double y;

        public double getX() {
                return x;
        }

        public void setX(double x) {
                this.x = x;
        }

        public double getY() {
                return y;
        }

        public void setY(double y) {
                this.y = y;
        }

        public Bod() {
                this.x = 0;
                this.y = 0;
        }

        public Bod(double x, double y) {
                this.x = x;
                this.y = y;
        }

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

        public void nastav(double x, double y) {
                setX(x);
                setY(y);
        }

        public void nastav(Bod bod) {
                nastav(bod.getX(), bod.getY());
        }

        public boolean rovnakeSuradnice(Bod bod) {
                return (getX() == bod.getX()) && (getY() == bod.getY());
        }

        public double vzdialenostK(double x, double y) {
                double dx = getX() - x;
                double dy = getY() - y;
                return Math.sqrt(dx * dx + dy * dy);
        }

        public double vzdialenostK(Bod bod) {
                return vzdialenostK(bod.getX(), bod.getY());
        }

        public void posunO(double dx, double dy) {
                nastav(getX() + dx, getY() + dy);
        }

        public Bod posunutyBod(double dx, double dy) {
                return new Bod(getX() + dx, getY() + dy);
        }

}
package sk.upjs.paz1a.cvicenie9;

import java.awt.geom.NoninvertibleTransformException;
import java.util.Arrays;

public class ZoznamBodov {

        private Bod[] body;

        public ZoznamBodov() {
                body = new Bod[0];
        }

        public int dlzka() {
                return body.length;
        }

        public void pridajBod(Bod bod) {
                Bod[] noveBody = Arrays.copyOf(body, body.length + 1);
                noveBody[noveBody.length - 1] = bod;
                body = noveBody;
        }

        public Bod dajBod(int index) {
                return body[index];
        }

        public void vymaz() {
                body = new Bod[0];
        }

        public double dlzkaSpojnic() {
                double sucet = 0;
                for (int i = 0; i < body.length - 1; i++) {
                        sucet += body[i].vzdialenostK(body[i + 1]);
                }
                return sucet;
        }

        public String toString() {
                StringBuilder sb = new StringBuilder();
                sb.append("[");
                for (int i = 0; i < body.length - 1; i++) {
                        sb.append(body[i].toString() + ", ");
                }
                if (body.length > 0) {
                        sb.append(body[body.length - 1].toString());
                }
                sb.append("]");
                return sb.toString();
        }

        public void odoberBod(int index) {
                if ((index < 0) || (index >= body.length)) {
                        return;
                }

                Bod[] noveBody = new Bod[body.length - 1];
                int zapisIdx = 0;
                for (int i = 0; i < body.length; i++) {
                        if (i != index) {
                                noveBody[zapisIdx] = body[i];
                                zapisIdx++;
                        }
                }

                body = noveBody;
        }
}