diff --git a/src/DN08.java b/src/DN08.java new file mode 100644 index 0000000..995ea9f --- /dev/null +++ b/src/DN08.java @@ -0,0 +1,82 @@ +public class DN08 { + static Lik[] liki; + + public static void main(String[] args) { + liki = new Lik[args.length]; + for (int i = 0; i < args.length; i++) { + String[] p = args[i].split(":"); + switch (p[0]) { + case "kvadrat": + liki[i] = new Kvadrat(Double.parseDouble(p[1])); + break; + case "pravokotnik": + liki[i] = new Pravokotnik( + Double.parseDouble(p[1]), + Double.parseDouble(p[2]) + ); + break; + case "nkotnik": + liki[i] = new NKotnik( + Integer.parseInt(p[1]), + Double.parseDouble(p[2]) + ); + break; + } + } + System.out.println((int) skupniObseg()); + } + + static double skupniObseg() { + double obseg = 0; + for (Lik lik : liki) { + obseg += lik.obseg(); + } + return obseg; + } +} + +abstract class Lik { + abstract public double obseg(); +} + +class Pravokotnik extends Lik { + double visina, sirina; + + Pravokotnik(double visina, double sirina) { + this.visina = visina; + this.sirina = sirina; + } + + @Override + public double obseg() { + return 2 * visina + 2 * sirina; + } +} + +class Kvadrat extends Lik { + double sirina; + + Kvadrat(double sirina) { + this.sirina = sirina; + } + + @Override + public double obseg() { + return 4 * sirina; + } +} + +class NKotnik extends Lik { + int koti; + double dolzinaStranice; + + NKotnik(int koti, double dolzinaStranice) { + this.koti = koti; + this.dolzinaStranice = dolzinaStranice; + } + + @Override + public double obseg() { + return koti * dolzinaStranice; + } +} \ No newline at end of file