td

2025-10-10 13:35:34 +02:00
parent 2ba1baa385
commit 2f2b90d7cf
10 changed files with 476 additions and 3 deletions

309
data/observations.csv Normal file

@@ -0,0 +1,309 @@
21.9842
21.7581
20.3317
19.5654
18.4387
18.1895
17.9179
18.4969
18.5817
18.7231
19.0235
19.1551
18.503
18.1866
18.4088
18.5614
18.9263
19.8182
19.6392
19.448
20.3961
20.856
20.0111
19.7122
19.6393
20.2044
20.6745
20.9641
20.987
21.4181
22.0903
22.9011
23.1856
23.1438
24.5059
23.8048
23.7439
23.7864
23.6277
23.5784
24.3131
24.2345
24.0506
25.2879
24.5417
24.416
24.0499
24.8416
26.1848
26.059
26.278
25.947
24.57
25.7953
26.1772
21.637
20.8044
21.2202
21.4483
21.3265
21.4522
22.1567
21.2005
21.8201
21.8922
21.2829
21.691
21.9073
21.8999
22.4921
23.091
22.9029
21.78
22.3628
21.782
22.8817
23.2461
22.5977
22.5249
22.9437
23.2262
23.6612
22.0035
22.2962
21.4614
21.0843
20.862
20.5839
21.0559
20.75
20.0175
21.08
22.2855
21.7719
21.8775
20.715
21.7389
20.9424
21.0288
20.6347
20.5185
19.557
19.5903
19.8005
20.0054
18.9145
17.5569
18.2497
18.9768
18.913
17.7473
17.5332
16.8433
17.0894
16.5124
16.8723
16.8382
17.8679
17.2709
16.8711
16.9977
17.2664
17.6355
17.7124
17.4833
18.1532
18.0147
18.3091
18.1614
18.0731
17.7743
17.6733
17.8462
17.6158
17.0086
17.0413
16.7688
15.9408
15.8146
16.7554
17.2173
17.1845
16.7648
16.9685
16.6086
16.777
16.2856
16.8755
17.5664
17.1563
17.0222
17.1949
17.0234
18.0512
18.2109
18.3833
18.5936
18.0192
16.7518
16.9765
16.6521
17.1186
16.9276
16.735
16.6417
16.5475
16.319
17.1544
17.1258
16.782
16.574
15.7363
15.8822
16.246
16.6573
17.3642
18.1907
18.9223
19.3984
19.3214
19.7454
19.0246
18.6678
18.5537
18.434
18.295
18.7623
19.1416
18.423
19.2333
16.9295
16.1695
15.7126
15.11
15.6375
16.2298
16.0105
16.3597
16.8983
16.2363
16.1087
16.0732
16.0866
15.4799
15.4901
15.1357
14.9419
14.5956
14.4675
14.8724
14.6566
14.7395
14.306
14.2899
14.5299
13.658
13.9283
13.9814
13.8731
14.3818
14.4888
13.9376
13.2164
12.4192
12.6536
12.5945
12.472
13.0177
12.9878
13.1938
12.8169
13.0
13.4272
14.3676
14.5086
14.6899
14.6603
15.2235
14.9401
14.678
14.1578
13.7841
13.7414
14.0257
13.9266
13.633
13.6662
13.7461
13.7733
14.1807
13.6857
12.8259
12.8045
12.0804
11.9076
11.8925
12.1878
11.4473
11.7443
11.9018
11.8522
10.9605
10.0606
10.0322
10.0922
9.7514
9.5414
9.9665
9.0947
8.4189
7.8427
7.8709
7.8952
8.0466
8.2845
8.3503
8.6805
8.4318
8.0374
7.6969
7.7813
8.2339
8.3929
8.9659
8.9943
8.9255
8.1654
8.0587
8.2914
8.1901
8.6859
9.4245
8.8442
8.5382
8.8773
9.0943
9.4174
9.532
9.5271
10.0768
9.9917
9.9453
10.0757
9.7374
10.1048
9.8322
10.2562
10.987
11.6205
1 21.9842
2 21.7581
3 20.3317
4 19.5654
5 18.4387
6 18.1895
7 17.9179
8 18.4969
9 18.5817
10 18.7231
11 19.0235
12 19.1551
13 18.503
14 18.1866
15 18.4088
16 18.5614
17 18.9263
18 19.8182
19 19.6392
20 19.448
21 20.3961
22 20.856
23 20.0111
24 19.7122
25 19.6393
26 20.2044
27 20.6745
28 20.9641
29 20.987
30 21.4181
31 22.0903
32 22.9011
33 23.1856
34 23.1438
35 24.5059
36 23.8048
37 23.7439
38 23.7864
39 23.6277
40 23.5784
41 24.3131
42 24.2345
43 24.0506
44 25.2879
45 24.5417
46 24.416
47 24.0499
48 24.8416
49 26.1848
50 26.059
51 26.278
52 25.947
53 24.57
54 25.7953
55 26.1772
56 21.637
57 20.8044
58 21.2202
59 21.4483
60 21.3265
61 21.4522
62 22.1567
63 21.2005
64 21.8201
65 21.8922
66 21.2829
67 21.691
68 21.9073
69 21.8999
70 22.4921
71 23.091
72 22.9029
73 21.78
74 22.3628
75 21.782
76 22.8817
77 23.2461
78 22.5977
79 22.5249
80 22.9437
81 23.2262
82 23.6612
83 22.0035
84 22.2962
85 21.4614
86 21.0843
87 20.862
88 20.5839
89 21.0559
90 20.75
91 20.0175
92 21.08
93 22.2855
94 21.7719
95 21.8775
96 20.715
97 21.7389
98 20.9424
99 21.0288
100 20.6347
101 20.5185
102 19.557
103 19.5903
104 19.8005
105 20.0054
106 18.9145
107 17.5569
108 18.2497
109 18.9768
110 18.913
111 17.7473
112 17.5332
113 16.8433
114 17.0894
115 16.5124
116 16.8723
117 16.8382
118 17.8679
119 17.2709
120 16.8711
121 16.9977
122 17.2664
123 17.6355
124 17.7124
125 17.4833
126 18.1532
127 18.0147
128 18.3091
129 18.1614
130 18.0731
131 17.7743
132 17.6733
133 17.8462
134 17.6158
135 17.0086
136 17.0413
137 16.7688
138 15.9408
139 15.8146
140 16.7554
141 17.2173
142 17.1845
143 16.7648
144 16.9685
145 16.6086
146 16.777
147 16.2856
148 16.8755
149 17.5664
150 17.1563
151 17.0222
152 17.1949
153 17.0234
154 18.0512
155 18.2109
156 18.3833
157 18.5936
158 18.0192
159 16.7518
160 16.9765
161 16.6521
162 17.1186
163 16.9276
164 16.735
165 16.6417
166 16.5475
167 16.319
168 17.1544
169 17.1258
170 16.782
171 16.574
172 15.7363
173 15.8822
174 16.246
175 16.6573
176 17.3642
177 18.1907
178 18.9223
179 19.3984
180 19.3214
181 19.7454
182 19.0246
183 18.6678
184 18.5537
185 18.434
186 18.295
187 18.7623
188 19.1416
189 18.423
190 19.2333
191 16.9295
192 16.1695
193 15.7126
194 15.11
195 15.6375
196 16.2298
197 16.0105
198 16.3597
199 16.8983
200 16.2363
201 16.1087
202 16.0732
203 16.0866
204 15.4799
205 15.4901
206 15.1357
207 14.9419
208 14.5956
209 14.4675
210 14.8724
211 14.6566
212 14.7395
213 14.306
214 14.2899
215 14.5299
216 13.658
217 13.9283
218 13.9814
219 13.8731
220 14.3818
221 14.4888
222 13.9376
223 13.2164
224 12.4192
225 12.6536
226 12.5945
227 12.472
228 13.0177
229 12.9878
230 13.1938
231 12.8169
232 13.0
233 13.4272
234 14.3676
235 14.5086
236 14.6899
237 14.6603
238 15.2235
239 14.9401
240 14.678
241 14.1578
242 13.7841
243 13.7414
244 14.0257
245 13.9266
246 13.633
247 13.6662
248 13.7461
249 13.7733
250 14.1807
251 13.6857
252 12.8259
253 12.8045
254 12.0804
255 11.9076
256 11.8925
257 12.1878
258 11.4473
259 11.7443
260 11.9018
261 11.8522
262 10.9605
263 10.0606
264 10.0322
265 10.0922
266 9.7514
267 9.5414
268 9.9665
269 9.0947
270 8.4189
271 7.8427
272 7.8709
273 7.8952
274 8.0466
275 8.2845
276 8.3503
277 8.6805
278 8.4318
279 8.0374
280 7.6969
281 7.7813
282 8.2339
283 8.3929
284 8.9659
285 8.9943
286 8.9255
287 8.1654
288 8.0587
289 8.2914
290 8.1901
291 8.6859
292 9.4245
293 8.8442
294 8.5382
295 8.8773
296 9.0943
297 9.4174
298 9.532
299 9.5271
300 10.0768
301 9.9917
302 9.9453
303 10.0757
304 9.7374
305 10.1048
306 9.8322
307 10.2562
308 10.987
309 11.6205

