Vous êtes sur la page 1sur 3

Algorithme et Langages Lycée Pointe des

Nègres
EDITIONS EN COBOL
Ce programme (COB3.CBL) crée un fichier d’édition SORTIE.FIC à partir des données contenues dans
le fichier ELEVE.FIC. Comme ce dernier est un fichier relatif, il faut utiliser un type d’accès dynamique
afin de pouvoir le lire de manière séquentielle.

Le contenu du fichier SORTIE.FIC se trouve en fin de programme.


$SET ANS85
IDENTIFICATION DIVISION.
PROGRAM-ID. FICSEQ.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-PC.
OBJECT-COMPUTER. IBM-PC.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT ELEVE ASSIGN TO "C:\COBOL\ELEVE.FIC"
ORGANIZATION IS RELATIVE
ACCESS IS DYNAMIC
RELATIVE KEY IS CLE-EL.

SELECT SORTIE ASSIGN TO "C:\COBOL\SORTIE.FIC"


ORGANIZATION IS SEQUENTIAL
ACCESS IS SEQUENTIAL.

DATA DIVISION.
FILE SECTION.
FD ELEVE
DATA RECORD IS ENR-EL.

01 ENR-EL.
02 NO-EL PIC 999.
02 NOM-EL PIC X(15).
02 PRENOM-EL PIC X(15).
02 SEXE PIC X.
02 GROUPE PIC X.

FD SORTIE
DATA RECORD IS S-EL.

01 S-EL PIC X(80).

WORKING-STORAGE SECTION.

01 VAR.
02 CLE-EL PIC 999 VALUE 0.
02 F-STAT PIC XX VALUE SPACES.

01 LIG0 PIC X(80) VALUE ALL SPACES.

01 LIG1 PIC X(80) VALUE ALL "*".

01 LIG2.
02 FILLER PIC XX VALUE "**".
02 FILLER PIC X(19) VALUE ALL SPACES.
02 FILLER PIC X(38) VALUE
"LISTE DES ELEVES DE LA CLASSE DE 1TSIG".
02 FILLER PIC X(19) VALUE ALL SPACES.
02 FILLER PIC X(2) VALUE "**".

Page 1
Algorithme et Langages Lycée Pointe des
Nègres

01 LIG3.
02 FILLER PIC XX VALUE "**".
02 FILLER PIC X(76) VALUE ALL SPACES.
02 FILLER PIC XX VALUE "**".

01 LIG4.
02 FILLER PIC X(32) VALUE "** Lyc‚e de la Pointe des NŠgres".
02 FILLER PIC X(25) VALUE ALL SPACES.
02 FILLER PIC X(23) VALUE "Ann‚e scolaire 95/96 **".

01 LIG5.
02 FILLER PIC X(11) VALUE "** Num‚ro !".
02 FILLER PIC X(22) VALUE " Num‚ro de l'‚lŠve !".
02 FILLER PIC X(22) VALUE " Pr‚nom de l'‚lŠve !".
02 FILLER PIC X(9) VALUE " Sexe !".
02 FILLER PIC X(9) VALUE " Groupe ".
02 FILLER PIC X(7) VALUE " **".

01 LIG6.
02 FILLER PIC X(5) VALUE "** ".
02 E-NO PIC 999.
02 FILLER PIC X(7) VALUE " ! ".
02 E-NOM PIC X(15).
02 FILLER PIC X(7) VALUE " ! ".
02 E-PRENOM PIC X(15).
02 FILLER PIC X(7) VALUE " ! ".
02 E-SEXE PIC X.
02 FILLER PIC X(7) VALUE " ! ".
02 E-GROUPE PIC X.
02 FILLER PIC X(12) VALUE " **".

01 LIG7.
02 FILLER PIC X(10) VALUE ALL SPACES.
02 TOTAL PIC 99 VALUE 0.
02 FILLER PIC X(22) VALUE " eleves dans la classe".
02 FILLER PIC X(39) VALUE ALL SPACES.

77 Finfich PIC X.
PROCEDURE DIVISION.

DEBUT.
OPEN I-O ELEVE.
OPEN OUTPUT SORTIE.
MOVE "N" TO FINFICH.
PERFORM ENTETE.
MOVE 1 TO CLE-EL.
START ELEVE KEY IS GREATER THAN CLE-EL.
READ ELEVE NEXT AT END MOVE "O" TO FINFICH.
PERFORM LIGNE UNTIL FINFICH = "O".
WRITE S-EL FROM LIG1.
WRITE S-EL FROM LIG0.
WRITE S-EL FROM LIG7.
CLOSE ELEVE.
CLOSE SORTIE.
STOP RUN.

Page 2
Algorithme et Langages Lycée Pointe des
Nègres

ENTETE.
WRITE S-EL FROM LIG1.
WRITE S-EL FROM LIG3.
WRITE S-EL FROM LIG2.
WRITE S-EL FROM LIG3.
WRITE S-EL FROM LIG1.
WRITE S-EL FROM LIG4.
WRITE S-EL FROM LIG1.
WRITE S-EL FROM LIG5.
WRITE S-EL FROM LIG1.

LIGNE.
MOVE NO-EL TO E-NO.
MOVE NOM-EL TO E-NOM.
MOVE PRENOM-EL TO E-PRENOM.
MOVE SEXE TO E-SEXE.
MOVE GROUPE TO E-GROUPE.
WRITE S-EL FROM LIG6.
ADD 1 TO TOTAL.
READ ELEVE NEXT AT END MOVE "O" TO FINFICH.

FICHIER SORTIE.FIC APRES TRAITEMENT

Page 3