A12

package sk.upjs.paz;

import java.util.*;

public class UzitocneMetody {

        public static double sucetZoznamu(List<Double> zoznam) {
                if ((zoznam == null) || (zoznam.size() == 0))
                        throw new ZoznamPrazdnyException();

                double sucet = 0;
                for (Double cislo : zoznam)
                        sucet += cislo;

                return sucet;
        }

        public static List<Double> poleStringovNaListDoublov(String[] pole)
                        throws NepodariloSaVsetkoSkonvertovatException {
                List<Double> listDoublov = new ArrayList<Double>();
                for (int i = 0; i < pole.length; i++) {
                        try {
                                listDoublov.add(Double.parseDouble(pole[i]));
                        } catch (NumberFormatException e) {
                                throw new NepodariloSaVsetkoSkonvertovatException();
                        }

                }
                return listDoublov;
        }

}
package sk.upjs.paz;

public class ZoznamPrazdnyException extends RuntimeException {

        public ZoznamPrazdnyException() {
                // TODO Auto-generated constructor stub
        }

        public ZoznamPrazdnyException(String arg0) {
                super(arg0);
                // TODO Auto-generated constructor stub
        }

        public ZoznamPrazdnyException(Throwable arg0) {
                super(arg0);
                // TODO Auto-generated constructor stub
        }

        public ZoznamPrazdnyException(String arg0, Throwable arg1) {
                super(arg0, arg1);
                // TODO Auto-generated constructor stub
        }

        public ZoznamPrazdnyException(String arg0, Throwable arg1, boolean arg2,
                        boolean arg3) {
                super(arg0, arg1, arg2, arg3);
                // TODO Auto-generated constructor stub
        }

}
package sk.upjs.paz;

public class NepodariloSaVsetkoSkonvertovatException extends Exception {

        public NepodariloSaVsetkoSkonvertovatException() {
                // TODO Auto-generated constructor stub
        }

        public NepodariloSaVsetkoSkonvertovatException(String arg0) {
                super(arg0);
                // TODO Auto-generated constructor stub
        }

        public NepodariloSaVsetkoSkonvertovatException(Throwable arg0) {
                super(arg0);
                // TODO Auto-generated constructor stub
        }

        public NepodariloSaVsetkoSkonvertovatException(String arg0, Throwable arg1) {
                super(arg0, arg1);
                // TODO Auto-generated constructor stub
        }

        public NepodariloSaVsetkoSkonvertovatException(String arg0, Throwable arg1,
                        boolean arg2, boolean arg3) {
                super(arg0, arg1, arg2, arg3);
                // TODO Auto-generated constructor stub
        }

}
package sk.upjs.paz;

import java.util.*;

public class Spustac {

        /**
         * @param args
         */

        public static void main(String[] args) {
                List<Double> cisla = new ArrayList<Double>();
                cisla.add(10.0);
                cisla.add(12.0);

                System.out.println(UzitocneMetody.sucetZoznamu(cisla));

                // String[] stringy = { "10.5", "6.34", "-344.5" };
                try {
                        System.out.println(UzitocneMetody.poleStringovNaListDoublov(args));
                        System.out.println(UzitocneMetody.sucetZoznamu(UzitocneMetody
                                        .poleStringovNaListDoublov(args)));
                } catch (NepodariloSaVsetkoSkonvertovatException e) {
                        System.err.println("Boli zadane zle cisla.");
                }
        }

}

public class Bod {

        private double x;
        private double y;

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

        public double getX() {
                return x;
        }

        public double getY() {
                return y;
        }

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

public class Spustac {

        /**
         * @param args
         */

        public static void main(String[] args) {
                Bod b = new Bod(100, 100);
                Bod b2 = Bod.zPolarnych(10, Math.PI);
                System.out.println(b2.getX() + " " + b2.getY());
        }
}
package sk.upjs.umv;

import java.util.List;

public class Zlomok {
        private int citatel;
        private int menovatel;

        public static final Zlomok POLOVICA = new Zlomok(1, 2);

        public Zlomok(int citatel, int menovatel) {

                this.citatel = citatel;
                if (menovatel != 0) {
                        if (menovatel < 0) {
                                this.menovatel = Math.abs(menovatel);
                                this.citatel = (-1) * citatel;
                        } else
                                this.menovatel = menovatel;
                } else
                        throw new RuntimeException();

        }

        public int getCitatel() {
                return citatel;
        }

        public int getMenovatel() {
                return menovatel;
        }

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

        @Override
        public boolean equals(Object obj) {
                if (obj == null)
                        return false;

                if (obj == this)
                        return true;

                if (!(obj instanceof Zlomok))
                        return false;

                Zlomok zlomok2 = (Zlomok) obj;

                return (this.citatel * zlomok2.menovatel == zlomok2.citatel
                                * this.menovatel);
        }

        @Override
        public int hashCode() {
                return 0;
        }

        public Zlomok pripocitaj(Zlomok z) {
                return new Zlomok(this.citatel * z.menovatel + z.citatel
                                * this.menovatel, this.menovatel * z.menovatel);
        }

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

        public static Zlomok naZakladnyTvar(Zlomok z) {
                int citatel = z.citatel;
                z.citatel = z.citatel / z.NSD(z.citatel, z.menovatel);
                z.menovatel = z.menovatel / z.NSD(citatel, z.menovatel);

                return z;
        }

        /**
         * vráti najväčšieho spoločného deliteľa čísel a a b
         */

        public static int NSD(int a, int b) {
                a = Math.abs(a);
                b = Math.abs(b);
                // budeme hladat euklidovym algoritmom a nastavime cisla tak aby A bolo
                // vecsie ako B ak nie je
                if (a < b) {
                        a = a + b;
                        b = a - b;
                        a = a - b;
                }
                // opatrenie proti nepriatelom
                if (b == 0) {
                        return a;
                }

                // budeme potrebovat pomocnu premennu, lebo na konci cyklu budeme
                // ukladat aj do acka aj do becka nejaky vyraz pricom ked najprv ulozim
                // do acka vyraz, tak potom do becka bez pomocnej premennej budem mat
                // problem ulozit spravnu hodnotu lebo sme zmenili uz acko
                int pomCislo = 1;

                while (b != 0) {
                        /*
                         * strategia: mame dve cisla, vecsie cislo z nich si rozpiseme na
                         * (kolkokrat sa celociselne nachadza mensie cislo vo vecsom) *
                         * (mensie cislo) + (zvysok po deleni velkeho a maleho) toto budeme
                         * opakovat dovtedy, dokym (zvysok po deleni velkeho a maleho) != 0
                         * po kazdej iteracii cyklu budeme mat nove cislo 'a' a nove cislo
                         * 'b' cislo 'a'=((a) - (zvysok po deleni a/druhe cislo)) / (a /
                         * druhe cislo) cislo 'b'=(a % b)
                         */


                        pomCislo = a % b;
                        a = (a - a % b) / (a / b);
                        b = pomCislo;
                }
                return a;
        }
}