>>Alus.it >progetti >algoritmo codice fiscale EN IT

Algoritmo di calcolo del codice fiscale

Progetto per il corso di " Algoritmi e programmazione avanzata" presso il Politecnico di Torino. Testo e programmi di Alberto Realis-Luc

Come è fatto un codice fiscale?

Un codice fiscale italiano è formato da 16 caratteri alfanumerici. I primi 15 caratteri servono ad identificare la persona, mentre invece, l'ultima lettera è una lettera di controllo.
Il codice fiscale è diviso in 7 parti e cioè:

  1. tre lettere per l'individuazione del cognome
  2. tre lettere per l'individuazione del nome
  3. due numeri per l'anno di nascita
  4. una lettera per il mese di nascita
  5. due numeri per il giorno di nascita ed il sesso
  6. una lettera e tre numeri per l'individuazione del luogo di nascita
  7. una lettera finale di controllo

Cognome

Dobbiamo ricavare 3 lettere per il cognome. Bisogna prendere la prima, la seconda e la terza consonante. Però potrebbe anche succedere che ci siano solo due consonanti oppure una sola; in tal caso dopo aver preso le consonanti si inizia a prendere anche le vocali. Se ancora mancano altre lettere per completare la nostra stringa di tre caratteri si aggiunge la lettera X.
I cognomi composti da più parole vanno considerati come se fossero una sola parola.

Nome

Il procedimento che si utilizza per ricavare le tre lettere del nome, è uguale a quello del cognome con l'unica differenza che adesso dobbiamo prendere la prima, la terza e la quarta consonante. Nel caso non ci sono quattro consonanti, si prendono le prime tre e se ci sono meno di tre consonanti si effettua lo stesso procedimento del cognome.

Anno di nascita

I due numeri dell'anno di nascita sono semplicemente le sue ultime due cifre.

Mese di nascita

Per il mese di nascita non dobbiamo inserire il numero del mese, ma una lettera; questo perché i mesi sono 12 e lo spazio a disposizione è ristretto ad un carattere solo. Ecco qui la tabella delle lettere corrispondenti ai mesi :

N Mese Lettera
1 Gennaio A
2 Febbraio B
3 Marzo C
4 Aprile D
5 Maggio E
6 Giugno H
7 Luglio L
8 Agosto M
9 Settembre P
10 Ottobre R
11 Novembre S
12 Dicembre T

Giorno di nascita e sesso

Per definire il giorno di nascita ed il sesso di una persona abbiamo a disposizione 2 cifre. Nel caso si tratti di un uomo basta usare queste 2 cifre per indicarne semplicemente il giorno di nascita (con lo zero davanti se il giorno è di una sola cifra), mentre se si tratta di una donna dobbiamo inserire il giorno di nascita sommato a 40.

Luogo di nascita

Il luogo di nascita può essere uno degli 8100 comuni d'Italia oppure un paese straniero. Il metodo per calcolare il codice corrispondente, è simile a quello per il mese di nascita, perché ad ogni comune italiano o stato estero corrisponde un determinato codice formato da 1 carattere alfabetico e 3 caratteri numerici, questi codici vengono redatti dalla Direzione generale del Catasto. Il mio programma scaricabile al termine di questa pagina carica i codici degli 8100 comuni d'Italia da un file di testo che potrete scaricare insieme ad esso. Nota che per quanto riguarda le nazioni estere, esistono i codici anche per nazioni che oggi non esistono più come per esempio la Cecoslovacchia o la Germania dell'est, va considerato la stato alla data di nascita della persona.

Lettera di controllo

Siamo quindi arrivati all'ultima fase che corrisponde al calcolo, tramite un ben determinato algoritmo, della lettera di controllo. L'algoritmo consiste nel convertire i vari caratteri in numeri secondo la tabella sottostante e poi eseguire varie operazioni seguendo questi passi:

  1. Convertire in numeri i caratteri di posizione pari.
  2. Convertire in numeri i caratteri di posizione dispari.
  3. Addizionare tutti i valori ottenuti e dividerli per 26.
  4. Determinare una lettera alfabetica corrispondente al resto dell'operazione (vedi tabella).
Conversione caratteri pari e dispari Valori lettera di controllo
Carattere Valore pari Valore dispari Resto Lettera di controllo
A o 0 (zero) 0 1 0 A
B o 1 1 0 1 B
C o 2 2 5 2 C
D o 3 3 7 3 D
E o 4 4 9 4 E
F o 5 5 13 5 F
G o 6 6 15 6 G
H o 7 7 17 7 H
I o 8 8 19 8 I
J o 9 9 21 9 J
K 10 2 10 K
L 11 4 11 L
M 12 18 12 M
N 13 20 13 N
O 14 11 14 O
P 15 3 15 P
Q 16 6 16 Q
R 17 8 17 R
S 18 12 18 S
T 19 14 19 T
U 20 16 20 U
V 21 10 21 V
W 22 22 22 W
X 23 25 23 X
Y 24 24 24 Y
Z 25 23 25 Z

Downloads

Calcolo codice fiscale per Windows

Schermata del programma CodiceFiscale.exe

Ecco qui un semplice e leggero generatore di codici fiscali per Windows: CodiceFiscale.exe, scritto come applicazione Win32. Il programma non richiede installazione, basta semplicemente eseguirlo. Necessita solo di essere tenuto insieme al file comuni.txt dal quale leggerà i codici dei luoghi di nascita. Appena calcolato un codice fiscale esso viene automaticamente copiato negli appunti, vi basterà quindi direttamente incollarlo laddove richiesto.

Calcolo codice fiscale su linea di comando

E qui puoi scaricare un programmino ancora più semplice scritto in C per calcolare codici fiscali da linea di comando, compilato per Linux e Windows.
Il programma cf (cf.exe per Windows), come prima, funziona leggendo i codici dei comuni d'Italia dal file comuni.txt che pertanto va tenuto nella stessa cartella. Nel file ZIP sono compresi anche i sorgenti, dunque se trovi qualcosa che può essere migliorato fammelo sapere.

Questo piccolo programma non ha alcuna pretesa è stato semplicemente un esercizio il più utile ed interessante possibile (specialmente sulla gestione di stringhe e dati in memoria) per prepararmi al corso di "Algoritmi e Programmazione Avanzata".

Versioni a 64 bit

Su richiesta di un utente anonimo si mettono a disposizione gli stessi programmi precedenti: CodiceFiscale.exe e CF.exe compilati a 64 bit per versioni piu recenti di Windows. Testati su Windows 8.