s2Eva_IT2008_T2 Validar cédula ecuatoriana

Ejercicio: 2Eva_IT2008_T2 Validar cédula ecuatoriana

Propuesta de solución en Python: py_pdf,
también en versión matlab: m_pdf

Resultado del algoritmo

>>> vcedula('0909407173')
1
>>> vcedula('0909407174')
0
>>> 

Instrucciones en Python

# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 2da Evaluación I Término 2008
# Tema 2. Validar cedula ecuatoriana
# Propuesta de solución: edelros@espol.edu.ec

def vcedula(texto):
    # sin ceros a la izquierda
    nocero = texto.strip("0")
    
    cedula = int(nocero,0)
    verificador = cedula%10
    numero = cedula//10
    
    # mientras tenga números
    suma = 0
    while (numero > 0):
        
        # posición impar
        posimpar = numero%10
        numero   = numero//10
        posimpar = 2*posimpar
        if (posimpar  > 9):
            posimpar = posimpar-9
        
        # posición par
        pospar = numero%10
        numero = numero//10
        
        suma = suma + posimpar + pospar
    
    decenasup = suma//10 + 1
    calculado = decenasup*10 - suma
    if (calculado  >= 10):
        calculado = calculado - 10

    if (calculado == verificador):
        validado = 1
    else:
        validado = 0
    return (validado)