MAB225 – Computação II – Aula 12/04/2011

MAB 225 - Computação II - Fabio Mascarenhas

Classe Contador (12/04/2011)

class Contador:
    def __init__(self, i=1):
        self.i = i
    def inc(self):
        self.i = self.i + 1
        return self.i
    def dec(self):
        self.i = self.i - 1
        return self.i
    def __add__(self, x):
        return Contador(self.i + x)
    def __sub__(self, x):
        return Contador(self.i - x)
    def __repr__(self):
        return "Valor do contador: %i" % self.i
    def __str__(self):
        return str(self.i)

Classe Lista (12/04/2011)

class Elemento:
    def __init__(self, val = None, prox = None):
        self.val = val
        self.prox = prox

class Lista:
    val = None
    def __init__(self, lp):
        for v in lp:
            self.append(v)
    def __len__(self):
        i = 0
        atual = self.val
        while atual != None:
            i = i + 1
            atual = atual.prox
        return i
    def append(self, v):
        elem = Elemento(v)
        if self.val == None:
            self.val = elem
            return
        atual = self.val
        while atual.prox != None:
            atual = atual.prox
        atual.prox = elem
    def get(self, i):
        e = self.elem(i)
        return e.val
    def elem(self, i):
        atual = self.val
        while i > 0:
            i = i - 1
            atual = atual.prox
        return atual
    def set(self, i, v):
        elem = self.elem(i)
        elem.val = v
    def __repr__(self):
        res = "["
        atual = self.val
        while atual != None:
            res = res + (atual.val).__repr__() + ", "
            atual = atual.prox
        res = res + "]"
        return res
    def __getitem__(self, i):
        return self.get(i)
    def __setitem__(self, i, v):
        self.set(i, v)
    def __mul__(self, x):
        lr = Lista([])
        for i in range(x):
            for j in range(len(self)):
                lr.append(self[j])
        return lr