IGeometrijskoTelo kvadrat = new Kvadrat(4);
Console.WriteLine(kvadrat.Obim());
Console.WriteLine(kvadrat.Povrsina());

IGeometrijskoTelo pravougaonik = new Pravougaonik(4, 3);
Console.WriteLine(pravougaonik.Obim());
Console.WriteLine(pravougaonik.Povrsina());

IGeometrijskoTelo krug = new Krug(4);
Console.WriteLine(krug.Obim());
Console.WriteLine(krug.Povrsina());

IGeometrijskoTelo trougao = new Trougao(4);
Console.WriteLine(trougao.Obim());
Console.WriteLine(trougao.Povrsina());

public interface IGeometrijskoTelo
{
    double Obim();
    double Povrsina();
}

public class Pravougaonik : IGeometrijskoTelo
{
    public Pravougaonik(int stranicaA, int stranicaB)
    {
        StranicaA = stranicaA;
        StranicaB = stranicaB;
    }
    public int StranicaA { get; set; }
    public int StranicaB { get; set; }
    public double Obim()
    {
        return 2 * (StranicaA + StranicaB);
    }
    public double Povrsina()
    {
        return StranicaA * StranicaB;
    }
}

public class Kvadrat : IGeometrijskoTelo
{
    public Kvadrat(int stranica)
    {
        Stranica = stranica;
    }
    public int Stranica { get; set; }
    public double Obim()
    {
        return 4 * Stranica;
    }
    public double Povrsina()
    {
        return Stranica * Stranica;
    }
}

public class Krug : IGeometrijskoTelo
{
    public Krug(int precnik)
    {
        Precnik = precnik;
    }
    public int Precnik { get; set; }
    public double Obim()
    {
        return 2 * (Precnik / 2) * Math.PI;
    }
    public double Povrsina()
    {
        return ((Precnik / 2) ^ 2) * Math.PI;
    }
}

public class Trougao : IGeometrijskoTelo
{
    public Trougao(int stranica)
    {
        Stranica = stranica;
    }
    public int Stranica { get; set; }

    public double Obim()
    {
        return Stranica * 3;
    }

    public double Povrsina()
    {
        double h = Stranica ^ 2 - (Stranica / 2) ^ 2;
        return h * Stranica;
    }
}



//2. zadatak
public abstract class Osoba
{
    public string Ime { get; set; }
    public string Prezime { get; set; }
    public char Pol { get; set; }
    public abstract void Opis();
}

public class Student : Osoba
{
    public string BrojIndeksa { get; set; }
    public int GodinaStudija { get; set; }

    public override void Opis()
    {
        Console.WriteLine($"Student: {Ime} {Prezime}");
    }
}
public class Profesor : Osoba
{
    public string Zvanje { get; set; }

    public override void Opis()
    {
        Console.WriteLine($"Profesor: {Zvanje} {Ime} {Prezime}");
    }
}