Ajout des fichiers restants
This commit is contained in:
		
							
								
								
									
										163
									
								
								P5B1/carmag.cbl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										163
									
								
								P5B1/carmag.cbl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,163 @@
 | 
			
		||||
       IDENTIFICATION DIVISION.
 | 
			
		||||
       PROGRAM-ID. carmag0.
 | 
			
		||||
       
 | 
			
		||||
       AUTHOR. OD.
 | 
			
		||||
      ***---------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
      *----------------------------------------------------------------*
 | 
			
		||||
      *                         PROGRAMME                              *
 | 
			
		||||
      *                  CREATION TABLEAU IMPAIR                       *
 | 
			
		||||
      *----------------------------------------------------------------*
 | 
			
		||||
 | 
			
		||||
       ENVIRONMENT DIVISION.
 | 
			
		||||
      ***---------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
       DATA DIVISION.
 | 
			
		||||
       WORKING-STORAGE SECTION.
 | 
			
		||||
      *--------------------------*
 | 
			
		||||
      * DEFINITION DES VARIABLES *
 | 
			
		||||
      *--------------------------*
 | 
			
		||||
      * Nombre entre au clavier
 | 
			
		||||
       77 NBR-DPRT PICTURE 999 VALUE ZERO.
 | 
			
		||||
      * Tableau du carre magique
 | 
			
		||||
       01 TABLE-CARMAG.
 | 
			
		||||
      * - Numero de ligne
 | 
			
		||||
           05 LGN OCCURS 25.
 | 
			
		||||
      * - Colonnes de la ligne
 | 
			
		||||
               10 CLN OCCURS 25.
 | 
			
		||||
      * - - Contenu de chaque colonne : chiffre
 | 
			
		||||
                   15 CNTN PICTURE 999.
 | 
			
		||||
      * Nombre pour verifier le nombre saisie
 | 
			
		||||
       77 NBR PICTURE 999 VALUE ZERO.
 | 
			
		||||
           88 IMPAIR VALUE 1.
 | 
			
		||||
      * Valeur a inserer dans le tableau final
 | 
			
		||||
       77 VALEUR PICTURE 999 VALUE 1.
 | 
			
		||||
      * Curseur ligne
 | 
			
		||||
       77 CRSR-LGN PICTURE 999 VALUE 1.
 | 
			
		||||
      * Curseur colonne
 | 
			
		||||
       77 CRSR-CLN PICTURE 999 VALUE 1.
 | 
			
		||||
      * Total d'un calcul puis reutilisation pour diverses taches
 | 
			
		||||
       77 TOTAL PICTURE 999 VALUE ZERO.
 | 
			
		||||
      * Nombre de cases dans le tableau a afficher
 | 
			
		||||
       77 NBR-CRR PICTURE 999 VALUE ZERO.
 | 
			
		||||
      * Reste dans la division euclidienne
 | 
			
		||||
       77 RST PICTURE 999 VALUE ZERO.
 | 
			
		||||
      ***---------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
       PROCEDURE DIVISION.
 | 
			
		||||
      *
 | 
			
		||||
      * Nom du programme
 | 
			
		||||
      *
 | 
			
		||||
       PROGRAMME SECTION.
 | 
			
		||||
      * Debut du programme (initialisation)
 | 
			
		||||
       DEBUT.
 | 
			
		||||
           DISPLAY "Debut de la saisie...".
 | 
			
		||||
           PERFORM SAISIE UNTIL IMPAIR.
 | 
			
		||||
           DISPLAY "Saisie terminee !".
 | 
			
		||||
      * Corps du programme (contenu)
 | 
			
		||||
       CORPS.
 | 
			
		||||
           DISPLAY "Taille du tableau : " NBR-DPRT.
 | 
			
		||||
           PERFORM REMPLISSAGE.
 | 
			
		||||
      * Fin du programme
 | 
			
		||||
       FIN.
 | 
			
		||||
           DISPLAY "Carre magique fini !!!".
 | 
			
		||||
           STOP RUN.
 | 
			
		||||
 | 
			
		||||
      *
 | 
			
		||||
      * Arborescence de niveau 2 : Saisie de l'utilisateur
 | 
			
		||||
      *
 | 
			
		||||
       SAISIR SECTION.
 | 
			
		||||
       SAISIE.
 | 
			
		||||
           DISPLAY "Saisissez un chiffre impair inferieur a 26 : "
 | 
			
		||||
           WITH NO ADVANCING.
 | 
			
		||||
           ACCEPT NBR-DPRT.
 | 
			
		||||
           PERFORM VERIF.
 | 
			
		||||
        VERIF.
 | 
			
		||||
           DIVIDE NBR-DPRT BY 2 GIVING TOTAL REMAINDER RST.
 | 
			
		||||
           IF (RST NOT EQUAL TO ZERO AND NBR-DPRT LESS THAN 26) THEN
 | 
			
		||||
               MOVE 1 TO NBR.
 | 
			
		||||
 | 
			
		||||
      *
 | 
			
		||||
      * Arborescence niveau 2 : REMPLISSAGE PUIS AFFICHAGE
 | 
			
		||||
      *
 | 
			
		||||
       REMPLISSAGE SECTION.
 | 
			
		||||
      * Affectation de la premiere valeur, ligne une, colonne du milieu
 | 
			
		||||
       VAL-UNE.
 | 
			
		||||
           DISPLAY "Affectation valeur une...".
 | 
			
		||||
      *     COMPUTE TOTAL ROUNDED = NBR-DPRT / 2.
 | 
			
		||||
           DIVIDE 2 INTO NBR-DPRT GIVING TOTAL ROUNDED.
 | 
			
		||||
      * Affectation de la premiere valeur a la colonne trouvee
 | 
			
		||||
           MOVE 1 TO CNTN(1,TOTAL).
 | 
			
		||||
      * Affectation du numero de colonne vers le curseur des colonnes
 | 
			
		||||
           MOVE TOTAL TO CRSR-CLN.
 | 
			
		||||
           DISPLAY "Affectation terminee ! Colonne actuelle : " TOTAL.
 | 
			
		||||
       VAL-SUIV.
 | 
			
		||||
           DISPLAY "Affectation des valeurs suivantes...".
 | 
			
		||||
           MULTIPLY NBR-DPRT BY NBR-DPRT GIVING TOTAL.
 | 
			
		||||
           MOVE TOTAL TO NBR-CRR.
 | 
			
		||||
           PERFORM TRAITEMENT UNTIL VALEUR EQUAL TO NBR-CRR.
 | 
			
		||||
           DISPLAY "Affectations terminees ! Total : " VALEUR.
 | 
			
		||||
       AFFICHAGE.
 | 
			
		||||
           DISPLAY "AFFICHAGE DU TABLEAU".
 | 
			
		||||
           MOVE 1 TO CRSR-LGN.
 | 
			
		||||
           MOVE 1 TO CRSR-CLN.
 | 
			
		||||
           PERFORM PARCOURS VARYING CRSR-LGN FROM 1 BY 1 UNTIL CRSR-LGN
 | 
			
		||||
                 > NBR-DPRT.
 | 
			
		||||
      * AFTER CRSR-CLN FROM 1 BY 1 UNTIL CRSR-CLN
 | 
			
		||||
      *           > NBR-DPRT.
 | 
			
		||||
           DISPLAY "AFFICHAGE TERMINE".
 | 
			
		||||
 | 
			
		||||
      *
 | 
			
		||||
      * Arborescence niveau 3 : TRAITEMENT PLACEMENT
 | 
			
		||||
      *
 | 
			
		||||
       TRAITEMENT SECTION.
 | 
			
		||||
       INCREMENTE.
 | 
			
		||||
           ADD 1 TO VALEUR.
 | 
			
		||||
       MLTPL.
 | 
			
		||||
           DIVIDE VALEUR BY NBR-DPRT GIVING TOTAL REMAINDER RST.
 | 
			
		||||
           IF (RST EQUAL TO 1) THEN
 | 
			
		||||
               PERFORM SS-PLCMT
 | 
			
		||||
               ELSE PERFORM SR-PLCMT.
 | 
			
		||||
       VERIFICATION.
 | 
			
		||||
           PERFORM VERIFIER.
 | 
			
		||||
       PLACEMENT.
 | 
			
		||||
           DISPLAY "|_Affectation de : " VALEUR.
 | 
			
		||||
           MOVE VALEUR TO CNTN(CRSR-LGN,CRSR-CLN).
 | 
			
		||||
           DISPLAY "|  Affectee a : " CRSR-LGN ", "CRSR-CLN.
 | 
			
		||||
 | 
			
		||||
      *
 | 
			
		||||
      * Arborescence niveau 3 : Affichage du tableau
 | 
			
		||||
      *
 | 
			
		||||
       AFFICHER SECTION.
 | 
			
		||||
       PARCOURS.
 | 
			
		||||
           PERFORM AFFICHE VARYING CRSR-CLN FROM 1 BY 1 
 | 
			
		||||
               UNTIL CRSR-CLN >= NBR-DPRT.
 | 
			
		||||
           DISPLAY "|" CNTN(CRSR-LGN,CRSR-CLN) "|".
 | 
			
		||||
       AFFICHE.
 | 
			
		||||
           DISPLAY "|" CNTN(CRSR-LGN,CRSR-CLN) "|"
 | 
			
		||||
               WITH NO ADVANCING.
 | 
			
		||||
 | 
			
		||||
      *
 | 
			
		||||
      * Arborescence niveau 4 : MULIPLE + 1
 | 
			
		||||
      *
 | 
			
		||||
       MULTPL SECTION.
 | 
			
		||||
       SS-PLCMT.
 | 
			
		||||
           ADD 1 TO CRSR-LGN.
 | 
			
		||||
       SR-PLCMT.
 | 
			
		||||
           SUBTRACT 1 FROM CRSR-LGN.
 | 
			
		||||
           SUBTRACT 1 FROM CRSR-CLN.
 | 
			
		||||
 | 
			
		||||
      *
 | 
			
		||||
      * Arborescence niveau 4 : VERIFICATION LIGNE / COLONNE
 | 
			
		||||
      *
 | 
			
		||||
       VERIFIER SECTION.
 | 
			
		||||
       LIGNE.
 | 
			
		||||
           IF (CRSR-LGN < 1) THEN
 | 
			
		||||
               MOVE NBR-DPRT TO CRSR-LGN.
 | 
			
		||||
           IF (CRSR-LGN > NBR-DPRT) THEN
 | 
			
		||||
               MOVE 1 TO CRSR-LGN.
 | 
			
		||||
       COLONNE.
 | 
			
		||||
           IF (CRSR-CLN < 1) THEN
 | 
			
		||||
               MOVE NBR-DPRT TO CRSR-CLN.
 | 
			
		||||
           IF (CRSR-CLN > NBR-DPRT) THEN
 | 
			
		||||
               MOVE 1 TO CRSR-CLN.
 | 
			
		||||
							
								
								
									
										91
									
								
								P5B1/palind.cbl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								P5B1/palind.cbl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
			
		||||
       IDENTIFICATION DIVISION.
 | 
			
		||||
       PROGRAM-ID. palind.
 | 
			
		||||
       AUTHOR. OD.
 | 
			
		||||
      *-------------------------------------------*
 | 
			
		||||
      * PROGRAMME DE VERIFICATION D'UN PALINDROME *
 | 
			
		||||
      *-------------------------------------------*
 | 
			
		||||
       
 | 
			
		||||
       ENVIRONMENT DIVISION.
 | 
			
		||||
       DATA DIVISION.
 | 
			
		||||
       
 | 
			
		||||
       WORKING-STORAGE SECTION.
 | 
			
		||||
      *--------------------------*
 | 
			
		||||
      * DEFINITION DES VARIABLES *
 | 
			
		||||
      *--------------------------*
 | 
			
		||||
      * LE MOT DONNE PAR L'UTILISATEUR
 | 
			
		||||
       77 MOT PICTURE X(255) VALUE SPACE.
 | 
			
		||||
      * RESULTAT DU PROGRAMME (ICI ON DIRA "CECI EST UN PALINDROME") 
 | 
			
		||||
      * OU PAS)
 | 
			
		||||
       77 RESULTAT PICTURE X(30) VALUE SPACE.
 | 
			
		||||
      * DEBUT-MOT ET DBUT-FIN SUBISSENT UNE INCREMENTATION
 | 
			
		||||
      * CE SONT LES CURSEURS
 | 
			
		||||
       77 DEBUT-MOT PICTURE 99 VALUE 1.
 | 
			
		||||
       77 FIN-MOT PICTURE 99 VALUE 30.
 | 
			
		||||
      * LETTREG CONTIENDRA UNE LETTRE DU MOT, CELLE COTE GAUCHE
 | 
			
		||||
      * LETTRED, CELLE COTE DROITE
 | 
			
		||||
       77 LETTREG PICTURE X VALUE SPACE.
 | 
			
		||||
       77 LETTRED PICTURE X VALUE SPACE.
 | 
			
		||||
      * DEFINITION DE QUELQUES VALEUR NUMERIQUES
 | 
			
		||||
      * POUR LES CONTROLES
 | 
			
		||||
       01 ETUDE-ENONCE.
 | 
			
		||||
           05 COMP-VALID PICTURE 9 VALUE 1.
 | 
			
		||||
               88 COMP-CORRECT VALUE 1.
 | 
			
		||||
           05 CARAC-DEB PICTURE 9 VALUE 1.
 | 
			
		||||
               88 CARACD-CORRECT VALUE 1.
 | 
			
		||||
           05 CARAC-FIN PICTURE 9 VALUE 1.
 | 
			
		||||
               88 CARACF-CORRECT 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 MOT.
 | 
			
		||||
      *------*
 | 
			
		||||
      * TEST *
 | 
			
		||||
      *------*
 | 
			
		||||
           DISPLAY MOT.
 | 
			
		||||
       
 | 
			
		||||
      *TRAITEMENT DE LA PHRASE
 | 
			
		||||
       TRAITEMENT SECTION.
 | 
			
		||||
       TRAITER.
 | 
			
		||||
           PERFORM COMPARER UNTIL NOT COMP-CORRECT.
 | 
			
		||||
      *VALIDE IS NOT EQUAL TO 1.
 | 
			
		||||
       
 | 
			
		||||
      *COMPARAISON DE LA CHAINE DE CARACT<43>RE
 | 
			
		||||
       COMPARER.
 | 
			
		||||
           DISPLAY DEBUT-MOT.
 | 
			
		||||
           DISPLAY FIN-MOT.
 | 
			
		||||
      *     PERFORM PARCOURS-FIN UNTIL NOT CARACF-CORRECT.
 | 
			
		||||
           MOVE ZERO TO COMP-VALID.
 | 
			
		||||
       
 | 
			
		||||
      *PARCOURS DE LA CHAINE DE FIN
 | 
			
		||||
       PARCOURS-FIN.
 | 
			
		||||
           DISPLAY "DERNIERE LETTRE DU MOT : " MOT(FIN-MOT:1).
 | 
			
		||||
           IF (MOT(FIN-MOT:1) EQUAL TO SPACE) THEN
 | 
			
		||||
               SUBTRACT 1 FROM FIN-MOT
 | 
			
		||||
               ELSE MOVE 1 TO CARAC-FIN
 | 
			
		||||
           END-IF.
 | 
			
		||||
      *     MOVE MOT(FIN-MOT:1) TO LETTRE.
 | 
			
		||||
      *     PERFORM CAL-CHFFRE UNTIL LETTRE NOT EQUAL TO SPACE.
 | 
			
		||||
      *     IF (MOT(DEBUT-MOT:1) EQUAL TO MOT(FIN-MOT:1))
 | 
			
		||||
      *         MOVE 1 TO VALIDE
 | 
			
		||||
      *     END-IF.
 | 
			
		||||
       
 | 
			
		||||
      *CALCUL DU CHIFFRE DE LA LETTRE <20> COMPARER
 | 
			
		||||
       CAL-CHFFRE.
 | 
			
		||||
           IF (MOT(FIN-MOT:1) EQUAL TO SPACE) THEN
 | 
			
		||||
               SUBTRACT 1 FROM FIN-MOT
 | 
			
		||||
           END-IF.
 | 
			
		||||
		Reference in New Issue
	
	Block a user