IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

algo pour donner la date du lendemain.


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par défaut algo pour donner la date du lendemain.
    bonjour,
    voila j'ai un algo a faire. Il faut demander a l'utilisateur d'etree la date du jour sous la forme aaaa/mm/jj. Mais il faut faire attention aux années bisextiles.

    Bon tout d'abors nous n'avons pas encore vu les boucles, nous avons vu les switchet les Si.. alors...sinon. Je sais par ou commencer mais je ne sais pas comement m'y prendre pour les années bisextilles.

    Et je ne sais pas non plus comment faire quand ca change d'année.

    Je ne veux pas que vous le fassiez je voudrais juste quelques conseils.
    Merci

    [edit] Faut il faire une imbrication de si?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 192
    Par défaut
    Citation Envoyé par vanilla94
    [edit] Faut il faire une imbrication de si?
    Oui, tu pourrais même avoir à imbriquer un si dans un switch.

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par défaut
    je me doutais qu'il allait y avoir plein d'imbrications.

    Et pour les année bisextiles tu n'aurais pas une astuce?!

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 192
    Par défaut
    Pour les années bissextiles, fais un si dans le cas du switch correspondant au mois de février.
    Tu peux même avoir plusieurs si dans ce cas si tu considères qu'une année est bissextile ssi est multiple de 4, mais pas de 100 à moins qu'elle ne soit multiple de 400.

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par défaut
    juste pour le mois de frvrier ca ferais ca?!:

    suivant
    cas 02:
    T<-- reste(anné/4)
    si T=0 alors
    il y a 29 jours
    sinon
    il y a 28 jours
    C'est tres incomplet je sais mais c'est juste sur le principe.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 192
    Par défaut
    Oui, sans oublier "Fin Si", si tu considères qu'une année est bissextile si elle est un multiple de 4 (si on veut être précis, 1800 et 1900 ne l'étaient pas, mais 2000 si).

  7. #7
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Bonjour,

    Borisd t'a donné la solution pour savoir si une année est bissextile.
    Maintenant, il existe un petit algo qui permet de te donner le jour de la semaine en fonction de la date : google est ton ami.
    Avec les deux, tu peux gérer sans aucun problème ton exercice.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  8. #8
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut le lendemain
    #include <iostream>
    class Date
    {
    private:
    int jour;
    int mois;
    int an;
    public:
    // constructeur
    Date (int j,int m,int a)
    {
    jour=j;
    mois=m;
    an=a;
    }
    // Affiche la date
    void Show()
    {
    std::cout<<"\n"<<jour<<":"<<mois<<":"<<an<<"\n";
    }
    // test année bissextile
    bool AnneeBissextile ()
    {
    if (!an%400) return true;
    if (!an%100) return false;
    if (!an%4) return true;
    return false;
    }
    // Calcule si fin d'année
    bool FinAnnee ()
    {
    return (mois==12)&&(jour==31);
    }

    bool FinMois ()
    {
    switch (mois)
    {
    case 1:
    return jour==31;
    case 2:
    return AnneeBissextile()?jour==29:jour==28;
    case 3:
    return jour==31;
    case 5:
    return jour==31;
    case 7:
    return jour==31;
    case 8:
    return jour==31;
    case 10:
    return jour==31;
    case 12:
    return jour==31;
    default:
    return jour==30;
    }
    }

    Date Lendemain ()
    {
    if (FinAnnee()) return Date(1,1,an+1);
    else if (FinMois()) return Date(1,mois+1,an);
    return Date(jour+1,mois,an);
    }

    };



    int main()
    {
    Date D1(31,12,2006);
    D1.Lendemain().Show();
    Date D2(30,11,2006);
    D2.Lendemain().Show();
    Date D3(3,11,2006);
    D3.Lendemain().Show();

    return 0;
    }
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 02/09/2014, 21h43
  2. Réponses: 12
    Dernier message: 14/10/2011, 21h52
  3. [Conception] Additionner le nombre de jours pour donner une date
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/11/2006, 09h03
  4. Algo pour écrire un chiffre
    Par Skyw4lKR dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 11/08/2004, 13h32
  5. Réponses: 7
    Dernier message: 13/12/2003, 14h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo