Bookmark and Share

Liens sponsorisés

Jours Print E-mail
Written by Administrator   
Saturday, 15 March 2008 14:23

Source : Classique 

Écrire un algorithme et un programme intitulé JOURS, qui affiche le nombre de jours d'un mois donné.

On convient que le mois est saisi sous forme d'un entier ente 1 et 12

Remarque : pour le moi de Février (2) le programme demandera l'année. 

Exemple

  • Entrée : 4
  • Sortie : 30

Correction :

Par : M. Rached Douari

Il s'agit de déterminer le nombre de jours d'un mois donné. Le problème se pose pour le mois de février qui est de 29 jours pour les années bissextiles. Une année est bissextile si elle est divisible par 4 quand elle est non multiple de 100 sinon c'est son quotient par 100 qui doit être multiple de 4. Exemple : 1900 est une année non bissextile par contre 2000 l'est.

.

Analyse du problème

 

NOM = nbr_jours_mois

 

S

L.D.E.

O.U.

2
1

 

 

 
 3

Résultat = Écrire("Le nombre de jours du mois saisi est ", nbj)
nbj = [Lire("N° mois : ", m), nbj = 31 ] si (m dans {4,6,9,11}) alors
                                                [nbj = 30]
             sinon 
 [Lire("Année : ",an), nbj=28] si (an MOD 400 = 0) or ((an MOD 4 =0)            and (an MOD 100)<>0) alors  
           
[nbj = 29]
            FinSi
Fin nbr_jours_mois

nbj
m
an

Codification des variables

Nom

Code

Type

Rôle

nbj

nbj

entier

Nombre de jours

m

m

entier

Numéro du mois

an

an

entier

représente l'année

 

Algorithme

0)      début nbr_jours_mois
1)       [Lire("N° mois : ", m), nbj = 31 ] si (m dans {4,6,9,11}) alors
                                                [nbj = 30]
            sinon  [ Lire("Année : ",an), nbj=28] si (an MOD 400 = 0) ou ((an MOD 4 =0) et (an MOD 100)<>0) alors
                                          [nbj = 29]
2)      Écrire("Le nombre de jours du mois saisi est ", nbj)
3)      Fin nbr_jours_mois

 

Traduction en Pascal

PROGRAM nbr_jours_mois;
USES  CRT;
VAR  nbj, m, an : INTEGER;

BEGIN

    WRITE('N°mois : ') ; READLN(m) ;
    nbj :=31;
    IF m IN {4,6,9,11} THEN
                BEGIN
              nbj :=30;
                END
    ELSE
                BEGIN
                   WRITE('Année : ',an);nbj := 28;
                  IF (an MOD 400 = 0) OR ((an MOD 4 = 0) AND (an MOD100)<>0) THEN
                            BEGIN
                            nbj := 29;
                            END;
                END;
    WRITELN('Le nombre de jours du mois saisi est ', nbj);

END.

 

 

 

 

Liens sponsorisés