#!/usr/bin/env python ############################################################################### # Vectores n-dimensionales # Modulo que define funciones de lectura/escritura y de operaciones entre una # pareja de vectores n-dimensionales. # Copyright (C) %Y Juan Riquelme a.k.a Soulchainer (J.R.G) # ############################################################################### from math import sqrt # Funciones de entrada/salida def v_lee_vector(n): """ Devuelve un vector (de longitud n) leído de teclado que se pide al usuario. """ if n >= 0: vector = [] for i in range(n): vector.append(float(input('Coordenada %d del vector: ' % i))) return vector def v_muestra_vector(v): """ Muestra por pantalla el vector v con la notación (a, b, c, ..., n). No devuelve nada. """ print('({0})'.format(('{0}'.format(v))[1:-1])) # Funciones de cálculo def v_longitud(v): """ Devuelve la longitud del vector v """ if not v: return None else: return sqrt(sum([i ** 2 for i in v])) def v_suma(u, v): """ Devuelve el vector resultante de sumar los vectores u y v. Deben ser vectores de la misma dimensión. Sino, devolverá None. """ dimension = len(u) if len(v) == dimension: return [u[i] + v[i] for i in range(len(u))] return None def v_producto_escalar(u, v): """ Devuelve el escalar resultante del producto escalar de u por v. Deben ser vectores de la misma dimensión. Sino, devolverá None. """ if not u or not v: return [] dimension = len(u) if len(v) == dimension: escalar = 0 for i in range(dimension): escalar += u[i] * v[i] return escalar return None