domingo, 5 de mayo de 2013

Validar Cédula Ecuatoriana (Java)



El siguiente algoritmo es útil a la hora de validar la cédula ecuatoriana, en base a la forma manual de hacerlo es decir:

-El décimo dígito es el resultante de un cálculo y el dígito verificador
- Se trabaja con los 9 dígitos de la cédula.
- Cada dígito de posición impar se lo multiplica por dos, si este resultado es mayor que nueve se resta nueve.
-Cada dígito de posición par se lo multiplica por uno
- Se suman todos los resultados
- Este resultado se resta de la decena inmediata superior.
- El resultado anterior debe ser el décimo dígito.
- Si la suma resulta 10, el décimo dígito es cero.





ejemplo
0 7 0 4 1 6 3 5 7 5
* * * * * * * * *
2 1 2 1 2 1 2 1 2
________________
0 7 0 4 2 6 6 5 5
|_____________| se suma el resultado de multiplicar esto es = 35
Este resultado se resta de la decena inmediata superior es decir 35 - 40 = 5
este 5 debe ser el ultimo dígito de la cédula por lo que se verifica que la cédula es correcta
A continuación el algoritmo en java

public class algoritmo {
  public static boolean valida(String x){
    int suma=0;
    if(x.length()==9){
      System.out.println("Ingrese su cedula de 10 digitos");
      return false;
    }else{
      int a[]=new int [x.length()/2];
      int b[]=new int [(x.length()/2)];
      int c=0;
      int d=1;
      for (int i = 0; i < x.length()/2; i++) {
        a[i]=Integer.parseInt(String.valueOf(x.charAt(c)));
        c=c+2;
        if (i < (x.length()/2)-1) {
          b[i]=Integer.parseInt(String.valueOf(x.charAt(d)));
          d=d+2;
        }
      }
   
      for (int i = 0; i < a.length; i++) {
        a[i]=a[i]*2;
        if (a[i] >9){
          a[i]=a[i]-9;
        }
        suma=suma+a[i]+b[i];
      } 
      int aux=suma/10;
      int dec=(aux+1)*10;
      if ((dec - suma) == Integer.parseInt(String.valueOf(x.charAt(x.length()-1))))
        return true;
      else
        if(suma%10==0 && x.charAt(x.length()-1)=='0'){
          return true;
        }else{
          return false;
        }
    
  }
}

6 comentarios:

  1. me sale qeu necesita main?? soy nuevo y no entiedo jeje

    ResponderEliminar
    Respuestas
    1. public static boolean valida(String x) Es el método general, si quieres usarlo crea el metodo main para ejecutar la clase y ahi llamas el metodo.

      Eliminar
    2. Como lo hago, me puedes ayudar estoy aprendiendo

      Eliminar
  2. Hola que tal me podrias ayudar con la programacion en html

    ResponderEliminar
  3. muchas gracias me sirvió para trabajarlo en php

    ResponderEliminar