PDA

Visualizza la versione completa : [C++] Traduzione da JavaScript: controllo partita IVA


mirba
23-11-2005, 12:12
Ho trovato questo codice javascript che fa dei controlli su una partita iva. E dovrei tradurlo in c++. E non so n il javascript n il c++

Codice Javascript:


s = 0;
for( i = 0; i <= 9; i += 2 )
s += pi.charCodeAt(i) - '0'.charCodeAt(0);
for( i = 1; i <= 9; i += 2 ){
c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
if( c > 9 ) c = c - 9;
s += c;
}
if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) )
return "La partita IVA non valida:\n" +
"il codice di controllo non corrisponde.\n";
return '';


Questo quello che mi sono provata a tradurre da me, ma continua a segnarmi le partite ive come errate.



s = 0;
for( i=0; i<=9; i+=2 )
s += pi[i] - '0';

for( i=1; i<=9; i+=2 ){
c = 2*( pi[i] - '0' );
if( c > 9 ) c = c - 9;
s += c;
}

if( (10 - s%10)%10 != pi[i] - '0' )
return "La partita IVA non valida";
return "PIVA Corretta" ;


Qualcuno di voi programmatori riesce a capire cosa sto sbagliando?

mirba
23-11-2005, 13:09
forse ci sono...

sul javascript sono presenti due diverse funzioni:
pi.charAt(i) Restituisce il carattere in una posizione specifica
pi.charCodeAt(i) Restituisce il carattere (in formato Unicode) in una posizione specifica

io invece le ho tradote tutte e due come pi[i] ...

Ora mi resta da capire cosa devo mettere come traduzione di "charcodeat"

Qualche suggerimento? :stordita:

mirba
23-11-2005, 18:45
ok... alla fine ho risolto da sola....

Avevo sbagliato la riga:

if( (10 - s%10)%10 != pi[i] - '0' )

dovevo invece mettere:

if( (10 - s%10)%10 != pi[10 ] - '0' )

mezza giornata buttata via cos... :nonlodire

Loading