Les dates Recherche d’un algorithme pour déterminer si une année est bissextile ou non.

Présentations similaires


Présentation au sujet: "Les dates Recherche d’un algorithme pour déterminer si une année est bissextile ou non."— Transcription de la présentation:

1 Les dates Recherche d’un algorithme pour déterminer si une année est bissextile ou non

2 Algorithme avec conditions simples (1/6)
2 Solutions : - Arbre équilibré - Arbre déséquilibré

3 Algorithme avec conditions simples (2/6)
Arbre équilibré : SI (a % 100 == 0) ALORS SI (a % 400 == 0) ALORS a est bissextile SINON a n'est pas bissextile FIN SI SINON SI (a % 4 == 0)

4 Algorithme avec conditions simples (3/6)
Arbre équilibré : vrai faux a % 100 = 0 vrai faux vrai faux a % 4 = 0 a % 400 = 0 Bissextile Non bissextile Bissextile Non bissextile

5 Algorithme avec conditions simples (4/6)
Arbre déséquilibré : SI (a % 4 == 0) ALORS SI (a % 100 == 0) SI (a % 400 == 0) ALORS a est bissextile SINON a n'est pas bissextile FIN SI SINON a est bissextile

6 Algorithme avec conditions simples (5/6)
Arbre déséquilibré : vrai faux a % 4 = 0 vrai faux Non bissextile a % 100 = 0 vrai faux a % 400 = 0 Bissextile Bissextile Non bissextile

7 Algorithme avec conditions simples (6/6)
Quand utiliser quel algorithme et pourquoi ???

8 Algorithme avec condition composée
SI (a % 4 == 0 && ((a % 100 != 0) || (a % 400 == 0))) ALORS a est bissextile SINON a n'est pas bissextile FIN SI

9 Les dates Déterminer le nombre de jours que comporte un mois (m) donné d’une année (a) donnée.

10 switch (b) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf ("31 jours\n"); break; case 4: case 6: case 9: case 11: printf ("30 jours\n"); case 2: if ((a % 4 == 0) && ((a % 100 != 0) || (a % 400 == 0))) printf ("29 jours\n"); else printf ("28 jours\n"); default: printf ("Le numero de mois est incorrect\n"); }

11 Les dates Demander le jour (j), le mois (m) et l’année (a) et déterminer si la date ainsi constituée est correcte.

12 printf ("Entrez l'annee : ");
scanf ("%d", &a); while (a < 1600 || a > 3000) { printf ("L'annee doit etre comprise entre 1600"); printf (" et Veuillez a nouveau "); printf ("entrez l'annee : "); } printf ("Entrez le mois : "); scanf ("%d", &m); while (m < 1 || m > 12) printf ("Donnez une valeur entre 1 et 12.\n"); printf ("Entrez a nouveau le mois : "); printf ("Entrez le jour : "); scanf ("%d", &j); while (j < 1 || j > 12) printf ("Donnez une valeur entre 1 et 31.\n"); printf ("Entrez a nouveau le jour : ");

13 switch (m) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf ("Date correcte\n"); break; case 4: case 6: case 9: case 11: if (j < 31) else printf ("Date incorrecte\n");

14 case 2: if ((a % 4 == 0) && ((a % 100 != 0) || (a % 400 == 0))) { if (j < 30) printf ("Date correcte\n"); else printf ("Date incorrecte\n"); } if (j < 29)


Télécharger ppt "Les dates Recherche d’un algorithme pour déterminer si une année est bissextile ou non."

Présentations similaires


Annonces Google