A12

package sk.upjs.umv;

import java.util.List;

public class Zlomok {

        private int citatel;
        private int menovatel;

        public Zlomok(int citatel, int menovatel) {
                if (menovatel == 0) {
                        // NulovyMenovatelException v = new NulovyMenovatelException();
                        // throw v;
                        throw new NulovyMenovatelException();
                }
                this.citatel = citatel;
                this.menovatel = menovatel;
                vykrat();
        }

        /**
         * Vyrata sucet zlomkov.
         *
         * @param z1
         *            prvy scitanec
         * @param z2
         *            druhy scitanec
         * @return Zlomok reprezentujuci sucet scitancov.
         */

        public static Zlomok sucet(Zlomok z1, Zlomok z2) {
                int citatelSuctu = z1.getCitatel() * z2.getMenovatel()
                                + z2.getCitatel() * z1.getMenovatel();

                return new Zlomok(citatelSuctu, z1.getMenovatel() * z2.getMenovatel());
        }

        public static Zlomok sucet(List<Zlomok> zlomky) {
                Zlomok vysledok = new Zlomok(0, 1);
                for (Zlomok z: zlomky) {
                        vysledok = Zlomok.sucet(vysledok, z);
                }

                return vysledok;
        }

        private void vykrat() {
                int a = Math.abs(citatel);
                int b = Math.abs(menovatel);
                while (b > 0) {
                        int x = a % b;
                        a = b;
                        b = x;
                }

                citatel = citatel / a;
                menovatel = menovatel / a;

                if (menovatel < 0) {
                        menovatel = -menovatel;
                        citatel = -citatel;
                }
        }

        public int getCitatel() {
                return citatel;
        }

        public int getMenovatel() {
                return menovatel;
        }

        @Override
        public String toString() {
                return citatel + "/" + menovatel;
        }

        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + citatel;
                result = prime * result + menovatel;
                return result;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                Zlomok other = (Zlomok) obj;
                if (citatel != other.citatel)
                        return false;
                if (menovatel != other.menovatel)
                        return false;
                return true;
        }

}
package sk.upjs.umv;

public class NulovyMenovatelException extends RuntimeException {

        public NulovyMenovatelException() {
                super("Menovatel zlomku nemoze byt 0.");
        }

}
import java.util.ArrayList;
import java.util.List;

import sk.upjs.umv.Zlomok;


public class Spustac {

        /**
         * @param args
         */

        public static void main(String[] args) {
                Zlomok zlomok1 = new Zlomok(1, 3);
                Zlomok zlomok2 = new Zlomok(4, 9);
                Zlomok sucet = Zlomok.sucet(zlomok1, zlomok2);

                List<Zlomok> zoz = new ArrayList<>();
                for (int i=1; i<10; i++) {
                        zoz.add(new Zlomok(1, i));
                }

                System.out.println(Zlomok.sucet(zoz));

                System.out.println(sucet);
        }

}
public class Bod {

        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(double x, double y) {
                this.x = x;
                this.y = y;
        }

        public static Bod zPolarnychSuradnic(double r, double fi) {
                return new Bod(r * Math.cos(fi), r * Math.sin(fi));
        }

        public Bod() {
                this(0, 0);
        }

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

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

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

        public boolean rovnakeSuradnice(Bod bod) {
                return (bod.x == x) && (bod.y == y);
        }

        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.x, bod.y);
        }

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

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

public class Spustac {

        /**
         * @param args
         */

        public static void main(String[] args) {
                Bod b = Bod.zPolarnychSuradnic(30, Math.PI/2);
                System.out.println(b.getX() + ", " + b.getY());

                Bod b2 = new Bod();
                b2.setX(30);
                b2.setY(40);
                b2.nastav(30, 40);
                System.out.println(b2.toString());

                ZoznamBodov zb = new ZoznamBodov();
                zb.pridajBod(b);
                zb.pridajBod(new Bod(300, 200));
                zb.pridajBod(new Bod(100, 150));

                System.out.println(zb.toString());
        }

}