import java.util.Scanner;

public class TablasAritmeticas
{
  public static void main(String args[])
  {
    Scanner teclado = new Scanner(System.in);
    
    System.out.println("Operador [1=+ 2=- 3=* 4=/ 5=% 0=Salir ]");
    System.out.print("Opcion: ");
    int opcion = teclado.nextInt();
    
    boolean empezar = true;
    if (opcion == 0)
    {
      empezar = true;
    }
     
    else if (opcion != 0)
    {
      System.out.println("Ingrese el valor minimo");
      double minimo = teclado.nextDouble ();
      
      System.out.println("Ingrese el valor maximo");
      double maximo = teclado.nextDouble ();
      
      System.out.print("Incremento: ");
      double incremento = teclado.nextDouble();
      
      while (incremento <= 0)
      {
        System.out.println("Ingrese un incremento valido");
        System.out.print("Incremento: ");
        incremento = teclado.nextDouble();
      }
      
      while (minimo > maximo)
      {          System.out.println("Ingrese los valores correctamente");
          System.out.println("Ingrese el valor minimo");
      minimo = teclado.nextDouble ();
      
      System.out.println("Ingrese el valor maximo");
      maximo = teclado.nextDouble ();
      
      System.out.print("Incremento: ");
      incremento = teclado.nextDouble();
      }
      
      
      
      switch (opcion)
      {
        case 1:
          System.out.println("Minimo: " + minimo);
          System.out.println("Maximo: " + maximo);
          System.out.println("Incremento: " + incremento);
          
          System.out.print("+  |");
          for (double n = minimo; n<=maximo; n =n+incremento)
          {
            
            System.out.print(n + " ");
            
          }
          
          System.out.println();
          
           for (double i = minimo; i<=maximo; i = i+incremento)
          {
            
            System.out.print("---------");
            
          }
          
          System.out.println();
          
          
          for(double columna = minimo; columna <= maximo; columna = columna + incremento)
          {
            System.out.print(columna + "| ");
            for (double fila = minimo; fila <= maximo; fila = fila + incremento)
              
              System.out.print((columna + fila) + " ");
            System.out.println();
             
          }
          
          break;
          
          
        case 2:
          System.out.println("Minimo: " + minimo);
          System.out.println("Maximo: " + maximo);
          System.out.println("Incremento: " + incremento);
          
          System.out.print("- |");
          for (double n = minimo; n<=maximo; n =n+incremento)
          {
            
            System.out.print(n + " ");
            
          }
          System.out.println();
          
           for (double i = minimo; i<=maximo; i = i+incremento)
          {
            
            System.out.print("---------");
            
          }
          
          System.out.println();
          
          
          for(double columna = minimo; columna <= maximo; columna = columna + incremento)
          {
            System.out.print(columna + "| ");
            for (double fila = minimo; fila <= maximo; fila = fila + incremento)
              
              System.out.print((columna - fila) + " ");
            System.out.println();
          }
          
          break;
          
        case 3:
          System.out.println("Minimo: " + minimo);
          System.out.println("Maximo: " + maximo);
          System.out.println("Incremento: " + incremento);
          
          System.out.print("* |");
          
          for (double n = minimo; n<=maximo; n =n+incremento)
          {
            
            System.out.print(n + " ");
            
          }
          System.out.println();
          
           for (double i = minimo; i<=maximo; i = i+incremento)
          {
            
            System.out.print("---------");
            
          }
          
          System.out.println();
          
          
          for(double columna = minimo; columna <= maximo; columna = columna + incremento)
          {
            System.out.print(columna + "| ");
            for (double fila = minimo; fila <= maximo; fila = fila + incremento)
              
              System.out.print((fila * columna) + " ");
            System.out.println();
          } 
          break;
          
        case 4:
          System.out.println("Minimo: " + minimo);
          System.out.println("Maximo: " + maximo);
          System.out.println("Incremento: " + incremento);
          
          System.out.print("/ | ");
          for (double n = minimo; n<=maximo; n =n+incremento)
          {
            
            System.out.print(n + " ");
            
          }
          System.out.println();
          
           for (double i = minimo; i<=maximo; i = i+incremento)
          {
            
            System.out.print("---------");
            
          }
          
          System.out.println();
          
          
          for(double columna = minimo; columna <= maximo; columna = columna + incremento)
          {
            System.out.print(columna + "|");
            for (double fila = minimo; fila <= maximo; fila = fila + incremento)
              
              System.out.print((columna / fila) + " ");
            System.out.println();
            
          }
          break;
        case 5:
          System.out.println("Minimo: " + minimo);
          System.out.println("Maximo: " + maximo);
          System.out.println("Incremento: " + incremento);
          
          System.out.print("% |");
          for (double n = minimo; n<=maximo; n =n+incremento)
          {
            
            System.out.print(n + " ");
            
          }
          System.out.println();
          
           for (double i = minimo; i<=maximo; i = i+incremento)
          {
            
            System.out.print("---------");
            
          }
          
          System.out.println();
            
          
          for(double columna = minimo; columna <= maximo; columna = columna + incremento)
          {
            System.out.print(columna + "| ");
            for (double fila = minimo; fila <= maximo; fila = fila + incremento)
              
              System.out.print((columna % fila) + " ");
            System.out.println();
            
          }
      }
    }
  }
} 


