Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [c++] traduzione da javascript

    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:
    codice:
      
          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.

    codice:
      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?

  2. #2
    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?

  3. #3
    ok... alla fine ho risolto da sola....

    Avevo sbagliato la riga:
    codice:
     if( (10 - s%10)%10 != pi[i] - '0' )
    dovevo invece mettere:
    codice:
     if( (10 - s%10)%10 != pi[10 ] - '0' )
    mezza giornata buttata via così...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.