Page 1 of 1

Algorithmes dates / années

Unread postPosted: 05 Mar 2011, 06:44
by brahimmed30
Est ce qu'il ya un programmeur en c qui peut m'aider ....
je cherche trés urgent les algorithmes suivants
- "Bissextlle" qui renvoie 1 si l'année est bissextille et 0 sinon
- "Date juste" qui renvoie 1 si une date saisie est juste ,0 sinon
- "lendemain" qui à partir d'une donnée de type date détermine la date du lendemain
-"compare_date" qui renvoie 1 si une date d1 est plus grande qu 'une date dé ,0 si elles sont égales , et 1 si d2d1

une autre question comment va executer mes programmes c sous ma ti nspire considérons que j'ai Ndless installé...

j'attends curieusement vos répenses..................!!!! :#mad#: !

Re: Algorithmes dates / années

Unread postPosted: 05 Mar 2011, 08:36
by Bisam
Tes programmes en C doivent avoir été compilés puis convertis en classeur pour TI-nspire avant d'être utilisables sur ta calculatrice.

Mais ce genre de programme serait écrit et exécuté bien plus facilement avec le langage BASIC de la calculette (qui en plus sait déjà manipuler des dates).

Par conséquent, je ne pense pas que ce soit le but de ton exercice... et donc l'utilisation de la calculatrice ne me paraît pas approprié.

Enfin, sache que nous ne sommes pas des machines à faire les exercices donc tu devras chercher tes algorithmes tout seul (même si j'imagine que ces algorithmes sont faciles à trouver sur un site consacré au codage en C, ce qui n'est pas le cas de ce site où l'on parle de calculatrices).

Re: Algorithmes dates / années

Unread postPosted: 05 Mar 2011, 10:19
by Folco
http://fr.wikipedia.org/wiki/Ann%C3%A9e_bissextile

Ca te donne la règle pour connaitre une année bisextile selon le calendrier grégorien (le nôtre).
Plus qu'à l'appliquer. :)

Et sinon, quel est ton format de date ? Un tableau de trois int ? Un temps en seconde depuis une date donnée ? Dur de te donner un algo sans rien savoir de ça ^^

Re: Algorithmes dates / années

Unread postPosted: 06 Mar 2011, 14:35
by brahimmed30
c'est un tableau de trois int ...FOLCO

Re: Algorithmes dates / années

Unread postPosted: 06 Mar 2011, 15:36
by critor
Le plus facile alors :#langue#:

Re: Algorithmes dates / années

Unread postPosted: 06 Mar 2011, 20:56
by Folco
Bon, voyons les algos :

- "Bissextile" qui renvoie 1 si l'année est bissextille et 0 sinon

Là, c'est très simple, regarde la page que je t'ai donnée, ça tient en une ligne.
- "Date juste" qui renvoie 1 si une date saisie est juste ,0 sinon

Je ne peux rien dire, ça dépend de ton format d'entrée. Tu récupères quoi ? Trois strings ? Des entiers ?
- "lendemain" qui à partir d'une donnée de type date détermine la date du lendemain

Si on définit DATE ainsi :
Code: Select all
typedef struct
{
    int Jour;
    int Mois;
    int Annee;
} DATE;

alors l'idée naïve est celle-ci :
Code: Select all
void Lendemain(DATE* Date)
{
    Date-Jour ++;

    Si (Date-Jour  DernierJourDuMois(Date))
    {
        Date-Mois ++;
        Date-Jour = 1;
    }

    Si (Date-Mois == 13)
    {
        Date-Annee ++;
        Date-Mois = 1;
    }
}

Et pour DernierJourDuMois :
Code: Select all
int DernierJourDuMois (DATE* Date)
{
    const int DernierJour[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    int Jour = DernierJour[Date-Mois - 1];

    Si ((Date-Mois == 2) ET EstBissextile(Date-Annee))
        Jour = 29;

    retourne Jour;
}

Voilà, c'est très simple comme tu vois.
-"compare_date" qui renvoie 1 si une date d1 est plus grande qu 'une date dé ,0 si elles sont égales , et -1 si d2d1

Code: Select all
int CompareDates (DATE* Date1, DATE* Date2)
{
    Si ((Date1-Annee == Date2-Annee) ET (Date1-Mois == Date2-Mois) ET (Date1-Jour == Date2-Jour))
        retourne 0;

    Si  ((Date1-Annee  Date2-Annee)
        OU ((Date1-Annee = Date2-Annee) ET (Date1-Mois  Date2-Mois))
        OU (((Date1-Annee = Date2-Annee) ET (Date1-Mois = Date2-Mois)) ET (Date1-Jour  Date2-Jour)))
        retourne 1;

    retourne -1;
}


Par contre, je me permets de te dire que je ne t'aiderai pas beaucoup plus. Ca ne demande pas des masses de réflexion, ou alors si tu patines à ce niveau, je ne peux que te conseiller amicalement de t'orienter vers des projets simples pour bien comprendre les mécanismes de la programmation. :):

Re: Algorithmes dates / années

Unread postPosted: 07 Mar 2011, 08:11
by brahimmed30
merci beaucoup FALCO trés cordialement

Re: Algorithmes dates / années

Unread postPosted: 07 Mar 2011, 11:57
by Folco
FOlco :#zzz#: