import java.util.Scanner;
public class Vector{
  double x = 0;
  double y = 0;
  
  public static void main(String args[]){
    System.out.println("Operaciones con vectores en el plano");
    Vector v1 = new Vector();
    System.out.print("\nVector 1: ");
    if(v1.leer()){
      return;
    }
    else{
      System.out.print("V1: ");
      v1.imprimir();
      for(int i=2;;++i){
        
        Vector v2 = new Vector(); 
        System.out.print("\nVector: "+i+": ");
        if (v2.leer()){
          return;
        }
        System.out.print("V"+i+": ");
        v2.imprimir();
        
        Vector v3 = v1.sumar(v2);
        System.out.print("\nV"+(i-1)+" + "+"V"+i+": ");
        v3.imprimir();
        
        v3 = v1.restar(v2);
        System.out.print("V"+(i-1)+" - "+"V"+i+": ");
        v3.imprimir();
        
        v3 = v2.restar(v1);
        System.out.print("V"+i+" - "+"V"+(i-1)+": ");
        v3.imprimir();
        
        v1 = v2;
      }}}
  
  public boolean leer(){
    Scanner teclado = new Scanner (System.in);
    x = teclado.nextDouble();
    y = teclado.nextDouble();
    return (x==0 && y==0);
  }
  
  public void imprimir(){
    System.out.println(this);
  }
  
  public String toString(){
    return String.format("(x,y) = (%,.2f , %,.2f); (r,A) = (%,.2f , %,.2f)"
                           , x, y, calcularMagnitud(), calcularAngulo());
  } 
  
  public double calcularMagnitud(){
    return Math.sqrt(x*x+y*y);
  }
  
  public double calcularAngulo(){
    return Math.atan2(y,x);
  }
  
  public Vector sumar(Vector otro){
    Vector resultado = new Vector();
    resultado.x = this.x+otro.x;
    resultado.y = this.y+otro.y;
    return resultado;
  }
  
  public Vector restar(Vector otro){
    Vector resultado = new Vector();
    resultado.x = this.x-otro.x;
    resultado.y = this.y-otro.y;
    return resultado;
  }
}