Les structures Conditionnelles

 Mise à jour le : 01/11/2004

Énoncé
Écrire un programme Pascal qui lit l'ordre de mois et affiche le nombre de jours correspondant. 

Méthode 1                                                Méthode 2                                    Méthode 3

I) La préanalyse :











 
II) L'analyse :

Nom = NBRE_JOURS

Séquences Liste des définitions Explicites Objets Utilisés
 3 Résultat = Ecrire(NBRJ)  
2

NBRJ = Si (M=1) ou (M=3) ou (M=5) ou (M=7) ou (M=8) ou (M=10) ou (M=12)

 
                               Alors  
 
                                      NBRJ ß    31
 
                              Sinon M
                                        Si (M=4) ou (M=6) ou (M=9) ou (M=11) NBRJ
                                                  Alors
                                                            NBRJ ß   30  
                                                 Sinon  
                                                                      Répéter  
                                                                               Lire(A)   
                                                                     Jusqu'à A>0  
                                                                               Si (A Mod 4=0)  
                                                                                           Alors  
                                                                                                 NBRJ ß   29  
                                                                                           Sinon  
                                                                                                 NBRJ ß    28  
                                                                                Finsi  
                                            FinSi   
                 Finsi  
1 Répéter  
           Lire(M)  
  Jusqu'à (M>=1) et (M<=12)  
4 Fin NBRE_JOURS  
III) Le tableau de déclaration des objets :
Objets Utilisés Nature/Type Rôle
M Variable/Entier

L'ordre du mois

A Variable/Entier

L'année

NBRJ Variable/Entier

Nombre de jours

IV) L'algorithme :
0- Début NBRE_JOURS
1-  Répéter
           Lire(M)
  Jusqu'à (M>=1) et (M<=12)
2-
       Si (M=1) ou (M=3) ou (M=5) ou (M=7) ou (M=8) ou (M=10) ou (M=12)
 
                             Alors
 
                                      NBRJ ß    31
 
                            Sinon
                                       Si (M=4) ou (M=6) ou (M=9) ou (M=11)
                                                  Alors
                                                            NBRJ ß    30
                                                  Sinon
                                                                      Répéter
                                                                               A = Donnée
                                                                     Jusqu'à A>0
                                                                             Si (A Mod 4=0)
                                                                                           Alors
                                                                                                 NBRJ ß    29
                                                                                           Sinon
                                                                                                 NBRJ ß    28
                                                                                Finsi
                                                FinSi 
 
               Finsi
3- 
Ecrire(NBRJ)
4-
Fin NBRE_JOURS
V) La traduction en turbo pascal :
Program NBRE_JOURS;
uses Wincrt;
Var M, NBRJ, A : Integer;
Begin
	Repeat
		Write('Mois :');
		Readln(M);
	Until (M>=1) And (M<=12);
             If (M=1) or (M=3) or (M=5) or (M=7) or (M=8) or (M=10) or (M=12)
                     Then
                              NBRJ : = 31
                     Else
                            Si (M=4) or (M=6) or (M=9) or (M=11)
                                     Then
                                              NBRJ : = 30
                                      Else
                                            Begin
                                                    Repeat
                                                             Write('Année :');
	                                                 Readln(A);
                                                     Until A>0;
                                                     If A Mod 4=0
                                                           Then
                                                                   NBRJ : = 29
                                                           Else
                                                                   NBRJ : = 28;
                                             End;
	Write('Le nombre de jours est : ',NBRJ);
End.
V) La traduction en langage C++ :
// programme mois  
#include <stdio.h>
int main()
{int m,a,nbrj;
         printf ("m=");
         scanf ("%d",&m);
         if ( (m==1) || (m==3) || (m==5) || (m==7) || (m==8) || (m==10) || (m==12) )
                          nbrj=31;
                     else
                           if ( (m==4) || (m==6) || (m==9) || (m==11) )
                                       nbrj=30;
                                   else
                                          {printf ("a=");
                                           scanf ("%d",&a);
                                           if (a%4==0)
                                                     nbrj=29;
                                                 else
                                                     nbrj=28;}
         printf ("nbrj=%d",nbrj);
getchar();getchar();
}

Page d'index Série structures conditionnelles Haut