Ajout numéro de ligne et suppression des derniers warning

This commit is contained in:
rick 2021-03-09 14:14:13 +01:00
parent 1a4bf80d27
commit 7af2aa38ad
Signed by: Rick
GPG key ID: 2B593F087240EE99

View file

@ -1,113 +1,113 @@
IDENTIFICATION DIVISION. 000001 IDENTIFICATION DIVISION.
PROGRAM-ID. jour-cinq-prem-part. 000002 PROGRAM-ID. jour-cinq-prem-part.
000003
ENVIRONMENT DIVISION. 000004 ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION. 000005 INPUT-OUTPUT SECTION.
FILE-CONTROL. 000006 FILE-CONTROL.
SELECT FILE1 ASSIGN TO "input" 000007 SELECT FILE1 ASSIGN TO "input"
ORGANIZATION LINE SEQUENTIAL. 000008 ORGANIZATION LINE SEQUENTIAL.
000009
DATA DIVISION. 000010 DATA DIVISION.
FILE SECTION. 000011 FILE SECTION.
FD FILE1. 000012 FD FILE1.
01 INPUT-FILE. 000013 01 INPUT-FILE.
02 STR PIC A(17). 000014 02 STR PIC A(17).
000015
WORKING-STORAGE SECTION. 000016 WORKING-STORAGE SECTION.
01 MY-FILE. 000017 01 MY-FILE.
02 MY-STR PIC A(17). 000018 02 MY-STR PIC A(17).
01 FILE-STATUS PIC X VALUE 'N'. 000019 01 FILE-STATUS PIC X VALUE 'N'.
88 EOF VALUE 'Y'. 000020 88 EOF VALUE 'Y'.
77 NB-NICE PIC 9(4) VALUE 0. 000021 77 NB-NICE PIC 9(4) VALUE 0.
000022
PROCEDURE DIVISION. 000023 PROCEDURE DIVISION.
main. 000024 main.
OPEN INPUT FILE1. 000025 OPEN INPUT FILE1.
PERFORM UNTIL EOF 000026 PERFORM UNTIL EOF
READ FILE1 RECORD INTO MY-FILE 000027 READ FILE1 RECORD INTO MY-FILE
* Lorsquon arrive à la fin du fichier, on met Y pour le signaler 000028* Lorsquon arrive à la fin du fichier, on met Y pour le signaler
AT END MOVE 'Y' TO FILE-STATUS 000029 AT END MOVE 'Y' TO FILE-STATUS
NOT AT END CALL "parse-str" USING 000030 NOT AT END CALL "parse-str" USING
BY CONTENT MY-STR, 000031 BY CONTENT MY-STR,
BY REFERENCE NB-NICE 000032 BY REFERENCE NB-NICE
* On passe par référence NB-NICE pour lincrémenter 000033* On passe par référence NB-NICE pour lincrémenter
END-CALL 000034 END-CALL
END-READ 000035 END-READ
END-PERFORM. 000036 END-PERFORM.
DISPLAY "Nombre de bonnes chaines : " NB-NICE. 000037 DISPLAY "Nombre de bonnes chaines : " NB-NICE END-DISPLAY.
CLOSE FILE1. 000038 CLOSE FILE1.
STOP RUN. 000039 STOP RUN.
000039
****************************************************************** 000040******************************************************************
* parse-str : parse la chaine de caractères pour voir le nombre de 000041* parse-str : parse la chaine de caractères pour voir le nombre de
* bonnes chaines. Prend en paramètres 2 arguments : 000042* bonnes chaines. Prend en paramètres 2 arguments :
* STR : chaine de caractères de taille 16. Sera parser. 000043* STR : chaine de caractères de taille 16. Sera parser.
* NB : (REFERENCE) le nombre de bonnes chaines. Sera incrémenter. 000044* NB : (REFERENCE) le nombre de bonnes chaines. Sera incrémenter.
000045
IDENTIFICATION DIVISION. 000046 IDENTIFICATION DIVISION.
PROGRAM-ID. parse-str. 000047 PROGRAM-ID. parse-str.
000047
DATA DIVISION. 000048 DATA DIVISION.
WORKING-STORAGE SECTION. 000049 WORKING-STORAGE SECTION.
77 CHAR PIC A. 000050 77 CHAR PIC A.
88 VOY VALUE 'a','e','i','o','u'. 000051 88 VOY VALUE 'a','e','i','o','u'.
77 I PIC 99. 000052 77 I PIC 99.
88 END-P VALUE 17. 000053 88 END-P VALUE 17.
77 NB-VOY PIC 99. 000054 77 NB-VOY PIC 99.
77 PRED PIC A. 000055 77 PRED PIC A.
77 TMP PIC AA. 000056 77 TMP PIC AA.
88 BAD VALUE 'ab', 'cd', 'pq', 'xy'. 000057 88 BAD VALUE 'ab', 'cd', 'pq', 'xy'.
77 DOUBLE PIC X. 000058 77 DOUBLE PIC X.
000058
* NB-VOY contient le nombre de voyelles 000059* NB-VOY contient le nombre de voyelles
* PRED le caractère précédent 000060* PRED le caractère précédent
* TMP forme la chaine contenant le caractère précédent et courant 000061* TMP forme la chaine contenant le caractère précédent et courant
* BAD les mauvaises formes de chaines 000062* BAD les mauvaises formes de chaines
* DOUBLE est mit à Y lorsque CHAR = PRED 000063* DOUBLE est mit à Y lorsque CHAR = PRED
* 000064*
* LINKAGE SECTION contient les paramètres du programme parse-str 000065* LINKAGE SECTION contient les paramètres du programme parse-str
000066
LINKAGE SECTION. 000067 LINKAGE SECTION.
77 STR PIC A(17). 000068 77 STR PIC A(17).
77 NB PIC 9(4). 000069 77 NB PIC 9(4).
000069
PROCEDURE DIVISION USING STR, NB. 000070 PROCEDURE DIVISION USING STR, NB.
parse. 000071 parse.
MOVE 0 TO NB-VOY. 000072 MOVE 0 TO NB-VOY.
MOVE 'N' TO DOUBLE. 000073 MOVE 'N' TO DOUBLE.
d DISPLAY STR. 000074d DISPLAY STR.
d DISPLAY "=================". 000075d DISPLAY "=================".
PERFORM VARYING I FROM 1 BY 1 UNTIL END-P 000076 PERFORM VARYING I FROM 1 BY 1 UNTIL END-P
MOVE STR(I:1) TO CHAR 000077 MOVE STR(I:1) TO CHAR
d DISPLAY "ACT. CHAR : " CHAR 000078d DISPLAY "ACT. CHAR : " CHAR
d DISPLAY "ACT. PRED : " PRED 000079d DISPLAY "ACT. PRED : " PRED
d DISPLAY "I : " I 000080d DISPLAY "I : " I
IF VOY 000081 IF VOY
THEN ADD 1 TO NB-VOY 000082 THEN ADD 1 TO NB-VOY END-ADD
END-IF 000083 END-IF
IF I >= 2 000084 IF I >= 2
THEN 000085 THEN
STRING PRED CHAR INTO TMP 000086 STRING PRED CHAR INTO TMP END-STRING
d DISPLAY "TMP STR : " TMP 000087d DISPLAY "TMP STR : " TMP
IF BAD 000088 IF BAD
THEN 000089 THEN
EXIT PERFORM 000090 EXIT PERFORM
END-IF 000091 END-IF
IF PRED = CHAR 000092 IF PRED = CHAR
THEN 000093 THEN
MOVE 'Y' TO DOUBLE 000094 MOVE 'Y' TO DOUBLE
END-IF 000095 END-IF
d DISPLAY "DOUBLE : " DOUBLE 000096d DISPLAY "DOUBLE : " DOUBLE
END-IF 000097 END-IF
MOVE CHAR TO PRED 000098 MOVE CHAR TO PRED
END-PERFORM. 000099 END-PERFORM.
IF NOT BAD AND NB-VOY >= 3 AND DOUBLE = 'Y' 000100 IF NOT BAD AND NB-VOY >= 3 AND DOUBLE = 'Y'
THEN 000101 THEN
ADD 1 TO NB 000102 ADD 1 TO NB END-ADD
END-IF. 000103 END-IF.
EXIT PROGRAM. 000104 EXIT PROGRAM.
END PROGRAM parse-str. 000105 END PROGRAM parse-str.
000105
************************************************************************* 000106*************************************************************************
000107
END PROGRAM jour-cinq-prem-part. 000108 END PROGRAM jour-cinq-prem-part.