Inscription / Connexion Nouveau Sujet
Niveau autre
Partager :

algorithme/ incrémenter une date

Posté par
rasta1
12-05-14 à 11:42

Bonjour
J'ai un exercice d'algorithme qui me demande d'écrire les premiers niveaux de raffinage et de programme complet qui étant donné une date permet d'augmenter d'un jour. On ne fait pas de controle juste l'incrémentation.
Je pensais passer par un enregistrement. Je pense faire une déclaration
pour les jours : entiers de 1 à 31
pour les mois janvier = 1 et ainsi de suite jusque décembre = 12
pour les années : je dois prendre en compte les années bissextiles mais comment faire ?
Et puis surtout je ne sais pas détaillé chaque étape
Si quelqu'un peut m'aider, merci beaucoup

Posté par
Glapion Moderateur
re : algorithme/ incrémenter une date 12-05-14 à 13:25

Bonjour, commence par te demander comment tu le ferais à la main. On te donne une date (par exemple sous la forme de 3 variables J ; M ; A et tu dois fournir en retour la date du jour d'après, comment fais-tu ?.

Posté par
pythamede
re : algorithme/ incrémenter une date 12-05-14 à 13:26

Je pense faire une déclaration
pour les jours : entiers de 1 à 31


Note que le nombre de jour d'un mois dépend du mois et de l'année (bissextile ou pas)
Je pense faire une déclaration
pour les années : je dois prendre en compte les années bissextiles mais comment faire ?


Il faut savoir que les années bissextiles sont les années dont le numéro est divisible par 4 à l'exception des années dont le numéro est divisible par 400.

2004,2008 sont bissextiles, de même que 1900, mais 1600 ne l'était pas et 2000 non plus

Posté par
Surb
re : algorithme/ incrémenter une date 12-05-14 à 13:36

Bonjour,

Ce que j'ai de la peine à comprendre dans la question de rasta1 est:

Citation :
On ne fait pas de controle juste l'incrémentation.


Est-ce que ça veut dire: pas de "if else" ni de "while" ou de "do while" ?
Car dans ce cas, ça me semble sensiblement plus compliqué (si possible), et je ne vois pas l'intérêt d'une telle contrainte.
Si ce n'est pas le cas, le modèle (année, mois, jour) semble juste, reste plus qu'à mettre plein de conditions sur "jour+1" en fonction de année et mois
Une chose est certaine:

if jour<28
   return (année, mois, jour+1)
end if

Posté par
lafol Moderateur
re : algorithme/ incrémenter une date 12-05-14 à 18:25

bonjour
pythamede, c'est le contraire, pour les siècles : xy00 n'est bissextile que si xy est multiple de 4
1600 et 2000 ont été bissextiles, 1900 ne l'était pas et 2100 ne le sera pas (pour 2000 tu peux t'en convaincre en regardant le calendrier de ton ordi ...)

Posté par
delta-B
re : algorithme/ incrémenter une date 12-05-14 à 19:16

Bonjour.

La 1ère chose à faire est d'extraire à partir de la date donnée sous forme numérique l'année a, le mois m et le jour j. (a,m et j sont des entiers)
Déclarer un tableau Nbj(I) de dimension 12 dans lequel I est le numéro du mois et pour I donné, Nbj(I) est le nombre de jours du mois, Nbj(1)=31, Nbj(2)=28, Nbj(3)=31, ..., Nbj(12)=31
Déterminer si l'année a est bissextile ou non, si oui nbj(2)=29
Si j < nbj(m)
  j=j+1
sinon
  m=m+1
  j=1
  si m+1=13
    m=1
    a=a+1
  fin si
fin si
  

Posté par
delta-B
re : algorithme/ incrémenter une date 12-05-14 à 19:24

il manquait l'affichage.
afficher la nouvelle date.

Posté par
pythamede
re : algorithme/ incrémenter une date 12-05-14 à 19:57

Citation :
pythamede, c'est le contraire, pour les siècles : xy00 n'est bissextile que si xy est multiple de 4
1600 et 2000 ont été bissextiles, 1900 ne l'était pas et 2100 ne le sera pas (pour 2000 tu peux t'en convaincre en regardant le calendrier de ton ordi ...)


Ouppss ! Faute d'inattention ! Merci d'avoir corrigé lafol



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1742 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !