import java.util.Scanner;
public class TablasOperadores
{
  public static void main(String[] args)
  { 
    Scanner teclado = new Scanner(System.in);
    System.out.println("Tablas de operadores");
    System.out.println();
    int operador = -1;
    
    do
    {
      System.out.println();
      System.out.print("Operador [1= +,2= -,3= *,4= /,5= %,0= salir]: ");
      operador = teclado.nextInt();
      
      if (operador == 0)
        break;
      
      System.out.print("Valor minimo: ");
      double min = teclado.nextDouble();
      
      System.out.print("Valor maximo: ");
      double max = teclado.nextDouble();
      
      System.out.print("Incremento: ");
      double incremento = teclado.nextDouble();
      
      while (incremento <= 0)
      {
        System.out.print("Incremento: ");
        incremento = teclado.nextDouble();
      }
      
      int contador = 1;
      
      switch (operador)
      {
        case 1:
          System.out.println();
          System.out.print("  +  |");
          
          for (double xi = min; xi <= max; xi = xi + incremento)
          {
            System.out.printf(" %6.1f ", xi);
            contador = contador + 1;
          }
          
          System.out.println();
          
          for (int guion = 1; guion <= contador; guion++)
            System.out.print("--------");
          
          System.out.println();
          
          for (double i = min; i <= max; i = i + incremento)
          {
            if(i <= max)
              System.out.printf("%4.1f |",i);
            
            for (double j = min; j <= max; j = j + incremento)
            {
              System.out.printf(" %6.1f ",(i+j));
            }
            System.out.println();
          }
          break;
          
        case 2:
          System.out.println();
          System.out.print("  -  |");
          
          for (double xi = min; xi <= max; xi = xi + incremento)
          {
            System.out.printf(" %6.1f ", xi);
            contador = contador + 1;
          }
          
          System.out.println();
          
          for (int guion = 1; guion <= contador; guion++)
            System.out.print("--------");
          
          System.out.println();
          
          for (double i = min; i <= max; i = i + incremento)
          {
            if(i <= max)
              System.out.printf("%4.1f |", i);
            
            for (double j = min; j <= max; j = j + incremento)
            {
              System.out.printf(" %6.1f ",(i-j));
            }
            System.out.println();
          }
          break;
          
        case 3:
          System.out.println();
          System.out.print("  *  |");
          
          for (double xi = min; xi <= max; xi = xi + incremento)
          {
            System.out.printf(" %6.1f ", xi);
            contador = contador + 1;
          }
          
          System.out.println();
          
          for (int guion = 1; guion <= contador; guion++)
            System.out.print("--------");
          
          System.out.println();
          
          
          for (double i = min; i <= max; i = i + incremento)
          {
            if(i <= max)
              System.out.printf("%4.1f |", i);
            
            for (double j = min; j <= max; j = j + incremento)
            {
              System.out.printf(" %6.1f ",(i*j));
            }
            System.out.println();
          }
          break;
          
        case 4:
          System.out.println();
          System.out.print("  /  |");
          
          for (double xi = min; xi <= max; xi = xi + incremento)
          {
            System.out.printf(" %6.1f ", xi);
            contador = contador + 1;
          }
          
          System.out.println();
          
          for (int guion = 1; guion <= contador; guion++)
            System.out.print("--------");
          
          System.out.println();
          
          
          for (double i = min; i <= max; i = i + incremento)
          {
            if(i <= max)
              System.out.printf("%4.1f |", i);
            
            for (double j = min; j <= max; j = j + incremento)
            {
              System.out.printf(" %6.1f ",(i/j));
            }
            System.out.println();
          }
          break;
          
        case 5:
          System.out.println();
          System.out.print("  %  |");
          
          for (double xi = min; xi <= max; xi = xi + incremento)
          {
            System.out.printf(" %6.1f ", xi);
            contador = contador + 1;
          }
          
          System.out.println();
          
          for (int guion = 1; guion <= contador; guion++)
            System.out.print("--------");
          
          System.out.println();
          
          
          for (double i = min; i <= max; i = i + incremento)
          {
            if(i <= max)
              System.out.printf("%4.1f |", i);
            
            for (double j = min; j <= max; j = j + incremento)
            {
              System.out.printf(" %6.1f ",(i%j));
            }
            System.out.println();
          }
          break;
          
          
      }
      
      
    }
    while (operador != 0);
  }
  
  
  
}
