IDENTIFICATION DIVISION. PROGRAM-ID. palind. AUTHOR. OD. *-------------------------------------------* * PROGRAMME DE VERIFICATION D'UN PALINDROME * *-------------------------------------------* ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. *--------------------------* * DEFINITION DES VARIABLES * *--------------------------* * MOT DONNE PAR L'UTILISATEUR 77 MT-UTIL PICTURE X(255) VALUE SPACE. * MOT SANS ESPACE 77 MT-SS-SPC PICTURE X(255) VALUE SPACE. * MOT INVERSE 77 MT-INV PICTURE X(255) VALUE SPACE. * RESULTAT DU PROGRAMME (ICI ON DIRA "CECI EST UN PALINDROME") * OU PAS) 77 RESULTAT PICTURE X(30) VALUE SPACE. * BOOLEEN 77 PLND PICTURE 9 VALUE ZERO. * 88 EST VALUE ZERO. * 88 ESTPAS VALUE 1. * CURSEURS * - CURSEUR-DEPART 77 CRSR-DP PICTURE 999 VALUE 1. * - CURSEUR-ARRIVEE 77 CRSR-RRV PICTURE 999 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 MT-UTIL. DISPLAY "MOT SAISI : " MT-UTIL. *TRAITEMENT DE LA PHRASE TRAITEMENT SECTION. TRAITER. PERFORM SPPR-SPC UNTIL CRSR-DP EQUAL TO 255. MOVE 255 TO CRSR-DP. MOVE 1 TO CRSR-RRV. PERFORM COPIER UNTIL CRSR-DP EQUAL TO ZERO. PERFORM COMPARER. PERFORM DEDUIRE. *SUPPRESSION DES ESPACES DU MOT DE DEPART SPPR-SPC. IF (MT-UTIL(CRSR-DP:1) NOT EQUAL TO SPACE) THEN STRING MT-UTIL(CRSR-DP:1) DELIMITED BY SIZE INTO MT-SS-SPC WITH POINTER CRSR-RRV. ADD 1 TO CRSR-DP. *COPIE DE LA CHAINE DE DEPART VERS UNE CHAINE D'ARRIVEE COPIER. IF (MT-UTIL(CRSR-DP:1) NOT EQUAL TO SPACE) THEN STRING MT-UTIL(CRSR-DP:1) DELIMITED BY SIZE INTO MT-INV WITH POINTER CRSR-RRV. SUBTRACT 1 FROM CRSR-DP. *COMPARAISON DE LA CHAINE DE CARACTÈRE COMPARER. DISPLAY "MOT DEPART : " MT-SS-SPC. DISPLAY "MOT ARRIVEE : " MT-INV. IF (MT-SS-SPC EQUAL TO MT-INV) THEN MOVE 1 TO PLND ELSE MOVE ZERO TO PLND. *DEDUCTION LOGIQUE DU RESULTAT DEDUIRE. IF (PLND EQUAL ZERO) THEN MOVE "CE N'EST PAS UN PALINDROME" TO RESULTAT ELSE MOVE "C'EST UN PALINDROME" TO RESULTAT.