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

Les dates

  • Upload
    barto

  • View
    33

  • Download
    0

Embed Size (px)

DESCRIPTION

Les dates. Recherche d’un algorithme pour déterminer si une année est bissextile ou non. Algorithme avec conditions simples (1/6). 2 Solutions :. - Arbre équilibré. - Arbre déséquilibré. Algorithme avec conditions simples (2/6). Arbre équilibré : SI (a % 100 == 0) ALORS - PowerPoint PPT Presentation

Citation preview

Page 1: Les dates

Les datesLes dates

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

Page 2: Les dates

Algorithme avec Algorithme avec conditions simples conditions simples (1/6)(1/6)

2 Solutions :2 Solutions :

- Arbre équilibré

- Arbre déséquilibré

Page 3: Les dates

Algorithme avec Algorithme avec conditions simples conditions simples (2/6)(2/6)

Arbre équilibré :Arbre équilibré :

SISI (a % 100 == 0) (a % 100 == 0)ALORSALORS

SISI (a % 400 == 0) (a % 400 == 0)ALORSALORS a est bissextile a est bissextileSINONSINON a n'est pas bissextile a n'est pas bissextile

FIN SIFIN SISINONSINON

SISI (a % 4 == 0) (a % 4 == 0)ALORSALORS a est bissextile a est bissextileSINONSINON a n'est pas bissextile a n'est pas bissextile

FIN SIFIN SIFIN SIFIN SI

Page 4: Les dates

Algorithme avec Algorithme avec conditions simples conditions simples (3/6)(3/6)

Arbre équilibré :Arbre équilibré :

a % 100 = 0

a % 400 = 0 a % 4 = 0

Bissextile Non bissextile

Bissextile Non bissextile

vrai

vraivrai

faux

fauxfaux

Page 5: Les dates

Algorithme avec Algorithme avec conditions simples conditions simples (4/6)(4/6)

Arbre déséquilibré :Arbre déséquilibré :

SISI (a % 4 == 0) (a % 4 == 0) ALORSALORS SISI (a % 100 == 0) (a % 100 == 0) ALORSALORS

SISI (a % 400 == 0) (a % 400 == 0) ALORSALORS a est bissextile a est bissextile

SINONSINON a n'est pas a n'est pas bissextilebissextile

FIN SIFIN SI SINONSINON a est bissextile a est bissextile

FIN SIFIN SI SINONSINON a n'est pas bissextile a n'est pas bissextile

FIN SIFIN SI

Page 6: Les dates

Algorithme avec Algorithme avec conditions simples conditions simples (5/6)(5/6)

Arbre déséquilibré :Arbre déséquilibré :

a % 100 = 0

a % 400 = 0

a % 4 = 0

Bissextile Non bissextile

Non bissextile

vrai

vrai

faux

faux

vrai

Bissextile

faux

Page 7: Les dates

Algorithme avec Algorithme avec conditions simples conditions simples (6/6)(6/6)

Quand utiliser quel algorithme et Quand utiliser quel algorithme et pourquoi ???pourquoi ???

Page 8: Les dates

Algorithme avec Algorithme avec condition composéecondition composée

SISI (a % 4 == 0 && (a % 4 == 0 && ((a % 100 != 0) || (a % 400 == ((a % 100 != 0) || (a % 400 ==

0)))0)))

ALORSALORS a est bissextile a est bissextileSINONSINON a n'est pas bissextile a n'est pas bissextile

FIN SIFIN SI

Page 9: Les dates

Les datesLes dates

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

Page 10: Les dates

sswitch (b)witch (b){{

case 1:case 1:case 3:case 3:case 5:case 5:case 7:case 7:case 8:case 8:case 10:case 10:case 12: case 12: printf ("31 jours\n");printf ("31 jours\n");

break;break;case 4:case 4:case 6:case 6:case 9:case 9:case 11:case 11: printf ("30 jours\n");printf ("30 jours\n");

break;break;case 2:case 2: if ((a % 4 == 0) && if ((a % 4 == 0) &&

((a % 100 != 0) || (a % 400 == 0)))((a % 100 != 0) || (a % 400 == 0)))

printf ("29 jours\n");printf ("29 jours\n");elseelse

printf ("28 jours\n");printf ("28 jours\n");break;break;

default:default:printf ("Le numero de mois est incorrect\n");printf ("Le numero de mois est incorrect\n");

}}

Page 11: Les dates

Les datesLes dates

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

Page 12: Les dates

printf ("Entrez l'annee : ");printf ("Entrez l'annee : ");scanf ("%d", &a);scanf ("%d", &a);while (a < 1600 || a > 3000)while (a < 1600 || a > 3000){{

printf ("L'annee doit etre comprise entre 1600");printf ("L'annee doit etre comprise entre 1600");printf (" et 3000. Veuillez a nouveau ");printf (" et 3000. Veuillez a nouveau ");printf ("entrez l'annee : ");printf ("entrez l'annee : ");scanf ("%d", &a);scanf ("%d", &a);

}}printf ("Entrez le mois : ");printf ("Entrez le mois : ");scanf ("%d", &m);scanf ("%d", &m);while (m < 1 || m > 12)while (m < 1 || m > 12){{

printf ("Donnez une valeur entre 1 et 12.\n");printf ("Donnez une valeur entre 1 et 12.\n");printf ("Entrez a nouveau le mois : ");printf ("Entrez a nouveau le mois : ");scanf ("%d", &m);scanf ("%d", &m);

}}printf ("Entrez le jour : ");printf ("Entrez le jour : ");scanf ("%d", &j);scanf ("%d", &j);while (j < 1 || j > 12)while (j < 1 || j > 12){{

printf ("Donnez une valeur entre 1 et 31.\n");printf ("Donnez une valeur entre 1 et 31.\n");printf ("Entrez a nouveau le jour : ");printf ("Entrez a nouveau le jour : ");scanf ("%d", &j);scanf ("%d", &j);

}}

Page 13: Les dates

switch (m)switch (m){{

case 1:case 1:case 3:case 3:case 5:case 5:case 7:case 7:case 8:case 8:case 10:case 10:case 12: case 12:

printf ("Date correcte\n");printf ("Date correcte\n");break;break;

case 4:case 4:case 6:case 6:case 9:case 9:case 11:case 11:

if (j < 31)if (j < 31)printf ("Date correcte\n");printf ("Date correcte\n");

elseelseprintf ("Date incorrecte\n");printf ("Date incorrecte\n");

break;break;

Page 14: Les dates

case 2:case 2:if ((a % 4 == 0) && if ((a % 4 == 0) && ((a % 100 != 0) || (a % 400 == 0)))((a % 100 != 0) || (a % 400 == 0))){{

if (j < 30)if (j < 30)printf ("Date correcte\n");printf ("Date correcte\n");

elseelseprintf ("Date incorrecte\n");printf ("Date incorrecte\n");

}}elseelse{{

if (j < 29)if (j < 29)printf ("Date correcte\n");printf ("Date correcte\n");

elseelseprintf ("Date incorrecte\n");printf ("Date incorrecte\n");

}}}}