Calcolatori Elettronici
Prova d'esame del 11 settembre 2000
Introduzione:
Il codice fiscale utilizzato in Italia è formato da 16 caratteri alfanumerici che codificano alcune informazioni sulla persona a cui fa riferimento il codice. Nell'ordine si hanno:
1. 3 lettere derivanti dal cognome (tipicamente consonanti),
2. 3 lettere derivanti dal nome (tipicamente consonanti),
3. le ultime due cifre dell'anno di nascita,
4. una lettera che codifica il mese (A=gennaio; B=febbraio; C=marzo; D=aprile; E=maggio; H=giugno; L=luglio; M=agosto; P=settembre; R=ottobre; S=novembre; T=dicembre),
5. le due cifre del giorno di nascita a cui viene sommato 40 per le donne;
6. 4 caratteri alfanumerici (nell'ordine una lettera e tre numeri) che codificano il comune di nascita,
7. una lettera finale di verifica del codice.
Ad esempio Teodora Arguti nata a Parma il 7 ottobre 1982 avrebbe come codice: RGTTDR82R47G337Q
Esercizio:
Scrivere un programma assembly che effettui un controllo (molto semplificato) di congruenza del codice fiscale.
Il programma dovrà prendere in ingresso un codice fiscale ed effettuare i seguenti controlli:
1. Verificare che il codice sia formato da 16 caratteri alfanumerici (solo lettere maiuscole e numeri);
2. Verificare che i primi sei caratteri siano consonanti;
3. Verificare che i successivi due caratteri siano numeri e stampare il relativo anno di nascita;
4. Verificare che la lettera che codifica il mese di nascita sia congruente con le indicazioni fornite e stampare il relativo mese;
5. Verificare che i successivi due caratteri siano numeri e stampare giorno di nascita e sesso indicati, controllare che il giorno di nascita sia congruente;
6. Verificare che i successivi 4 caratteri siano rispettivamente una lettera e tre cifre;
7. Verificare che l'ultimo carattere sia una lettera.
Si sviluppi il programma in maniera modulare, portando a termine inizialmente solo il punto 1 e successivamente integrando una ad una le altre operazioni di verifica.
Esempio:
Introdurre codice fiscale: RGTTDR82R87G337Q
Verifica lunghezza: corretto
Verifica cognome: corretto
Verifica nome: corretto
Verifica anno: 1982
Verifica mese: ottobre
Verifica giorno e sesso: ERRORE!