IDENTIFICATION DIVISION. PROGRAM-ID. palind. AUTHOR. OD. *-------------------------------------------* * PROGRAMME DE VERIFICATION D'UN PALINDROME * *-------------------------------------------* ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. *--------------------------* * DEFINITION DES VARIABLES * *--------------------------* * LE MOT DONNE PAR L'UTILISATEUR 77 MOT PICTURE X(255) VALUE SPACE. * RESULTAT DU PROGRAMME (ICI ON DIRA "CECI EST UN PALINDROME") * OU PAS) 77 RESULTAT PICTURE X(30) VALUE SPACE. * DEBUT-MOT ET DBUT-FIN SUBISSENT UNE INCREMENTATION * CE SONT LES CURSEURS 77 DEBUT-MOT PICTURE 99 VALUE 1. 77 FIN-MOT PICTURE 99 VALUE 30. * LETTREG CONTIENDRA UNE LETTRE DU MOT, CELLE COTE GAUCHE * LETTRED, CELLE COTE DROITE 77 LETTREG PICTURE X VALUE SPACE. 77 LETTRED PICTURE X VALUE SPACE. * DEFINITION DE QUELQUES VALEUR NUMERIQUES * POUR LES CONTROLES 01 ETUDE-ENONCE. 05 COMP-VALID PICTURE 9 VALUE 1. 88 COMP-CORRECT VALUE 1. 05 CARAC-DEB PICTURE 9 VALUE 1. 88 CARACD-CORRECT VALUE 1. 05 CARAC-FIN PICTURE 9 VALUE 1. 88 CARACF-CORRECT VALUE 1. PROCEDURE DIVISION. *NOM DU PROGRAMME PRINCIPAL SECTION. DEBUT. PERFORM SAISIE. CORPS. PERFORM TRAITER. FIN. DISPLAY RESULTAT. DISPLAY "FIN DU TRAITEMENT". STOP RUN. *SAISIE DU MOT SAISIR SECTION. SAISIE. DISPLAY "Saisissez une phrase : " WITH NO ADVANCING. ACCEPT MOT. *------* * TEST * *------* DISPLAY MOT. *TRAITEMENT DE LA PHRASE TRAITEMENT SECTION. TRAITER. PERFORM COMPARER UNTIL NOT COMP-CORRECT. *VALIDE IS NOT EQUAL TO 1. *COMPARAISON DE LA CHAINE DE CARACTÈRE COMPARER. DISPLAY DEBUT-MOT. DISPLAY FIN-MOT. * PERFORM PARCOURS-FIN UNTIL NOT CARACF-CORRECT. MOVE ZERO TO COMP-VALID. *PARCOURS DE LA CHAINE DE FIN PARCOURS-FIN. DISPLAY "DERNIERE LETTRE DU MOT : " MOT(FIN-MOT:1). IF (MOT(FIN-MOT:1) EQUAL TO SPACE) THEN SUBTRACT 1 FROM FIN-MOT ELSE MOVE 1 TO CARAC-FIN END-IF. * MOVE MOT(FIN-MOT:1) TO LETTRE. * PERFORM CAL-CHFFRE UNTIL LETTRE NOT EQUAL TO SPACE. * IF (MOT(DEBUT-MOT:1) EQUAL TO MOT(FIN-MOT:1)) * MOVE 1 TO VALIDE * END-IF. *CALCUL DU CHIFFRE DE LA LETTRE À COMPARER CAL-CHFFRE. IF (MOT(FIN-MOT:1) EQUAL TO SPACE) THEN SUBTRACT 1 FROM FIN-MOT END-IF.