Bonjour,
Voici ma première contribution, bon je débute et je suis sûr qu'il y a pleins de trucs qui pourraient être améliorées.
C'est l'occasion d'apprendre de nouvelles choses
Ce programme crée un fichier d'échéancier de crédit très simple selon un montant à emprunter, une durée et un taux (concernant le taux par exemple pour 2% entrer 0.02).
J'ai vérifié les données avec un vrai simulateur (j'ai fait une ou deux retouches depuis mais normalement c'est bon)
Ce programme ne gère pas les assurances par contre.
Voilà merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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