52
data/production.csv Normal file

@@ -0,0 +1,52 @@
d<EFBFBD>signation,largeur,hauteur,epaisseur,temps
Plywood,1000,500,4,58.4795321637427
Hardwood,1000,600,16,66.3900414937759
MDF,1200,2000,10,128
Particleboard,1100,1000,2,80.9248554913295
Plywood,900,700,8,63.3663366336634
Hardwood,1900,1000,14,116
MDF,300,1600,2,73.5009671179884
Plywood,2000,1500,3,141.129032258065
Hardwood,1100,1500,8,105.263157894737
MDF,2000,1400,14,131.528046421663
Particleboard,1000,2000,19,115.606936416185
Plywood,1100,300,10,54.368932038835
Hardwood,1600,300,2,75.2475247524752
MDF,400,1600,13,79.2079207920792
Plywood,1700,1300,18,117.1875
Hardwood,800,1400,16,86.105675146771
Plywood,1200,700,17,73.5009671179884
Hardwood,1200,1500,19,105.675146771037
MDF,1700,1900,9,147.540983606557
Plywood,1400,1200,14,106.122448979592
Hardwood,1700,1300,10,124.48132780083
MDF,1800,1600,12,137.931034482759
Particleboard,800,1300,14,81.0810810810811
Hardwood,100,800,9,35.7852882703777
MDF,1300,1100,16,95.6175298804781
Particleboard,1300,100,12,55.5555555555556
Plywood,1300,1000,2,91.2698412698413
Hardwood,1200,2000,11,129.292929292929
MDF,500,200,5,28.8659793814433
Plywood,1400,200,17,62.5
Hardwood,600,1000,5,62.015503875969
MDF,1800,1900,8,145.669291338583
Particleboard,300,200,8,19.8807157057654
Plywood,800,500,14,50.5836575875486
Hardwood,1800,1500,5,126.923076923077
MDF,1400,600,8,77.8210116731518
Plywood,1100,1900,14,123.456790123457
Hardwood,1800,1800,13,141.176470588235
MDF,800,500,4,50.9803921568627
Particleboard,1700,1100,5,112.676056338028
Plywood,1900,700,3,105.476673427992
Hardwood,2000,2000,6,156.555772994129
MDF,400,500,4,36
Plywood,1700,1700,6,136.82092555332
Hardwood,1100,1200,15,93.4959349593496
MDF,800,600,18,56.5656565656566
Particleboard,900,600,15,60.3621730382294
Plywood,1200,1300,12,99.601593625498
Hardwood,900,500,11,54.2635658914729
MDF,1800,1200,13,116.731517509728
Plywood,1300,1300,17,107.883817427386
1 désignation largeur hauteur epaisseur temps
2 Plywood 1000 500 4 58.4795321637427
3 Hardwood 1000 600 16 66.3900414937759
4 MDF 1200 2000 10 128
5 Particleboard 1100 1000 2 80.9248554913295
6 Plywood 900 700 8 63.3663366336634
7 Hardwood 1900 1000 14 116
8 MDF 300 1600 2 73.5009671179884
9 Plywood 2000 1500 3 141.129032258065
10 Hardwood 1100 1500 8 105.263157894737
11 MDF 2000 1400 14 131.528046421663
12 Particleboard 1000 2000 19 115.606936416185
13 Plywood 1100 300 10 54.368932038835
14 Hardwood 1600 300 2 75.2475247524752
15 MDF 400 1600 13 79.2079207920792
16 Plywood 1700 1300 18 117.1875
17 Hardwood 800 1400 16 86.105675146771
18 Plywood 1200 700 17 73.5009671179884
19 Hardwood 1200 1500 19 105.675146771037
20 MDF 1700 1900 9 147.540983606557
21 Plywood 1400 1200 14 106.122448979592
22 Hardwood 1700 1300 10 124.48132780083
23 MDF 1800 1600 12 137.931034482759
24 Particleboard 800 1300 14 81.0810810810811
25 Hardwood 100 800 9 35.7852882703777
26 MDF 1300 1100 16 95.6175298804781
27 Particleboard 1300 100 12 55.5555555555556
28 Plywood 1300 1000 2 91.2698412698413
29 Hardwood 1200 2000 11 129.292929292929
30 MDF 500 200 5 28.8659793814433
31 Plywood 1400 200 17 62.5
32 Hardwood 600 1000 5 62.015503875969
33 MDF 1800 1900 8 145.669291338583
34 Particleboard 300 200 8 19.8807157057654
35 Plywood 800 500 14 50.5836575875486
36 Hardwood 1800 1500 5 126.923076923077
37 MDF 1400 600 8 77.8210116731518
38 Plywood 1100 1900 14 123.456790123457
39 Hardwood 1800 1800 13 141.176470588235
40 MDF 800 500 4 50.9803921568627
41 Particleboard 1700 1100 5 112.676056338028
42 Plywood 1900 700 3 105.476673427992
43 Hardwood 2000 2000 6 156.555772994129
44 MDF 400 500 4 36
45 Plywood 1700 1700 6 136.82092555332
46 Hardwood 1100 1200 15 93.4959349593496
47 MDF 800 600 18 56.5656565656566
48 Particleboard 900 600 15 60.3621730382294
49 Plywood 1200 1300 12 99.601593625498
50 Hardwood 900 500 11 54.2635658914729
51 MDF 1800 1200 13 116.731517509728
52 Plywood 1300 1300 17 107.883817427386

