1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
| IDENTIFICATION DIVISION.
PROGRAM-ID. EMPLOYEERAISE.
*---------------------------------------------------------------*
* Ce programme a pour but de créer un échéancier de crédit avec *
* un calcul des mensualités,des intérêts et du capitl remboursé *
*---------------------------------------------------------------*
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
* creation d'un fichier de sortie pour afficher les données
SELECT ECHEANCIER ASSIGN TO "ECHEANCES.DAT"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD ECHEANCIER.
01 PRINT-LINE PIC X(100).
WORKING-STORAGE SECTION.
* les variables utilisées dans mon programme
01 CREDIT-AREA.
05 MONTANT PIC 9(6) VALUE ZERO.
05 TAUX PIC 99V9999999 VALUE ZERO.
05 DUREE PIC 9(3) VALUE ZERO.
05 NBECH PIC 9(3) VALUE ZERO.
05 CAPAREMB PIC 9(6)V999999 COMP-3 VALUE ZERO.
05 CAPREMB PIC 9(6)V999999 COMP-3 VALUE ZERO.
05 INTERETS PIC 9(6)V999999 COMP-3 VALUE ZERO.
05 MENSUALITES PIC 9(6)V9(6) COMP-3 VALUE ZERO.
* compteur d'echeances
05 COUNTECH PIC 999 VALUE ZERO.
* les heading permettent une petite mise en forme
01 HEADING-LINE.
05 FILLER PIC X(4) VALUE 'MOIS'.
05 FILLER PIC X(6) VALUE SPACES.
05 FILLER PIC X(17) VALUE 'CAP A REMBOURSER'.
05 FILLER PIC X(6) VALUE SPACES.
05 FILLER PIC X(14) VALUE 'CAP REMBOURSE'.
05 FILLER PIC X(4) VALUE SPACES.
05 FILLER PIC X(8) VALUE 'INTERETS'.
05 FILLER PIC X(2) VALUE SPACES.
05 FILLER PIC X(11) VALUE 'MENSUALITES'.
05 FILLER PIC X(5) VALUE SPACES.
01 HEADING-LINE2.
05 FILLER PIC X(5) VALUE '-----'.
05 FILLER PIC X(6) VALUE SPACES.
05 FILLER PIC X(17) VALUE '-----------------'.
05 FILLER PIC X(6) VALUE SPACES.
05 FILLER PIC X(14) VALUE '--------------'.
05 FILLER PIC X(4) VALUE SPACES.
05 FILLER PIC X(8) VALUE '--------'.
05 FILLER PIC X(2) VALUE SPACES.
05 FILLER PIC X(12) VALUE '------------'.
05 FILLER PIC X(5) VALUE SPACES.
* affichage des données dans le fichier
01 DETAIL-LINE.
05 DET-DATEECH PIC 9(4).
05 FILLER PIC X(6) VALUE SPACES.
05 DET-CAP-A-REMB PIC 9(6).99.
05 FILLER PIC X(16) VALUE SPACES.
05 DET-CAP-REMB PIC 9(6).99.
05 FILLER PIC X(7) VALUE SPACES.
05 DET-INTERETS PIC 9(6).99.
05 FILLER PIC X(3) VALUE SPACES.
05 DET-MENSUALITES PIC 9(6).99.
PROCEDURE DIVISION.
0100-MAIN-PROCEDURE.
* ouverture du fichier de sortie et process du programme
OPEN OUTPUT ECHEANCIER
PERFORM 0130-ENTER-INFOS
COMPUTE NBECH = DUREE * 12
PERFORM 0150-PROCESS-CALCULS UNTIL COUNTECH = NBECH
PERFORM 0900-STOP-PROGRAM
.
0130-ENTER-INFOS.
* saisie des données par l'utilisateur et impression des heading
DISPLAY "QUEL EST LE MONTANT A EMPRUNTER ?"
ACCEPT MONTANT
DISPLAY "QUEL EST LA DUREE DE REMBOURSEMENT EN ANNEES?"
ACCEPT DUREE
DISPLAY "QUEL EST LE TAUX DU CREDIT ?"
ACCEPT TAUX
MOVE MONTANT TO CAPAREMB
WRITE PRINT-LINE FROM HEADING-LINE
AFTER ADVANCING 1 LINE
WRITE PRINt-LINE FROM HEADING-LINE2
AFTER ADVANCING 1 LINE
.
0150-PROCESS-CALCULS.
* ici les calculs
ADD 1 TO COUNTECH
COMPUTE CAPAREMB = CAPAREMB - CAPREMB
COMPUTE MENSUALITES =
(MONTANT*(TAUX/(12)))/(1 -(1/(1+(TAUX/12)))**(DUREE*12))
COMPUTE INTERETS =
(CAPAREMB)*(TAUX/12)
COMPUTE CAPREMB = (MENSUALITES) - INTERETS
PERFORM 0170-PRINT-ECHEANCIER
.
0170-PRINT-ECHEANCIER.
* move et impression des données ligne par ligne
MOVE COUNTECH TO DET-DATEECH
MOVE MENSUALITES TO DET-MENSUALITES
MOVE INTERETS TO DET-INTERETS
MOVE CAPREMB TO DET-CAP-REMB
MOVE CAPAREMB TO DET-CAP-A-REMB
WRITE PRINT-LINE FROM DETAIL-LINE
AFTER ADVANCING 1 LINE
.
0900-STOP-PROGRAM.
CLOSE ECHEANCIER
STOP RUN
. |
Partager