#!/usr/bin/python
# -*- coding: utf-8 -*-

""" Bosquejo de un programa para manipular Vectores
      Autor: Antonio Carrillo Ledesma
"""


class Vector:
    def __init__(self, coef):
        """Cosntructor de la clase"""
        self.Col = len(coef)
        self.V = []
        # Crea el vector
        self.V = [0] * self.Col
        # Llena vector
        for i in range(self.Col):
            self.V[i] = coef[i]

    def __str__(self):
        """Visualiza el vector"""
        r = ""
        for i in range(self.Col):
            r += str(self.V[i]) + " "
        return r

    def visualiza(self):
        """Visualiza el vector"""
        print(self)

    def __add__(self, b):
        """Suma"""
        C = []
        # Crea vector
        C = [0] * self.Col
        # Suma
        for i in range(self.Col):
            C[i] = self.V[i] + b.V[i]
        return Vector(C)

    def suma(self, a, b):
        """Suma"""
        # Suma
        for i in range(self.Col):
            self.V[i] = a.V[i] + b.V[i]


"""
Prueba de las clases
"""
if __name__ == "__main__":
    a = Vector([1, 2, 3, 5])
    b = Vector([7, 7, 4, 2])
    c = Vector([0, 0, 0, 0])
    a.visualiza()
    b.visualiza()
    c = a + b
    c.visualiza()
    c.suma(a, b)
    c.visualiza()

    print("\n\n")
    a = Vector([1.0, 2.0, 3.0])
    b = Vector([7.0, 7.0, 4.0])
    c = Vector([0.0, 0.0, 0.0])
    a.visualiza()
    b.visualiza()
    c = a + b
    c.visualiza()
    c.suma(a, b)
    c.visualiza()

    print("\n\n")
    a = Vector([1.0 + 2.9j, 2 + 0j])
    b = Vector([7.0 + 1.0j, 7.0 + 3.4j])
    c = Vector([0 + 0j, 0 + 0j])
    a.visualiza()
    b.visualiza()
    c = a + b
    c.visualiza()
    c.suma(a, b)
    c.visualiza()