Newsgroup: it.comp.lang.c
Titolo: COME SI CALCOLA IL CODICE FISCALE?

Come si calcola il codice fiscale?
traendolo ovviamente dal cognome,nome, sesso, luogo e data di nascita?
pol...@freemail.it

 wrote in message 85kea0$43f$1...@nslave1.tin.it...





L'algoritmo è il seguente:
Per il cognome:
1) Se contiene tre o più consonanti si prendono la prima, la seconda e la
terza consonante.
2) Se contiene meno di tre consonanti si prendono, oltre le consonanti anche
le vocali.
3) Se è formato da due lettere si prendono le due lettere e si aggiunge una
X
Per il nome:
1) Se contiene almeno quattro consonanti si prendono la prima, la seconda e
la quarta.
2) Se contiene tre consonanti si prendono la prima, la seconda e la terza.
Altrimenti come per il cognome.
Per la data di nascita 5 caratteri:
1) Ultime due cifre dell'anno
2) Una lettera per il mese secondo la seguente corrispondenza:
Gen = A      Mag = E        Set = P
Feb = B       Giu = H        Ott = R
Mar = C      Lug = L        Nov = S
Apr =D        Ago = M     Dic = T
3) Il giorno di nascita (per le donne: il giorno + 40)
Luogo di nascita:
Codice alfanumerico di 4 caratteri, bisogna avere il file con la
corrispondenza tra Comune di nascita e codice.(Vedere Direzione Generale del
Catasto)
P. es.: Brindisi = B180
(I comuni sono messi in ordine alfabetico ed il codice è A000, A001, A002,
etc..)
L'ultimo carattere è di controllo e viene generato in questo modo: a ciascun
carattere si associa un valore determinato a seconda che il carattere occupi
una posizione pari o dispari in modo diverso, si fa la somma di questi
valori e si divide per 26, si prende il resto (compreso tra 0 e 25) e gli si
associa la corrispondente lettera dell'alfabeto a 0 la A, ad 1 la B e così
via... a 25 la Z.
Per i caratteri di posto pari la corrispondenza è la seguente:
A o 0 --> 0
B o 1 --> 1
C o 2 --> 2
e così via...
Per i caratteri di posto dispari la corrispondenza è la seguente:
A o 0 --> 1        G o 6 --> 15     M     18           S      12
B o 1 --> 0        H o 7 --> 17     N      20          T       14
C o 2 --> 5        I o 8 --> 19      O      11           U      16
D o 3 --> 7        J o 9 --> 21      P         3          V      10
E o 4 --> 9        K       2             Q        6          W      22
F o 5 --> 13      L        4             R        8           X      25
Y  24                 Z  23
(Provare per credere!)
Io ho un programmino realizzato in Pascal per il calcolo del C.F. se ti
interessa ti posto il listato con il file dei Comuni zippato e poi ti
diverti a convertirlo in C, così me lo riposti..;-))
Ciao Luciano.
That's all folks!!

Ho il sorgente in visualbasic che si interfaccia con un db access.
Essendo moooolto documentato, è facile da convertire in c.
ciao 
Maurizio

 X
QUeste regole sono molto semplificate!!!
La terza e':
1 consonante e piu' vocali:
1° cons, 1° voc, 2° voc.
La quarta:
1 consonante e una vocale
1° cons, 1° voc,  e la X
Quinta:
2 vocali:
1° voc, 2° voc e la X
Prologo:
Ho a disposizione una pagina completa su come calcolare il codice fiscale
tratta da un libro che si usa per la dichiarazione dei redditi.
Ho anche la parte che calcola le prime11 lettere gia' scritta in c (con
complilatore borland e con il builder c++ per Windows98 e 95....Ho lo zip
con tutti i codici assegnati dal catasto.
Il programma e' scritto a funzioni e dovrebbe essere facile da interpretare!
Pero' non e' completo perche' non so' bene come implementare il database con
il c.
Se vuoi ti scrivo io come calcolarlo(e' semplice implementare
l'algoritmo...nulla di trascendentale:-))Ci sono riuscito io!!!)
altrimenti ti spedisco la parte gia' fatta e ti implementi tu il database.
(l'ultimo carattere si calcola in base ai 15 precedenti....)
Oppure ancora scannerizzo la pagina e te la spedisco appena ho tempo e meno
verifiche a scuola...sta' finendo il quadrimestre!:-))
A tutti gli interessati...fatemi sapere!
 Byez by Roby "Offear" '82
 Cd:"Chaosphere" Meshuggah
 Visit: 
http://surf.to/Blindguardian

 wrote in message
387ED241...@libero.it...


 diverti a convertirlo in C, cosě me lo riposti..;-))
