This commit is contained in:
Gašper Dobrovoljc 2024-05-09 20:42:15 +02:00
parent 8f40ed195b
commit 275cb8559d
No known key found for this signature in database
GPG Key ID: 0E7E037018CFA5A5

82
src/DN08.java Normal file
View File

@ -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;
}
}