Ejercicios de Funciones
Condições de conclusão
10. ISO/IEC 7064, MOD 11,10
10.1. Versión para enteros
/*
* programa para calcular la cifra de verificación según ISO/IEC 7064, MOD 11,10
*
* Ing. Germán Andrés Xander 2022
*/
#include <iostream>
using namespace std;
int main(int argc, char **argv){
int numero, parcial, longitud=0, producto=10, suma=0, digito, verificador;
cout<<"ingrese el número a evaluar"<<endl;
cin>>numero;
parcial=numero;
while (parcial>0) { //cuento la cantidad de dígitos
parcial= parcial/10;
longitud ++;
}
cout<<"la lungitud es: "<<longitud<<endl;
parcial=numero;
for (int i=longitud;i>0;i--){
int divisor=1;
for (int j=1;j<i; j++){
divisor=divisor*10; // genero el divisor para aislar el digito
}
cout<<"el divisor es "<<divisor<<endl;
digito=(parcial/divisor);
parcial=parcial-(digito*divisor);
cout<<"el digito es: "<<digito<<endl; //aislo el dígito correspondiente
suma= (digito + producto) % 10;
if (suma == 0) suma=10;
producto=(suma * 2) % 11;
}
verificador= 11 - producto;
if (verificador == 10) verificador = 0;
// para verificar la suam final tiene que ser 1
cout<<"el digito de verificacion es: "<<verificador<<endl;
cout<<"la suma es: "<<suma;
return 0;
}