|
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 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.
|