From 275cb8559d4b17a506019db6a1a49c16bf1491fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C5=A1per=20Dobrovoljc?= Date: Thu, 9 May 2024 20:42:15 +0200 Subject: [PATCH] DN08 --- src/DN08.java | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/DN08.java 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