IDENTIFICATION DIVISION. PROGRAM-ID. insee. AUTHOR. OD. *---------------------------------------------------------------* * PROGRAMME * * CONTROLE VALIDITE NUMERO INSEE * *---------------------------------------------------------------* ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. *--------------------------* * DEFINITION DES VARIABLES * *--------------------------* 01 CD-INSEE. * Code Homme/Femme, 1 = homme, 2 = femme 05 CD-SX PICTURE 9 VALUE ZERO. * Code année de naissance 05 CD-NSSNC PICTURE 99 VALUE ZERO. * Code mois de naissance 05 CD-MS-NSSNC PICTURE 99 VALUE ZERO. * Code département * Enlever les départements non existants, et 2A pour Corse, * ainsi que 2B 05 CD-DPRTMNT PICTURE XX. * Code commune 05 CD-CMMNE PICTURE 999 VALUE ZERO. * Code registre 05 CD-RGSTR PICTURE 999 VALUE ZERO. * Clé de contrôle 05 CL-CTRL PICTURE 99 VALUE ZERO. * ERREURS * Booléen permettant de dire s'il y a erreur ou pas * Initialisé à 0 pour l'instant 01 ERR-BLN PICTURE 9 VALUE LOW-VALUE. * Nom erreur 01 ERR-NM PICTURE X(20) VALUE SPACE. PROCEDURE DIVISION. * Nom du programme, ici PROGRAMME PROGRAMME SECTION. * Demande du numéro DEBUT. DISPLAY "Tapez votre numéro INSEE : " WITH NO ADVANCING. ACCEPT CD-INSEE. * Affichage des valeurs entrées AFFICHAGE. DISPLAY "Sexe : " CD-SX. DISPLAY "Année de naissance : " CD-NSSNC. DISPLAY "Mois de naissance : " CD-MS-NSSNC. DISPLAY "Département de naissance : " CD-DPRTMNT. DISPLAY "Commune : " CD-CMMNE. DISPLAY "Code registre : " CD-RGSTR. DISPLAY "Clé de contrôle : " CL-CTRL. * STOP RUN. * Contrôles de validité CONTROLE SECTION. * Contrôle du sexe SEXE. IF NOT (CD-SX EQUAL TO 1 OR CD-SX EQUAL TO 2) THEN MOVE HIGH-VALUE TO ERR-BLN MOVE "sexe." TO ERR-NM. * Contrôle sur type code sexe SEXETYPE. IF CD-SX IS NOT NUMERIC THEN MOVE HIGH-VALUE TO ERR-BLN MOVE "sexe non numérique." TO ERR-NM. * Contrôle sur mois de naissance MOISNAISSANCE. IF (CD-MS-NSSNC EQUAL TO 0 OR CD-MS-NSSNC GREATER THAN 12) THEN MOVE HIGH-VALUE TO ERR-BLN MOVE "mois de naissance." TO ERR-NM. * Contrôle sur type code mois de naissance MOISNAISSANCETYPE. IF CD-MS-NSSNC IS NOT NUMERIC THEN MOVE HIGH-VALUE TO ERR-BLN MOVE "année de naissance non numérique." TO ERR-NM. * Contrôle sur département DEPARTEMENT. IF CD-DPRTMNT EQUAL TO "2A" THEN MOVE "19" TO CD-DPRTMNT IF CD-DPRTMNT EQUAL TO "2B" THEN MOVE "18" TO CD-DPRTMNT IF (CD-DPRTMNT EQUAL TO "96" OR CD-DPRTMNT EQUAL TO 0) THEN MOVE HIGH-VALUE TO ERR-BLN MOVE "mauvais département". * Contrôle sur type code département DEPARTEMENTTYPE. IF CD-DPRTMNT IS NOT NUMERIC THEN MOVE HIGH-VALUE TO ERR-BLN MOVE * Affichage du résultat RESULTAT SECTION. * Affichage de l'erreur ERREUR. IF ERR-BLN EQUAL TO HIGH-VALUE THEN DISPLAY "Erreur sur : " ERR-NM ELSE DISPLAY "Aucune erreur.". STOP RUN.