Coucou, j'ai un petit soucis avec l'éxercice suivant... j'ai grand besoin d'aide ^_^
"L'utilisateur encode en
une seule fois une date sous la forme AAAAMMJJ supposée correcte (donc n pas valider la date). Déterminer et afficher la date correspondant au
jour précédent. Procédez à la déclaration des données."
Valeur introduites Résultat à obtenir
Date Date précédente
20081212 20081211
20080101 20071231
Tout ça en pseudo-code...
J'en suis arriver la conclusion suivantes, mais doute du résonnement... car les possibilité sont limité à ce qu l'on à vu aux cours... là j'utilise le modulo, mais...
Pouvez-vous me dire si je suis dans l'erreur. Merci d'avance
Var_name | Type | Size |
Date Jour Mois Année Correct_date | Nombre entier Nombre entier Nombre entier Nombre entier Nombre entier | 8 2 2 4 8 |
Lire date AAAAMMJJ
Calculer jour = date % 100
Calculer mois = ((date - jour) / 100) % 100
Calculer année = (date - ((mois * 100) + jour)) / 10000
SI (mois =2) (v)
ALORS affecter 28 à jour
SINON
SI (mois = 2 et année Modulo 4 = 0) (v)
ALORS affecter 29 à jour
SINON
SI (mois = 1 ou 3 ou 5 ou 7 ou 8 ou 10 ou 12) (v)
ALORS affecter 31 à jour
SINON
SI (mois = 4 ou 6 ou 9 ou 11) (v)
ALORS affecter 30 à jour
SINON
SI (jour = 1 et mois = 1) (v)
ALORS calculer année -1
Affecter 12 à mois
SINON
SI (mois <1 ou >12) (f)
ALORS écrire « erreur de donnée »
SINON
Calculer correct_date
(année * 10000 + ((mois * 100) + jour)) - 1
FINSI
FINSI
FINSI
FINSI
FINSI
FINSI
Ecrire correct_date
Fin du programme