Riešenia (skupina A, 8. týždeň)

public class Bod {

        private double x;
        private double y;

        public Bod(double x, double yy) {
                // super(); <- ak nie je, Java prida
                this.x = x;
                y = yy;
        }

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

        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 String toString() {
                return "[" + x + ", " + y + "]";
        }

        public void nastav(double x, double y) {
                this.x = x; // this.setX(x)
                this.y = y; // this.setY(y)
        }

        public void nastav(Bod bod) {
                this.x = bod.getX();
                this.y = bod.getY();
        }

        public boolean rovnakeSuradnice(Bod bod) {
                if (bod != null) {
                        return ((x == bod.getX()) && (y == bod.getY()));
                } else {
                        return false;
                }
        }

        public void posunO(double dx, double dy) {
                x = x + dx; // setX(x+dx);
                y = y + dy; // setY(y+dy);
        }

        public Bod posunutyBod(double dx, double dy) {
                Bod b = new Bod(x+dx, y+dy);
                return b;
                // Bod b = new Bod();
                // b.nastav(this);
                // b.posunO(dx, dy);
                // return b;
        }
}
public class ZoznamBodov {

        private Bod[] body;

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

        public void pridajBod(Bod bod) {
                Bod[] nBody = new Bod[body.length + 1];
                System.arraycopy(body, 0, nBody, 0, body.length);
                nBody[nBody.length-1] = bod;
                body = nBody;
        }

}
import sk.upjs.jpaz2.ObjectInspector;


public class Spustac {

        /**
         * @param args
         */

        public static void main(String[] args) {
                ObjectInspector oi = new ObjectInspector();

                Bod b = new Bod(30, 100);
                Bod b2 = new Bod();
                //b2.nastav(b.getX(), b.getY());
                b2.nastav(b);

                System.out.println(b2 == b);
                System.out.println(b.rovnakeSuradnice(b2));

                b2 = b.posunutyBod(50, 50);

                System.out.println(b + " " + b2);

                oi.inspect(b);
        }

}

public class Bod {

        private double x;
        private double y;

        public Bod(double x, double yy) {
                // super(); <- ak nie je, Java prida
                this.x = x;
                y = yy;
        }

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

        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 String toString() {
                return "[" + x + ", " + y + "]";
        }

        public void nastav(double x, double y) {
                this.x = x; // this.setX(x)
                this.y = y; // this.setY(y)
        }

        public void nastav(Bod bod) {
                this.x = bod.getX();
                this.y = bod.getY();
        }

        public boolean rovnakeSuradnice(Bod bod) {
                if (bod != null) {
                        return ((x == bod.getX()) && (y == bod.getY()));
                } else {
                        return false;
                }
        }

        public void posunO(double dx, double dy) {
                x = x + dx; // setX(x+dx);
                y = y + dy; // setY(y+dy);
        }

        public Bod posunutyBod(double dx, double dy) {
                Bod b = new Bod(x + dx, y + dy);
                return b;
                // Bod b = new Bod();
                // b.nastav(this);
                // b.posunO(dx, dy);
                // return b;
        }

        public double vzdialenostK(double x, double y) {
                return Math.sqrt((this.x - x) * (this.x - x) + (this.y - y)
                                * (this.y - y));
        }

        public double vzdialenostK(Bod bod) {
                return vzdialenostK(bod.getX(), bod.getY());
        }
}
import java.util.Arrays;

public class ZoznamBodov {

        private Bod[] body;

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

        public void pridajBod(Bod bod) {
                Bod[] nBody = new Bod[body.length + 1];
                System.arraycopy(body, 0, nBody, 0, body.length);
                nBody[nBody.length - 1] = bod;
                body = nBody;
        }

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

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

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

        public double dlzkaSpojnic() {
                double celkovaDlzka = 0;

                for (int i = 0; i < body.length - 1; i++) {
                        celkovaDlzka = celkovaDlzka + body[i].vzdialenostK(body[i + 1]);
                }

                return celkovaDlzka;
        }

        public String toString() {
                return Arrays.toString(body);
        }

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

                Bod[] nBody = new Bod[body.length - 1];
                System.arraycopy(body, 0, nBody, 0, index);
                System.arraycopy(body, index + 1, nBody, index, body.length - index - 1);
                body = nBody;
        }
}
import sk.upjs.jpaz2.ObjectInspector;

public class Spustac {

        /**
         * @param args
         */

        public static void main(String[] args) {
                ObjectInspector oi = new ObjectInspector();

                ZoznamBodov zoznam = new ZoznamBodov();
                zoznam.pridajBod(new Bod(100, 100));
                zoznam.pridajBod(new Bod(200, 100));
                zoznam.pridajBod(new Bod(200, 200));
                zoznam.pridajBod(new Bod(100, 200));
                oi.inspect(zoznam);

                KurzovyListok kl = new KurzovyListok();
                kl.nastavKurz("USD", 0.999);
                kl.nastavKurz("CZK", 25.422);
                System.out.println(kl.vratKurz("CZK"));
        }

}
public class KurzovyListok {

        private String[] meny;
        private double[] kurzy;

        public KurzovyListok() {
                meny = new String[0];
                kurzy = new double[0];
        }

        public int indexMeny(String kodMeny) {
                for (int i = 0; i < meny.length; i++)
                        if (meny[i].equals(kodMeny))
                                return i;

                return -1;
        }

        public void nastavKurz(String kodMeny, double kurz) {
                int idxMeny = indexMeny(kodMeny);
                if (idxMeny >= 0) {
                        kurzy[idxMeny] = kurz;
                } else {
                        String[] nMeny = new String[meny.length + 1];
                        System.arraycopy(meny, 0, nMeny, 0, meny.length);
                        nMeny[nMeny.length - 1] = kodMeny;
                        meny = nMeny;

                        double[] nKurzy = new double[kurzy.length + 1];
                        System.arraycopy(kurzy, 0, nKurzy, 0, kurzy.length);
                        nKurzy[nKurzy.length - 1] = kurz;
                        kurzy = nKurzy;
                }
        }

        public double vratKurz(String kodMeny) {
                int idxMeny = indexMeny(kodMeny);
                return kurzy[idxMeny];
        }
}