Correction du TD n°2
Ecrire un algorithme qui, à partir d'une date donnée sous la forme jour, mois, année, calcule la date du lendemain.
001 { Test si une annee est bissextile }
002
003 action testBissextile(a,bsxt)
004 Donnees a : entier { l'annee a tester }
005 Resultats bsxt : booleen { le booleen resultat (vrai si a bissextile }
006 bsxt := faux
007 si (a modulo 4) = 0 alors
008 bsxt := vrai
009 fsi
010 si (a modulo 100) = 0 alors
011 bsxt := faux
012 fsi
013 si (a modulo 400) = 0 alors
014 bsxt := vrai
015 fsi
016 fin action
017
018 { Calcul du nombre de jours d'une annee }
019 { eventuellement bissextile }
020
021 action nombreJoursMois(m,a,nb)
022 Donnees m : entier { le mois de calcul }
023 a : entier { l'annee de calcul }
024 Resultats nb : entier { l'entier resultat }
025 Locales bsxt : booleen
026 dans le cas de
027 m
028 1 :
029 3 :
030 5 :
031 7 :
032 8 :
033 10 :
034 12 : nb := 31
035 4 :
036 6 :
037 9 :
038 11 : nb := 30
039 2 : testBissextile(a,bsxt)
040 si bsxt alors
041 nb := 29
042 sinon
043 nb := 28
044 fsi
045 fin cas de
046 fin action
047
048 { Calcul de la date du lendemain }
049
050 action dateLendemain(ji,mi,ai,jf,mf,af)
051 Donnees ji : entier { le jour de calcul }
052 mi : entier { le mois de calcul }
053 ai : entier { l'annee de calcul }
054 Resultats jf : entier { le jour resultat }
055 mf : entier { le mois resultat }
056 af : entier { l'annee resultat }
057 Locales jm : entier { variable locale de stockage du nombre }
058 { de jours du mois de l'annee de calcul }
059 nombreJoursMois(mi,ai,jm)
060 si ji < jm alors
061 jf := ji+1
062 mf := mi
063 af := ai
064 sinon
065 jf := 1
066 si mi < 12 alors
067 mf := mi+1
068 af := ai
069 sinon
070 mf := 1
071 af := ai+1
072 fsi
073 fsi
074 fin action
Auteur: Nicolas JANEY
UFR Sciences et Techniques
Université de Besançon
16 Route de Gray, 25030 Besançon
nicolas.janey@univ-fcomte.fr