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 |
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; } } }
buen aporte
ResponderBorrarme sale qeu necesita main?? soy nuevo y no entiedo jeje
ResponderBorrarpublic 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.
BorrarComo lo hago, me puedes ayudar estoy aprendiendo
BorrarHola que tal me podrias ayudar con la programacion en html
ResponderBorrarsiiii caray
Borrarmuchas gracias me sirvió para trabajarlo en php
ResponderBorrar