Objektinis programavimas
========================

class Taskas(object):

    def __init__(self, x, y):
        self.x = x
        self.y = y

class Staciakampis(object):

    def __init__(self, k1, k2):
         self.k1 = k1
         self.k2 = k2

    def plotas(self):
         return abs((self.k2.x - self.k1.x) * (self.k2.y - self.k1.y))

    def perimetras(self):
         return abs(self.k2.x - self.k1.x) * 2 + abs(self.k2.y - self.k1.y) * 2


class Kvadratas(Staciakampis):

    def __init__(self, centras, skersmuo):
        k1 = Taskas(centras.x - skersmuo/2.0, centras.y - skersmuo/2.0)
        k2 = Taskas(centras.x + skersmuo/2.0, centras.y + skersmuo/2.0)
	super(Kvadratas, self).__init__(k1, k2)


k = Kvadratas(Taskas(5, 5), 3)
print k.plotas()
print k.perimetras()


Užduotys:

1. Pridėti taškui metodą „atstumas“, kuris matuotų atstumą iki kito taško.
2. Pridėti stačiakampiui metodą „įstrižainė“.
3. Pridėti stačiakampiui metodus įbrėžto ir apibrėžto apskritimo spinduliui skaičiuoti.
4. Parašyti trikampio klasę, kuri skaičiuotų trikampio perimetrą ir plotą.

5. Patobulinti pavyzdinę VPython programą, kad paspaudus dešinįjį pelės mygtuką
objektas sumažėtų.
6. Įdėti daugiau pučiamų kamuolių į sceną.
7. Patobulinti programą taip, kad spragteltas kamuolys pašoktų į viršų ir vėl nusileistų.