@@ -154,7 +154,9 @@ stdlib.h : fonctions pour gérer la conversion de type numérique en chaîne de
#### Longueur d'une chaîne de caractères
```c
size t strlen(const char *str);
```
Cette fonction va nous permettre de récupérer la taille de n'importe quelle chaîne de caractères sans compter le '\0' final.
La fonction retourne un size t (entier long non signé) et prend en paramètre une chaîne de caractères.
@@ -225,9 +227,11 @@ printf (" Apres : %s\n", dest ) ;
Ces fonctions renvoient l'adresse de l'information recherchée en cas de succès, sinon le pointeur NULL.
- char *strchr(const char *s, int c); : elle permet de rechercher un caractère dans une chaîne. Elle renvoie un pointeur sur ce caractère. Si le caractère est présent plusieurs fois, elle renvoie un pointeur sur la première occurrence ;
- char *strrchr(const char *s, int c); : la même que précédemment mais retourne un pointeur sur la dernière occurrence ;
- char *strstr(const char *s1, const char *s2); : elle permet de savoir si s2 est inclue dans s1. Si elle trouve elle renvoie un pointeur sur la position dans s1. Son rˆole est donc de rechercher des sous-chaînes.
- `char *strchr(const char *s, int c);` : elle permet de rechercher un caractère dans une chaîne. Elle renvoie un pointeur sur ce caractère. Si le caractère est présent plusieurs fois, elle renvoie un pointeur sur la première occurrence ;
- `char *strrchr(const char *s, int c);` : la même que précédemment mais retourne un pointeur sur la dernière occurrence ;
- `char *strstr(const char *s1, const char *s2);` : elle permet de savoir si s2 est inclue dans s1. Si elle trouve elle renvoie un pointeur sur la position dans s1. Son rˆole est donc de rechercher des sous-chaînes.
#### Conversion de chaîne de caractères en valeur numérique

