-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodule03.html
More file actions
1754 lines (1583 loc) · 72.8 KB
/
module03.html
File metadata and controls
1754 lines (1583 loc) · 72.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="resources/css/bootstrap.min.css">
<link rel="stylesheet" href="resources/css/default.css">
<link rel="stylesheet" href="resources/css/style.css">
<title>Structures de données</title>
</head>
<body>
<aside>
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#aside_navbar"
aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span> Menu
</button>
<div class="collapse navbar-collapse" id="aside_navbar"></div>
</nav>
</aside>
<main class="container my-3">
<h1>Module 3 : Structures de données</h1>
<article>
<h2>Situations</h2>
<section>
<h3>Caractères & Codes</h3>
<figure class="d-print-none">
<img src="resources/images/ascii-art.jpg" alt="ASCII Art">
<figcaption>ASCII Art</figcaption>
</figure>
<p>On donne le programme suivant :</p>
<pre><code class="language-python">num = 69
car = "E"
print("Caractère :", chr(num))
print("Code :", ord(car))</code></pre>
<ol>
<li>Copier/coller, puis tester le programme. Qu'est ce qu'il affiche ?</li>
<li>Modifier les valeurs de <code>num</code> et de <code>car</code> :
<ul>
<li><code>num = 101</code> et <code>car = "e"</code></li>
<li><code>num = 52</code> et <code>car = "4"</code></li>
<li><code>num = 90</code> et <code>car = "Z"</code></li>
<li><code>num = 33</code> et <code>car = "!"</code></li>
</ul>
</li>
<li>En déduire le rôle des fonctions <code>chr(num)</code> et <code>ord(car)</code>.</li>
<li>En se référant à la table ASCII suivante :
<div class="row">
<div class="col-sm-6">
Trouver quels sont les caractères dont le code est :
<ul>
<li>35</li>
<li>62</li>
<li>59</li>
</ul>
</div>
<div class="col-sm-6">
Trouver quels sont les codes des caractères :
<ul>
<li>"+"</li>
<li>")"</li>
<li>"z"</li>
</ul>
</div>
</div>
</li>
</ol>
<figure class="d-print-none">
<img src="resources/images/ascii-table.jpg" alt="Table ASCII">
<figcaption>Table ASCII</figcaption>
</figure>
</section>
<section>
<h3>Nombre automorphe</h3>
<p>Un <strong>nombre automorphe</strong> est un entier naturel dont la suite des chiffres du carré se termine
par celle du nombre lui-même. Par exemple, </p>
<p class="fs-1 text-center"><span class="text-danger">5</span>² = 2<span class="text-danger">5</span>, <span
class="text-danger">6</span>² = 3<span class="text-danger">6</span>, <span class="text-danger">25</span>² =
6<span class="text-danger">25</span>, <br><span class="text-danger">76</span>² = 57<span
class="text-danger">76</span>, <span class="text-danger">890625</span>² = 793212<span
class="text-danger">890625</span></p>
<p>On demande d'écrire un programme qui teste si un nombre est automorphe. On donne, pour celà, le programme
incomplet suivant :</p>
<pre class="d-print-none"><code class="language-python"># Todo 1 : Enlever le commentaire # de la ligne suivante
# n = int(input("Donner un nombre > 0 ? "))
# Todo 2 : à supprimer
n = 90625
# Todo 3 : calculer le carré de n
nc = 8212890625
# Todo 4 : convertir n et nc en chaînes de caractères
nch = "90625"
ncch = "8212890625"
# Todo 5 : trouver la longueur de nch et de ncch
l1 = 5
l2 = 10
# Todo 6 : utiliser l1 et l2 pour retrouver les l1 derniers caractères de ncch
dcar = "90625"
# Todo 7 : déterminer si n est automorphe
automorphe = True
print(n, "est automorphe ?", automorphe)</code></pre>
<pre class="d-none d-print-block"><code class="language-python"># Todo 1 : Enlever le commentaire # de la ligne suivante
# n = int(input("Donner un nombre > 0 ? "))
# Todo 2 : à supprimer
n = 90625
# Todo 3 : calculer le carré de n
nc = 8212890625
# Todo 4 : convertir n et nc en chaînes de caractères
nch = "90625"
ncch = "8212890625"
# Todo 5 : trouver la longueur de nch et de ncch
l1 = 5
l2 = 10
# Todo 6 : utiliser l1 et l2 pour retrouver les l1 derniers caractères de ncch
dcar = "90625"
# Todo 7 : déterminer si n est automorphe
automorphe = True
print(n, "est automorphe ?", automorphe)</code></pre>
<p>On demande de :</p>
<ol>
<li>Déterminer, d'après <strong>la définition d'un nombre automorphe</strong>, quels sont les nombres
automorphes dans la liste suivante :
<ul>
<li>376</li>
<li>9376</li>
<li>17</li>
<li>125</li>
</ul>
</li>
<li>Calculer le carré de <code>n</code>, <strong>Todo 3</strong>, puis afficher la valeur de <code>nc</code>.
<pre><code class="language-python">print(n, "^ 2 =", nc)</code></pre>
</li>
<li>Convertir <code>n</code> et <code>nc</code> en chaînes, <strong>Todo 4</strong>, et afficher leurs types.
<pre><code class="language-python">print(nch, "est de type", type(nch))
print(ncch, "est de type", type(ncch))</code></pre>
</li>
<li>Trouver les longueurs de <code>nch</code> et de <code>ncch</code>, <strong>Todo 5</strong>, puis afficher
le nombre de chiffres de <code>n</code> et de <code>nc</code>.
<pre><code class="language-python">print(n, "contient", l1, "chiffres")
print(nc, "contient", l2, "chiffres")</code></pre>
</li>
<li>Afficher le dernier chiffre de <code>ncch</code>.
<pre><code class="language-python">print("Le dernier chiffre de", ncch, "est", "???") # remplacer "???" par le code adéquat</code></pre>
</li>
<li>Afficher les deux derniers chiffres de <code>ncch</code>.
<pre><code class="language-python">print("Les deux derniers chiffres de", ncch, "sont", "???") # remplacer "???" par le code adéquat</code></pre>
</li>
<li>Retrouver les <code>l1</code> derniers chiffres de <code>ncch</code>, <strong>Todo 6</strong>.
<pre><code class="language-python">print("Les", l1, "derniers chiffres de", ncch, "sont", "???") # remplacer "???" par le code adéquat</code></pre>
</li>
<li>Afficher le premier chiffre de <code>nch</code> ?
<pre><code class="language-python">print("Le premier chiffre de", ncch, "est", "???") # remplacer "???" par le code adéquat</code></pre>
</li>
<li>Afficher les deux premiers chiffres de <code>nch</code> ?
<pre><code class="language-python">print("Les deux premiers chiffres de", ncch, "est", "???") # remplacer "???" par le code adéquat</code></pre>
</li>
<li>Tester si le nombre <strong>7</strong> est automorphe ? Qu'affiche le programme ?</li>
<li>Tester si le nombre <strong>36</strong> est automorphe ? Qu'affiche le programme ? Quel est le problème ?
</li>
<li>Répondre à <strong>Todo 7</strong>.</li>
<li>Compléter le programme <strong>Todo 2</strong>, puis <strong>Todo 1</strong>.</li>
</ol>
</section>
<section class="p-break">
<h3>Le plus âgé</h3>
<figure class="d-print-none">
<img src="resources/images/ages.webp" alt="Le plus âgé">
<figcaption>Le plus âgé</figcaption>
</figure>
<p>On veut faire un programme qui détermine si une personne est plus âgée qu'une autre. Pour cela on donne le
programme ci-dessous :</p>
<pre><code class="language-python">nom1 = input("Nom de la 1ère personne ? ")
age1 = input("Âge de " + nom1 + " ? ")
nom2 = input("Nom de la 2ème personne ? ")
age2 = input("Âge de " + nom2 + " ? ")
c1 = age1 > age2
print(nom1, "est plus âgé que", nom2, "?", c1)</code></pre>
<p>On demande de :</p>
<ol>
<li>Dresser <strong>le tableau de déclaration des objets (TDO)</strong> du programme.
<div class="row justify-content-center">
<table class="table table-sm table-striped table-hover w-25">
<thead>
<tr>
<th>Objet</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>nom1</td>
<td></td>
</tr>
<tr>
<td>nom2</td>
<td></td>
</tr>
<tr>
<td>age1</td>
<td></td>
</tr>
<tr>
<td>age2</td>
<td></td>
</tr>
<tr>
<td>c1</td>
<td></td>
</tr>
</tbody>
</table>
</div>
</li>
<li>Evaluer l'expression <code>"180" + "10"</code>.
<pre><code class="language-python">print("180" + "10")</code></pre>
</li>
<li>Evaluer l'expression <code>"Âge de " + nom + " ? "</code> pour <code>nom = "Faten"</code>.
<pre><code class="language-python">nom = "Faten"
age = 16
print("Âge de " + nom + " ? ")</code></pre>
</li>
<li>Déduire le rôle de l'opérateur <code>+</code>.</li>
<li>Ajouter l'instruction suivante :
<pre><code class="language-python">print(nom + " a " + age + " ans")</code></pre>
Que remarquez-vous ? Quelle est la raison de cette erreur ? Comment la corriger ?
</li>
<li>Tester le programme avec les valeurs suivantes, puis remplir la colonne <code>c1</code> :
<div class="row justify-content-center">
<table class="table table-sm table-striped table-hover w-50">
<thead>
<tr>
<th>nom1</th>
<th>age1</th>
<th>nom2</th>
<th>age2</th>
<th>c1</th>
</tr>
</thead>
<tbody>
<tr>
<td>Sami</td>
<td>28</td>
<td>Safouene</td>
<td>20</td>
<td></td>
</tr>
<tr>
<td>Abderrazek</td>
<td>9</td>
<td>Hala</td>
<td>3</td>
<td></td>
</tr>
<tr>
<td>Emna</td>
<td>73</td>
<td>Abderrazek</td>
<td>9</td>
<td></td>
</tr>
<tr>
<td>Tortue</td>
<td>150</td>
<td>Salim</td>
<td>45</td>
<td></td>
</tr>
</tbody>
</table>
</div>
</li>
<li>Déduire si le programme est correct ? Quel est le problème ? Comment le corriger ?</li>
</ol>
</section>
<section>
<h3>Pomme ou pomme de terre ?</h3>
<figure class="d-print-none">
<img src="resources/images/pomme.jpg" alt="Pomme">
<img src="resources/images/pomme-de-terre.jpg" alt="Pomme de terre">
<figcaption>Pomme ou pomme de terre ?</figcaption>
</figure>
<p>Pour son cours de français, Ahmed a rédigé le paragraphe suivant, un peu distrait par son petit frère il a
commis deux types d'erreurs :</p>
<ul>
<li>Il a ajouté des mots qui devront être <span
class="text-danger text-decoration-line-through">supprimés</span> pour rectifier son texte.</li>
<li>Il a oublié des mots qui devront être <span class="text-success">ajoutés</span> pour enrichir son texte.
</li>
</ul>
<div class="card">
<div class="card-body">
<h5 class="card-title">Les bienfaits de la pomme<span class="text-danger text-decoration-line-through"> de
terre</span></h5>
<div class="card-text">
<p>La pomme<span class="text-danger text-decoration-line-through"> de terre</span> est un fruit <span
class="text-success">succulent</span> qui apporte une grande satiété, se transporte facilement et
peut se consommer partout.</p>
<p>La pomme<span class="text-danger text-decoration-line-through"> de terre</span> est particulièrement
intéressante<span class="text-success"> pour les sportifs</span> : avant l'effort elle apporte de
l'énergie, pendant l'effort, elle apporte des minéraux<span
class="text-danger text-decoration-line-through"> des minéraux</span> et des vitamines qui rechargent
l'organisme et
après l'effort, elle réhydrate !</p>
</div>
</div>
</div>
<p>Voulant montrer ses nouveaux acquis en programmation Python, Ahmed a écris le programme suivant. Dans ce qui
suit on doit l'aider à corriger son paragrpahe sans modifier directement le texte qui est déjà rédigé.</p>
<pre class="d-print-none"><code class="language-python">titre = "Les bienfaits de la pomme de terre"
par1 = """La pomme de terre est un fruit qui apporte une grande satiété,
se transporte facilement et peut se consommer partout."""
par2 = """La pomme de terre est particulièrement intéressante :
- avant l'effort elle apporte de l'énergie,
- pendant l'effort, elle apporte des minéraux des minéraux et des vitamines qui rechargent l'organisme
- et après l'effort, elle réhydrate !"""
# Todo 1 : supprimer l'expression " de terre" du titre
# Todo 2 : supprimer l'expression " de terre" du par1
# Todo 3 : supprimer l'expression " de terre" du par2
# Todo 4 : supprimer l'expression " des minéraux" du par2
# Todo 5 : Insérer le mot "succulent" dans par1
# Todo 6 : Insérer l'expression "pour les sportifs" dans par2
print(titre)
print()
print(par1)
print()
print(par2)
</code></pre>
<pre class="d-none d-print-block"><code class="language-python">titre = "Les bienfaits de la pomme de terre"
par1 = """La pomme de terre est un fruit qui apporte une grande satiété,
se transporte facilement et peut se consommer partout."""
par2 = """La pomme de terre est particulièrement intéressante :
- avant l'effort elle apporte de l'énergie,
- pendant l'effort, elle apporte des minéraux des minéraux et des vitamines qui rechargent l'organisme
- et après l'effort, elle réhydrate !"""
# Todo 1 : supprimer l'expression " de terre" du titre
# Todo 2 : supprimer l'expression " de terre" du par1
# Todo 3 : supprimer l'expression " de terre" du par2
# Todo 4 : supprimer l'expression " des minéraux" du par2
# Todo 5 : Insérer le mot "succulent" dans par1
# Todo 6 : Insérer l'expression "pour les sportifs" dans par2
print(titre)
print()
print(par1)
print()
print(par2)
</code></pre>
<p>On demande de :</p>
<ol>
<li>Calculer et d'afficher la longueur des trois chaînes <code>titre</code>, <code>par1</code> et
<code>par2</code>.
<pre><code class="language-python">ltit = len(titre)
print("Le titre contient " + ltit + " caractères") # Corriger l'erreur</code></pre>
</li>
<li>Afficher le premier caractère du premier mot de <code>titre</code>. Afficher le premier caractère du
troisième mot du <code>titre</code>.
<br>Utiliser l'indexation positive, puis l'indexation négative.
<pre class="p-break"><code class="language-python"># Utiliser l'indexation positive
print("Le 1er caractère du titre est :")
print("Le 1er caractère du 3ème mot du titre est :")
# Utiliser l'indexation négative
print("Le 1er caractère du titre est :")
print("Le 1er caractère du 3ème mot du titre est :")</code></pre>
</li>
<li>Afficher le deuxième mot du <code>titre</code> en utilisant l'indexation positive et puis l'indexation
négative.
<pre><code class="language-python"># Utiliser l'indexation positive
print("Le 2ème mot du titre est :")
# Utiliser l'indexation négative
print("Le 2ème mot du titre est :")</code></pre>
</li>
<li>Afficher si le <code>titre</code> contient le mot <strong>"apporte"</strong>, faire de même pour
<code>par1</code> et <code>par2</code>.
<pre><code class="language-python">mot = "apporte"
ex_titre = True # à compléter
ex_par1 = True # à compléter
ex_par2 = False # à compléter
print("Le mot", mot, "existe dans le titre :", ex_titre)
print("Le mot", mot, "existe dans le 1er paragrpahe :", ex_par1)
print("Le mot", mot, "existe dans le 2ème paragraphe :", ex_par2)</code></pre>
</li>
<li>Trouver et afficher la position du mot <strong>"pomme"</strong> dans chacune des variables
<code>titre</code>, <code>par1</code> et <code>par2</code>.
<pre><code class="language-python">mot = "pomme"
p_tit = -1 # à compléter
p_p1 = -1 # à compléter
p_p2 = -1 # à compléter
print("Le mot", mot, "est à la position", p_tit, "dans le titre")
print("Le mot", mot, "est à la position", p_p1, "dans le 1er paragraphe")
print("Le mot", mot, "est à la position", p_p2, "dans le 2nd paragraphe")</code></pre>
</li>
<li>Trouver la position du mot <strong>" de terre"</strong>, la longueur de ce mot et puis le supprimer des
trois variables : Todo 1, Todo 2, Todo 3 et Todo 4.
<pre><code class="language-python">mot = " de terre"
l_mot = 0 # à compléter
# Todo 1 : supprimer l'expression " de terre" du titre
p_mot = -1 # à compléter
titre = titre # à compléter</code></pre>
</li>
<li>Aider Ahmed à ajouter le mot <strong>"succulent"</strong> : Todo 5.
<ul>
<li>Quel est le mot qui le précède dans le titre ?</li>
<li>Chercher la position de ce mot (le mot qui vient tout juste avant le mot "succulent") dans le
<code>par1</code>.
</li>
<li>Ajouter ce mot dans <code>par1</code>.</li>
</ul>
</li>
<li>Répondre à Todo 6.</li>
</ol>
</section>
<section class="p-break">
<h3>Le Halloween & les Bonbons</h3>
<figure class="d-print-none">
<img src="resources/images/halloween-deguisement.jpg" alt="Déguisement Halloween">
<img src="resources/images/halloween.jpg" alt="Halloween & Bonbons">
<figcaption>Déguisement et Bonbons pour Halloween</figcaption>
</figure>
<p>A l'occasion du Halloween, Samer et ses deux soeurs aînées Sarra at Samar se déguisent pour le Halloween. Le
soir, ils visitent les maisons du quartier tout en chantant. Les voisins, très reconnaissants pour le geste,
remplissent leur citrouille de bonbons et de friandises.</p>
<p>À la fin du soirée, les trois enfants à la maison, partagent leur butin. Chaque enfant doit avoir le
même nombre de bonbons.</p>
<p>Le reste est partagé entre la mère et le père.</p>
<ul>
<li>S'il reste un bonbon, il sera mangé par le père.</li>
<li>S'il reste deux bonbons, l'un sera mangé par le père et l'autre par la mère.</li>
<li>S'il en reste trois, deux mangés par le père et un seul par la mère.</li>
</ul>
<p>Pour une distrubtion équitable des friandises leur père a écrit le programme suivant :</p>
<pre><code class="language-python">nb = 15 # Todo 1 : Nombre total de bonbons
nbe = 3 # Todo 2 : Nombre d'enfants
nbpe = 5 # Todo 2 : Nombre de bonbons par enfant
nbr = 0 # Todo 3 : Nombre de bonbons restants
pmb = False # Todo 4 : Le père mange un bonbon ?
mmb = False # Todo 5 : La mère mange un bonbon ?
nbmp = 0 # Todo 6 : Nombre de bonbons mangé par le père
nbmm = 0 # Todo 7 : Nombre de bonbons mangé par la mère
print("Nbre de bonbons par enfant :", nbpe)
print("Nbre de bonbons restants :", nbr)
print("Le père mange des bonbons ?", pmb)
print("La mère mange des bonbons ?", mmb)
print("Nombre de bonbons mangés par le père :", nbmp)
print("Nombre de bonbons mangés par la mère :", nbmm)</code></pre>
<p>On demande de :</p>
<ol>
<li>Dresser le <abbr title="tableau de déclaration des objets">TDO</abbr> du programme.
<div class="row justify-content-center">
<table class="table table-sm table-striped table-hover w-25">
<thead>
<tr>
<th>Objet</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>nb</td>
<td></td>
</tr>
<tr>
<td>nbe</td>
<td></td>
</tr>
<tr>
<td>nbpe</td>
<td></td>
</tr>
<tr>
<td>nbr</td>
<td></td>
</tr>
<tr>
<td>pmb</td>
<td></td>
</tr>
<tr>
<td>mmb</td>
<td></td>
</tr>
<tr>
<td>nbmp</td>
<td></td>
</tr>
<tr>
<td>nbmm</td>
<td></td>
</tr>
</tbody>
</table>
</div>
</li>
<li class="p-break">Dresser le tableau suivant, remarquer que le nombre d'enfants est maintenant 4 au lieu de
3 :
<div class="row justify-content-center">
<table class="table table-sm table-striped table-hover">
<thead>
<tr>
<th style="vertical-align: top; width: 12.5%;">nb<br><small
class="text-muted d-print-none"><i>Nombre de bonbons</i></small></th>
<th style="vertical-align: top; width: 12.5%;">nbe<br><small
class="text-muted d-print-none"><i>Nombre d'enfants</i></small></th>
<th style="vertical-align: top; width: 12.5%;">nbpe<br><small
class="text-muted d-print-none"><i>Nombre de bonbons par enfant</i></small></th>
<th style="vertical-align: top; width: 12.5%;">nbr<br><small
class="text-muted d-print-none"><i>Nombre de bonbons restants</i></small></th>
<th style="vertical-align: top; width: 12.5%;">pmb<br><small class="text-muted d-print-none"><i>Père
mange bonbons</i></small></th>
<th style="vertical-align: top; width: 12.5%;">mmb<br><small class="text-muted d-print-none"><i>Mère
mange bonbons</i></small></th>
<th style="vertical-align: top; width: 12.5%;">nbmp<br><small
class="text-muted d-print-none"><i>Bonbons pour le père</i></small></th>
<th style="vertical-align: top; width: 12.5%;">nbmm<br><small
class="text-muted d-print-none"><i>Bonbons pour la mère</i></small></th>
</tr>
</thead>
<tbody>
<tr>
<td>20</td>
<td>3</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>21</td>
<td>3</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>22</td>
<td>3</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>23</td>
<td>3</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>24</td>
<td>3</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>25</td>
<td>3</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</li>
<li>Calculer, dans le tableau précédent, le nombre de bonbons par enfants <code>nbpe</code>, puis le nombre de
bonbons restants <code>nbr</code>. Quel est le nombre maximal de bonbons restants ?</li>
<li>Dresser le tableau suivant :
<div class="row justify-content-center">
<table class="table table-sm table-striped table-hover">
<thead>
<tr>
<th style="vertical-align: top; width: 12.5%;">nb<br><small
class="text-muted d-print-none"><i>Nombre de
bonbons</i></small></th>
<th style="vertical-align: top; width: 12.5%;">nbe<br><small
class="text-muted d-print-none"><i>Nombre
d'enfants</i></small></th>
<th style="vertical-align: top; width: 12.5%;">nbpe<br><small
class="text-muted d-print-none"><i>Nombre de
bonbons par enfant</i></small></th>
<th style="vertical-align: top; width: 12.5%;">nbr<br><small
class="text-muted d-print-none"><i>Nombre de bonbons
restants</i></small></th>
<th style="vertical-align: top; width: 12.5%;">pmb<br><small class="text-muted d-print-none"><i>Père
mange
bonbons</i></small></th>
<th style="vertical-align: top; width: 12.5%;">mmb<br><small class="text-muted d-print-none"><i>Mère
mange
bonbons</i></small></th>
<th style="vertical-align: top; width: 12.5%;">nbmp<br><small
class="text-muted d-print-none"><i>Bonbons pour le
père</i></small></th>
<th style="vertical-align: top; width: 12.5%;">nbmm<br><small
class="text-muted d-print-none"><i>Bonbons pour la
mère</i></small></th>
</tr>
</thead>
<tbody>
<tr>
<td>20</td>
<td>4</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>21</td>
<td>4</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>22</td>
<td>4</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>23</td>
<td>4</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>24</td>
<td>4</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>25</td>
<td>4</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</li>
<li>Refaire les calculs de la question n°3 pour les colonnes <code>nbpe</code> et <code>nbr</code>.</li>
<li>Trouver le nombre de bonbons <code>nb</code> qu'il faut collecter pour obtenir un reste égal à 5 lorsque
le nombre d'enfants <code>nbe</code> est égal à 2.</li>
<li>Remplir les colonnes <code>pmb</code> (Le père mange des bonbons) et <code>mmb</code> (La mère mange des
bonbons) du tableau en fonction de <code>nbr</code> (nombre de bonbons restants).</li>
<li>Remplir les colonnes <code>nbmp</code> (Bonbons pour père) et <code>nbmm</code> (Bonbons pour mère) du
tableau en fonction de <code>nbr</code> (nombre de bonbons restants).</li>
<li>Trouver l'expression en Python, <strong>Todo 2</strong>, qui permet de calculer le nombre de bonbons par
enfant.</li>
<li>Trouver l'expression en Python, <strong>Todo 3</strong>, qui permet de calculer le nombre de bonbons
restants.</li>
<li>Trouver l'expression en Python, <strong>Todo 4</strong>, qui permet de déterminer s'il reste des bonbons
pour le père ou
non.</li>
<li>Trouver l'expression en Python, <strong>Todo 5</strong>, qui permet de déterminer s'il reste des bonbons
pour le mère ou
non.</li>
<li>Trouver l'expression en Python, <strong>Todo 6</strong>, qui permet de calculer le nombre de bonbons pour
le père.</li>
<li>Trouver l'expression en Python, <strong>Todo 7</strong>, qui permet de calculer le nombre de bonbons pour
la mère.</li>
<li>Saisir le nombre total de bonbons <code>nb</code> et le nombre d'enfants <code>nbe</code>, <strong>Todo
1</strong>.</li>
</ol>
</section>
<section>
<h3>Résistance équivalente</h3>
<figure>
<img class="h2cm" src="resources/images/resistances-paralleles.png" alt="Résistances en parallèle">
<img class="h2cm" src="resources/images/resistance-equivalente.png" alt="Résistance équivalente">
<figcaption>Résistance équivalente de deux résistances montés en parallèle</figcaption>
</figure>
<p>Youssef est un électronicien amateur il prend des cours d'électronique en ligne. Aujourd'hui son cours porte
sur le montage de deux résistances en parallèle.</p>
<p class="p-break">Afin de simplifier le calcul de la résistance équivalente il a écrit le programme Python
suivant :</p>
<pre><code class="language-python"># Todo 1 : Saisir la valeur des résistances
r1 = 100
r2 = 100
# Todo 2 : Calculer la résistance équivalente
req = 50
print("R1 =", r1, "Ω")
print("R2 =", r2, "Ω")
# Todo 3 : Afficher Req avec seulement 2 décimales
print("Req =", req, "Ω")</code></pre>
<p>Bien que le programme précédent permet de calculer correctement la résistance équivalente de deux résistances
de 100Ω chacune, il reste inachecvé et on veut :</p>
<ol>
<li>Calculer la résistance équivalente de deux résistances dans les cas suivants :
<div class="row justify-content-center">
<table class="table table-sm table-striped table-hover w-50">
<thead>
<tr>
<th>r1 (Ω)</th>
<th>r2 (Ω)</th>
<th>R<sub>eq</sub> (Ω)</th>
</tr>
</thead>
<tbody>
<tr>
<td>0.1</td>
<td>0.2</td>
<td></td>
</tr>
<tr>
<td>470</td>
<td>220</td>
<td></td>
</tr>
<tr>
<td>1000</td>
<td>22000</td>
<td></td>
</tr>
<tr>
<td>4700</td>
<td>10000</td>
<td></td>
</tr>
</tbody>
</table>
</div>
</li>
<li>Dresser le <abbr title="tableau de déclaration des objets">TDO</abbr> du programme.
<div class="row justify-content-center">
<table class="table table-sm table-striped table-hover w-25">
<thead>
<tr>
<th>Objet</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>r1</td>
<td></td>
</tr>
<tr>
<td>r2</td>
<td></td>
</tr>
<tr>
<td>req</td>
<td></td>
</tr>
</tbody>
</table>
</div>
</li>
<li>Permettre à l'utilisateur de saisir les valeurs des résistances par lui même, Todo 1.</li>
<li>Calculer la résistance équivalente <code>req</code> en fonction de <code>r1</code> et de <code>r2</code>,
Todo 2.
<pre><code class="language-python">req = r1 * r2 / r1 + r2</code></pre>
</li>
<li>Tester le programme avec les valeurs du tableau précédent. Est-ce que le programme donne des valeurs
correctes ? Pourquoi ?</li>
<li>Tester le programme avec les valeurs <code>r1 = 100</code> et <code>r2 = 200</code>. Le programme doit
retourner la valeur <code>Req = 66.66666666666667 Ω</code>. Limiter le nombre de déciamles à 2, Todo 3.</li>
</ol>
</section>
<section class="p-break">
<h3>Logic gates</h3>
<figure>
<img src="resources/images/logic-gates.png" alt="Portes logiques">
<figcaption>Portes logiques</figcaption>
</figure>
<ol>
<li>Soit le circuit logique ci-dessus, on demande d'écrire l'équation logique de la lampe <code>L</code> en
fonction des entrées logiques <code>a</code>, <code>b</code> et <code>c</code>.</li>
<li>Dresser le tableau de vérité de ce circuit. Puis, remplir la colonne L.
<div class="row justify-content-center">
<table class="table table-sm table-striped table-hover w-50">
<thead>
<tr>
<th>a</th>
<th>b</th>
<th>c</th>
<th>L</th>
</tr>
</thead>
<tbody>
<tr>
<td><span class="text-danger">False</span></td>
<td><span class="text-danger">False</span></td>
<td><span class="text-danger">False</span></td>
<td></td>
</tr>
<tr>
<td><span class="text-danger">False</span></td>
<td><span class="text-danger">False</span></td>
<td><span class="text-success">True</span></td>
<td></td>
</tr>
<tr>
<td><span class="text-danger">False</span></td>
<td><span class="text-success">True</span></td>
<td><span class="text-danger">False</span></td>
<td></td>
</tr>
<tr>
<td><span class="text-danger">False</span></td>
<td><span class="text-success">True</span></td>
<td><span class="text-success">True</span></td>
<td></td>
</tr>
<tr>
<td><span class="text-success">True</span></td>
<td><span class="text-danger">False</span></td>
<td><span class="text-danger">False</span></td>
<td></td>
</tr>
<tr>
<td><span class="text-success">True</span></td>
<td><span class="text-danger">False</span></td>
<td><span class="text-success">True</span></td>
<td></td>
</tr>
<tr>
<td><span class="text-success">True</span></td>
<td><span class="text-success">True</span></td>
<td><span class="text-danger">False</span></td>
<td></td>
</tr>
<tr>
<td><span class="text-success">True</span></td>
<td><span class="text-success">True</span></td>
<td><span class="text-success">True</span></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</li>
<li>On donne le programme incomplet suivant qui permet de simuler ce circuit :
<pre><code class="language-python"># Todo 1 : Accepter la saisie de l'utilisateur
a = False
b = False
c = False
# Todo 2 : Equation logique de L
L = False
# Résultat
print(a, ",", b, ",", c, "=>", L)</code></pre>
Tester le programme.
</li>
<li class="p-break">Dresser le <abbr title="tableau de déclaration des objets">TDO</abbr> du programme.
<div class="row justify-content-center">
<table class="table table-sm table-striped table-hover w-25">
<thead>
<tr>
<th>Objet</th>
<th>Type</th>
</tr>
</thead>
<tbody>
<tr>
<td>a</td>
<td></td>
</tr>
<tr>
<td>b</td>
<td></td>
</tr>
<tr>
<td>c</td>
<td></td>
</tr>
<tr>
<td>L</td>
<td></td>
</tr>
</tbody>
</table>
</div>
</li>
<li>Quel est le résultat de l'expression suivante si l'utilisateur saisit :
<pre><code class="language-python">print(input("Êtes-vous d'accord O/N ? ") == "O")</code></pre>
<ul>
<li>"O"</li>
<li>"o"</li>
<li>"x"</li>
</ul>
</li>
<li>Changer l'expression précédent pour qu'elle retourne <code>True</code> dans le cas où l'utilisateur saisit
la lettre "O" indépendamment de sa casse (Majuscule ou minuscule).</li>
<li>On suppose que les lettres <strong>"t"</strong> ou <strong>"T"</strong> signifient la valeur
<strong>True</strong>, que les lettres <strong>"f"</strong> ou <strong>"F"</strong> signifient la valeur
<strong>False</strong>. Et, on demande de compléter <strong>Todo 1</strong>.
</li>
<li>Ecrire l'équation logique du circuit en utilisant les opérateurs logiques de Python, <strong>Todo