Académique Documents
Professionnel Documents
Culture Documents
Inscription
Rechercher
+
TP : déterminer le jour de la Licence CC 0
semaine
Lucas-84 Taurre c
Auteurs :
informaticienzero
Catégorie :
Programmation et algorithmique
Dernière mise à jour
dimanche 24 octobre 2021 à 19h54
Objectif
Première étape
Correction
Deuxième étape
Correction
Troisième et dernière étape
Correction
Objectif
Première étape
1 Entrez un jour : 27
2 C’est un jeudi
1 1 % 3 = 1
2 2 % 3 = 2
3 3 % 3 = 0
4 4 % 3 = 1
5 5 % 3 = 2
6 6 % 3 = 0
7 7 % 3 = 1
8 8 % 3 = 2
9 9 % 3 = 0
Correction
1 #include <stdio.h>
2
3
4 int
5 main(void)
6 {
7 unsigned jour;
8
9 printf("Entrez un jour : ");
10 scanf("%u", &jour);
11
12 switch ((jour - 1) % 7)
13 {
14 case 0:
15 printf("C'est un samedi\n"
16 break;
17
18 case 1:
19 printf("C'est un dimanche\
20 break;
21
22 case 2:
23 printf("C'est un lundi\n")
24 break;
25
26 case 3:
27 printf("C'est un mardi\n")
28 break;
29
30 case 4:
31 printf("C'est un mercredi\
32 break;
33
34 case 5:
35 printf("C'est un jeudi\n")
36 break;
37
38 case 6:
39 printf("C'est un vendredi\
40 break;
41 }
42
43 return 0;
44 }
Deuxième étape
À vos claviers !
Correction
1 #include <stdio.h>
2
3
4 int
5 main(void)
6 {
7 unsigned jour;
8 unsigned mois;
9
10 printf("Entrez une date (jj/mm
11 scanf("%u/%u", &jour, &mois);
12
13 unsigned njours = (mois - 1) *
14
15 switch (mois)
16 {
17 case 12:
18 --njours;
19 case 11:
20 case 10:
21 --njours;
22 case 9:
23 case 8:
24 case 7:
25 --njours;
26 case 6:
27 case 5:
28 --njours;
29 case 4:
30 case 3:
31 njours -= 3;
32 break;
33 }
34
35 njours += (jour - 1);
36
37 switch (njours % 7)
38 {
39 case 0:
40 printf("C'est un samedi\n"
41 break;
42
43 case 1:
44 printf("C'est un dimanche\
45 break;
46
47 case 2:
48 printf("C'est un lundi\n")
49 break;
50
51 case 3:
52 printf("C'est un mardi\n")
53 break;
54
55 case 4:
56 printf("C'est un mercredi\
57 break;
58
59 case 5:
60 printf("C'est un jeudi\n")
61 break;
62
63 case 6:
64 printf("C'est un vendredi\
65 break;
66 }
67
68 return 0;
69 }
Mode de calcul
À vous de jouer !
Correction
1 #include <stdio.h>
2
3
4 int
5 main(void)
6 {
7 unsigned jour;
8 unsigned mois;
9 unsigned an;
10
11 printf("Entrez une date (jj/mm
12 scanf("%u/%u/%u", &jour, &mois
13
14 unsigned njours = (an - 1) * 3
15
16 if (an > 1582) /* Calendrier G
17 {
18 njours += ((an - 1) / 4);
19 njours -= ((an - 1) / 100)
20 njours += ((an - 1) / 400)
21 njours += 2;
22 }
23 else /* Calendrier Julien */
24 njours += ((an - 1) / 4);
25
26 njours += (mois - 1) * 31;
27
28 switch (mois)
29 {
30 case 12:
31 --njours;
32 case 11:
33 case 10:
34 --njours;
35 case 9:
36 case 8:
37 case 7:
38 --njours;
39 case 6:
40 case 5:
41 --njours;
42 case 4:
43 case 3:
44 if (an > 1582)
45 {
46 if (an % 4 == 0 && (an
47 njours -= 2;
48 else
49 njours -= 3;
50 }
51 else
52 {
53 if (an % 4 == 0)
54 njours -= 2;
55 else
56 njours -= 3;
57 }
58 break;
59 }
60
61
62 njours += (jour - 1);
63
64 switch (njours % 7)
65 {
66 case 0:
67 printf("C'est un samedi\n"
68 break;
69
70 case 1:
71 printf("C'est un dimanche\
72 break;
73
74 case 2:
75 printf("C'est un lundi\n")
76 break;
77
78 case 3:
79 printf("C'est un mardi\n")
80 break;
81
82 case 4:
83 printf("C'est un mercredi\
84 break;
85
86 case 5:
87 printf("C'est un jeudi\n")
88 break;
89
90 case 6:
91 printf("C'est un vendredi\
92 break;
93 }
94
95 return 0;
96 }
Tout d’abord, nous demandons à l’utilisateur
d’entrer une date au format jj/mm/aaaa et nous
attribuons chaque partie aux variables jour ,
mois et an . Ensuite, nous multiplions par 365 la
différence d’années séparant l’année fournie de l’an
un. Toutefois, il nous faut encore prendre en
compte les années bissextiles pour que le nombre de
jours obtenus soit correct. Nous ajoutons donc un
jour par année bissextile en prenant soin
d’appliquer les règles du calendrier en vigueur à la
date fournie.
ommaire
1. Introduction à la programmation
3. Les variables
6. Tests et conditions
7. Les sélections
Objectif
Première étape
Correction
Deuxième étape
Correction
Correction
9. Les boucles
IV Annexes
artager
Twitter
Mastodon
Diaspora*
élécharger
PDF
(897,8 Kio)
LaTeX
(737,2 Kio)
EPUB
(398,2 Kio)
Archive
(2,2 Mio)
Zeste de Savoir
• …
API
CGU
À propos
L’association
Contact
Les cookies