0
td1.c Normal file

0
td1.md Normal file

77
td2.md Normal file

@@ -0,0 +1,77 @@
```C
#include <stdio.h>
float calculMoyenne(int tab[5]) {
int somme = 0;
for (int i = 0 ; i < 5 ; i++) {
somme = somme + tab[i];
}
//return somme / 5; // 2 entiers -> entiers
//return somme / 5.0; // 1 entier 1 float -> float
return (float)somme / 5; // cast conversion de type
}
float calculMoyenneN(int tab[], int nb) {
int somme = 0;
for (int i = 0 ; i < nb ; i++) {
somme = somme + tab[i];
}
return (float)somme / nb; // cast conversion de type
}
void main() {
puts("Test de la fonction calculMoyenne");
int t1[5] = { 1, 1, 1, 1, 1 };
float r1 = calculMoyenne(t1);
printf("Attendu 1 ; calculé %f\n", r1);
int t2[5] = { 1, 2, 3, 4, 5 };
float r2 = calculMoyenne(t2);
printf("Attendu 3 ; calculé %f\n", r2);
int t3[5] = { 11, 8, 7, 13, 3 };
float r3 = calculMoyenne(t3);
printf("Attendu 8,4 ; calculé %f\n", r3);
//exit(0);
puts("Quelle est la taille du tableau");
int taille;
scanf("%d", &taille);
int tableau[taille]; // variable-length array (VLA)
// fonctionne que sur les versions récentes des compilateurs
int *tableauP; // Un pointeur = une entrée sur une zone mémoire
tableauP = malloc(taille * sizeof(int));
// sizeof(int) = 4 octets
// tableau 5 cases x 4 = 20 octets
puts("Bonjour entrer des valeurs :");
int p = 0;
int q = 1;
for (int i = 0 ; i < taille ; i++) {
tableau[i] = 0;
}
while (1) {
int valeur;
scanf("%d", &valeur);
if (valeur < 0) break;
printf("valeur saisie = %d\n", valeur);
tableau[p] = valeur;
p++;
if (p == taille) p = 0;
float moyenne = calculMoyenneN(tableau, q);
if (q < taille) q++;
printf("Moyenne = %f\n", moyenne);
}
free(tableauP);
}
```

