/*Codigo de slider */

jueves, 10 de noviembre de 2011

Palíndromo

/*
 * Programa Elaborado para la Clase de Fundamentos de Programacion
 * M.C.Adrián Morales Gálvez
 * Fecha: 09-Noviembre-2011
 */
package palindromo;
import java.util.*;

/**
 * Instituto Tecnológico de Acapulco
 * Se utiliza dos tipos de datos no primitivos, o mejor dicho de tipo String
 * utilizando un metodo de la clase String llamado:
 *                  toCharArray()  // que se utiliza para convertir la cadena en un Arreglo de tipo caracter
 *                  y posteriormente se pasan los caracteres de manera invertida a otro arreglo de tipo char
 *                  y por ultimo se copian los caracteres a la cad2 para compararla con la cadena de entrada opc
*                   utilizando el metodo equals  para comprobar si son iguales.
 */
public class Palindromo
{
  String opc = new String();
  String cad2 = new String();  
  static Scanner Lee = new Scanner(System.in);
   
    void Forma1_palindromo()
    {
          System.out.println("\n\n******** FORMA 1 PALINDROMO **********");
          System.out.print("\nEscribe la cadena a Comprobar : ");
          opc= Lee.next();
         
          int j= opc.length()-1;
          cad2="";      
          for(int i=0;i<=j;i++)
          {
             cad2=cad2+opc.charAt(j-i); //copia el ultimo caracter de la cadena opc ala cad2 y asi sucesivamente...
          }        
         if(opc.equals(cad2))           // Compara la cadena opc con la cadena cad2, si son iguales imprime es un palindromo
          {
              System.out.println(" Es un palindromo");
          }
          else
          System.out.println(" No es un palindromo..");                
    }
    void Forma2_palindromo()
    {        
          System.out.println("\n\n******** FORMA 2 PALINDROMO **********");
          System.out.print("\nEscribe la cadena a Comprobar : ");
          opc= Lee.next();
         
          int j= opc.length()-1;
          char A[] = new char[j+1];  // Se declara un arreglo A de tipo char, y de tamaño j+1
          char B[] = new char[j+1];  // Se declara un arreglo B de tipo char, y de tamaño j+1
         
          A=opc.toCharArray();       // Se convierte en un Arreglo de caracteres la cadena opc y se pasa al Arreglo A;
          for(int i=0;i<=j;i++)
          {
            //A[i]=opc.charAt(i); // Se pasan los caracteres de la cadena (opc) al arreglo de tipo char  A[]
            B[i] =A[j-i];       // Se invierte el orden de caracteres a otro arreglo de tipo char B[]
          }
          int ban=0;   // Se declara una variable de tipo entera para utilizarla en la comparacion de los arreglos A y B        
          for(int i=0;i<j;i++)
          {if(A[i]==B[i])   // Se compara cada uno de los dos caracteres de los arreglos A[] y B[] de tipo caracter
              { ban++;
              }            
          }        
          if(ban==opc.length()-1) // Significa que todos los caracteres son iguales en los dos Arreglos y por ende entonces la cadana
          {                       // de entrada (opc) es un palindromo
              System.out.println(" Es un palindromo");
          }
          else
          System.out.println(" No es un palindromo..");    
    }
   
    // Con la palabra static, puede ser llamado el metodo mensaje desde el metodo main, sin necesidad de ser instanciada por
    // un objeto...
    static void Mensaje(String m)
    {
        System.out.print(m);
    }
    public static void main(String[] args)
    {
      Palindromo obj = new Palindromo();
      int opc;
     
      do{
         Mensaje("\n\n***********MENU PRINCIPAL DEL PROGRAMA********");
         Mensaje("\n1. Forma 1 de Comprobar si la palabra es un PALINDROMO");
         Mensaje("\n2. Forma 2 de Comprobar si la palabra es un PALINDROMO");
         Mensaje("\n3. Para salir..>> ");
         opc=Lee.nextInt();
       
         switch(opc)
         {
             case 1: obj.Forma1_palindromo();break;
             case 2: obj.Forma2_palindromo();break;
             case 3: break;
             default:
                 Mensaje("Opción no valida, escribe la opcion correcta, ok");
         }
        }while(opc!=3);  // Se repite mientras la variable opc sea diferente del numero 3
     
    }
}

No hay comentarios:

Publicar un comentario