11
td3.md Normal file

@@ -0,0 +1,11 @@
### Travaux dirigés n° 3
1. Ouvrir le fichier [observations.csv](data/observations.csv) en lecture
2. Parcourir toutes les lignes du fichier
3. Mémoriser la valeur minimale et la valeur maximale
4. Calculer la moyenne et la variance de l'échantillon de données.
5. Afficher les resultats.

3
td4.md Normal file

@@ -0,0 +1,3 @@
# Travaux dirigés n° 4
Séparer les 4 colonnes du fichier export.csv en 4 fichiers indépendants : A.csv B.csv C.csv et D.csv

17
td5.md Normal file

@@ -0,0 +1,17 @@
# Travaux dirigés n° 5
Un machine outil de découpe génère tous les jours un fichier récapitulatif du travail effectué.
Écrire un programme en C qui va lire le fichier _production.csv_ et effectuer des calculs statistiques.
Lire la totalité du fichier : Afficher à la fin de la lecture afficher le périmètre total, ainsi que le volume total de découpe.
Pour chaque ligne calculer la vitesse vl de découpe en fonction du périmètre seul et la vitesse vv en fonction du volume.
Calculer la vitesse vl maximale et minimale, la vitesse vv maximale et minimale de l'ensemble des lignes.
Répondre à la question suivante : La vitesse de découpe est fonction de ...
Proposer une structure qui permet de stocker les information du fichier csv au format binaire en ajoutant aux colonnes existantes le périmètre et le volume.
Écrire un deuxième programme qui demande à l'utilisateur un nombre compris entre 1 et 45. Lire le fichier binaire en vous positionnant (fonction fseek) à la ligne renseignée par l'utilisateur. Lire 5 lignes d'un coup et afficher le périmètre moyen ainsi que le volume moyen de ces 5 lignes. Recommencer la demande, si l'utilisateur entre un nombre négatif sortir du programme.

0
td6.md Normal file