[go: up one dir, main page]

0% ont trouvé ce document utile (0 vote)
50 vues66 pages

Seconde Algorithme Programmation

Transféré par

Abdellatif Mouch
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
50 vues66 pages

Seconde Algorithme Programmation

Transféré par

Abdellatif Mouch
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 66

Algorithmique et Programmation

classe de Seconde

Frédéric Smadja, mai 2019


Sommaire
1 Algorithme 4
1 Consonances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Al-Khwārizmı̄ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Euclide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4 L’Algorithme d’Euclide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.1 Manipuler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2 Verbaliser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.3 Abstraire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2 Console, variables et algorithmes 10


1 Programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Variables informatiques et affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1 Calculs dans la console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Variables informatiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3 Algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 Fonctions informatiques 16
1 Fonctions mathématiques et fonctions informatiques . . . . . . . . . . . . . . . . . . . . . . 16
1.1 Analogies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2 Définition et syntaxe des fonctions informatiques . . . . . . . . . . . . . . . . . . . . 17
2 Utiliser une librairie de Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1 Obtenir la fonction racine carrée dans Python . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Distance entre deux points du plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4 L’instruction conditionnelle if 20
1 Un logiciel de caisse automatique au cinéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2 Les conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1 Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2 Opérateurs de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3 L’instruction conditionnelle if en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1 Manipuler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 Verbaliser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3 Abstraire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4 Instruction alternative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4 Cahier des charges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5 Programmation modulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6 Algorithmique et Informatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5 La boucle non bornée while 30


1 La boucle while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.1 Manipuler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.2 Verbaliser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.3 Abstraire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2 Problèmes
p de seuil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1 Les Pythagoriciens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Rappels sur les irrationnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3 La découverte des irrationnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

1
3.4 Déterminer un encadrement de racine de 2 par balayage . . . . . . . . . . . . . . . . 36
4 Modélisation d’une propagation épidémique . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6 Types et Arithmétique 42
1 Les types de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.1 Les entiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.2 Les chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.3 Les nombres à virgule flottante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.4 Les variables booléennes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2 L’opérateur modulo % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1 Les opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2 L’opérateur modulo % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3 Où l’on retrouve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4 Applications en arithmétique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

7 La boucle bornée for 49


1 Les boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2 La boucle for ... in ... en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.1 Manipuler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.2 Verbaliser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.3 Abstraire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3 Application à la résolution de problèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4 Déterminer si un nombre est premier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

8 Échantillonnage 54
1 Probabilités et Statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.1 Les Probabilités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.2 Les Statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.3 L’échantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2 TP introductif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.1 Simuler le hasard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.2 Échantillon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.3 Fluctuation d’échantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.4 La loi des grands nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.1 Échantillon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.2 Fluctuation d’échantillonnage et loi des grands nombres . . . . . . . . . . . . . . . . 59
3.3 Estimation d’une proportion dans une population . . . . . . . . . . . . . . . . . . . . 61
4 T.P. : Estimation d’une probabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

2
Site compagnon :

www.algoprog.fr

3
Algorithme Algorithme

Plan du T.P.
1 Consonances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Al-Khwārizmı̄ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Euclide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4 L’Algorithme d’Euclide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.1 Manipuler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.2 Verbaliser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
4.3 Abstraire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Retour au sommaire

Muhammad Al-Khwārizmı̄, ∼ 780 – 850, Khiva – Bagdad

1 Consonances

En musique, une consonance (1) est une combinaison de sons, tel un accord, perçue comme agréable
à l’oreille. En linguistique, une consonance désigne la sonorité particulière d’un mot ou d’une phrase
dans une langue étrangère, qui permet parfois de déterminer celle-ci.
Les Mathématiques conservent précieusement deux sonorités intimement liées à Al-Khwārizmı̄ (2) :
• Al-Khwārizmı̄ ∼ Algorithme
Al-Khwārizmı̄ a été latinisé en Algorithmi ou Algorizmi,
• Al-jabr ∼ Algèbre
Son plus célèbre ouvrage, Kitābu al mukhtasar fı̄ hisābi al jabr wa al muqābalah, Abrégé de calcul
par la restauration et la comparaison, est considéré comme le premier manuel d’Algèbre.

(1). https://fr.wikipedia.org/wiki/Consonance
(2). https://fr.wikipedia.org/wiki/Al-Khwarizmi

4
2 Al-Khwārizmı̄
Muhammad Ibn Mūsā al-Khuwārizmı̄, généralement appelé Al-Khwarizmi, né dans les années
780. Il est originaire de Khiva, dans l’actuel Ouzbékistan, et meurt vers 850 à Bagdad. Il est mathéma-
ticien, géographe, astrologue et astronome perse, membre de la Maison de la sagesse (3) de Bagdad. Sa
vie s’est déroulée en totalité à l’époque de la dynastie des Abbassides (4) .
Son ouvrage Abrégé de calcul par la restauration et la comparaison, traduit en latin à partir du
ème
XII siècle, a contribué à l’introduction de l’algèbre en Europe.
Dans un autre ouvrage, Le livre de l’addition et de la soustraction d’après le calcul indien, il reprend
le système de numération décimal des mathématiciens indiens (notamment Brahmagupta). Ces travaux
et leur diffusion jusqu’en Europe, durant la fin du Moyen-Age et la Renaissance, déboucheront sur ce
que nous appelons aujourd’hui les chiffres arabes.
Ses travaux vont permettre par ailleurs d’établir des modes de calculs élaborés de l’impôt, de
l’arpentage des terres ou encore des transaction commerciales.
Son nom latinisé est à l’origine du mot algorithme. Al-Khwarizmi joue un rôle déterminant dans
l’avènement du concept d’algorithme, mais ne revendique pas son invention : un millénaire plus tôt,
Euclide (5) décrivait déjà l’algorithme d’Euclide.

3 Euclide

Euclide, ∼ −300, Grèce Antique

Pour mieux appréhender cette notion d’algorithme, nous quitterons quelques instants Al-Khwarizmi
et la Civilisation Arabe du Moyen-Age pour nous tourner vers Euclide, et l’Antiquité Grecque.
L’œuvre titanesque d’Euclide porte sur la géométrie, l’axiomatisation, la démonstration. Il écrit
en particulier Les Éléments, une œuvre constituée de treize livres, qui constitue un texte fondateur des
Mathématiques.

(4). https://fr.wikipedia.org/wiki/Maison_de_la_sagesse
(4). https://fr.wikipedia.org/wiki/Abbassides
(5). https://fr.wikipedia.org/wiki/Euclide

5
4 L’Algorithme d’Euclide

Dans le livre VII des Éléments, Euclide décrit pour la première fois l’Algorithme d’Euclide (6) .

4.1 Manipuler
Exercice 1 :
Comment partager équitablement 8 objets insécables entre 3 parties ?
a. Représenter, sur le schéma ci-dessous, les 3 parts égales, de chacune des 3 parties (7) .

b. Combien de pierres a reçues chaque partie ?


..........................................................................................................

c. Restera-t-il des objets non attribués à l’issue du partage ?


..........................................................................................................

4.2 Verbaliser
Verbaliser (8) , c’est exprimer sous forme de mots. Nous allons ainsi tenter de décrire, en mots et
en images, le travail réalisé ci-dessus.
Nous pourrons ici imaginer, dans des temps très anciens, des partages de bêtes entre bergers, des
partages de recettes entre commerçants . . .
Comment répartir équitablement 8 pierres précieuses, identiques et insécables, entre 3 parties ?
Nous nous placerons du point de vue de celui qui réalise le partage :

L’idée est celle de la distribution des cartes dans un jeu. Donnons une pierre à chaque partie : nous
prélevons ainsi 3 pierres de la collection :

(6). https://fr.wikipedia.org/wiki/Algorithme d’Euclide


(7). Partie : personne ou groupe participant à une discussion (les parties en présence, la partie adverse . . . ).
(8). Verbaliser : exprimer sous forme de mots.

6
Donnons à nouveau une pierre à chacun, nous prélevons ainsi un second paquet de 3 pierres :

Nous ne pouvons plus constituer de paquet supplémentaire de 3 unités, il restera donc 2 pierres
non attribuées :

Exercice 2 :
a. Entourer sur le schéma ci-dessous : • En Rouge : les pierres reçues par la partie 1.
• En Bleu : les pierres reçues par la partie 2.
• En Noir : les pierres reçues par la partie 3.

Partie 3
Partie 2

Partie 1

b. Tracer avec les mêmes couleurs, 3 arcs de cercles ne se coupant pas et reliant : en rouge, les deux
pierres de la partie rouge, en bleu, les deux pierres de la partie bleue et en noir, les deux pierres de la
partie noire.

Définition :
• Le nombre maximal de paquets de 3 unités que nous avons pu prélever parmi les 8 objets s’ap-
pelle le quotient de la division euclidienne de 8 par 3. Il correspond ici au nombre de pierres reçues
par chaque parties.
• Le nombre d’unités restantes, après avoir enlevé à 8, autant de paquets de 3 unités que possible
s’appelle le reste de la division euclidienne de 8 par 3.

7
Exercice 1 :
Compléter l’algorithme de partage de 8 pierres entre 3 parties que nous venons de voir :

• pierres = 8
• distribution = 0
• Tant que pierres . . . . . . . . . . . . :
distribution = distribution + 1
pierres = . . . . . . . . . . . .

4.3 Abstraire
Vous avez sûrement déjà rencontré le mot "abstraire". Par exemple : "abstraction faite de demain,
je suis libre tous les jours." Cela revient à dire : "mis à part demain, je suis libre tous les jours." Nous
avons ainsi séparé la journée de demain des autres.
Abstraire, c’est séparer, ou isoler, un élément de son contexte ou de l’ensemble dont il fait partie
pour l’étudier ou le généraliser.
Nous tenterons ici d’abstraire le concept de division euclidienne du contexte des pierres pré-
cieuses. Puis nous tenterons de le généraliser en passant des nombres 8 et 3, à des nombres entiers
naturels a et b quelconques.

Exercice 2 :
a. Compléter l’algorithme de division euclidienne de 8 par 3 :

• reste = 8
• quotient = 0
• Tant que reste . . . . . . . . . . . . :
quotient = quotient + 1
reste = . . . . . . . . . . . .

b. Considérons maintenant deux entiers naturels a et b tels que b 6= 0.


Compléter l’algorithme de division euclidienne de a par b :

• reste = a
• quotient = 0
• Tant que reste . . . . . . . . . . . . :
quotient = quotient + 1
reste = . . . . . . . . . . . .

8
Division euclidienne
Réaliser la division euclidienne de a par b revient à se demander :
• dans a, combien de fois, au maximum, peut-on enlever b ?
• combien d’unités restera-t-il alors ?

Définition :
• Soient a et b deux nombres entiers naturels tels que b 6= 0.
Effectuer la division euclidienne de a par b, c’est trouver les deux entiers naturels q et r tels que :
a = b ×q +r et 0 ≤ r < b.
• Le nombre q est appelé le quotient de la division euclidienne de a par b. .
• Le nombre r est appelé le reste de la division euclidienne de a par b.

Algorithme
Nous venons de voir un algorithme permettant d’obtenir le nombre d’objets à donner à chacun
lors du partage équitable de 8 objets entre 3 parties.

Définition :
• Un algorithme (9) est une suite finie d’opérations ou d’instructions permettant de résoudre un
problème ou d’obtenir un résultat.

Étymologie :
• Le mot algorithme vient du mathématicien perse Al-Khwārizmı̄ (' 780−850), dont le nom a été
latinisé en Algorithmi ou Algorizmi.

Verbaliser et abstraire

Définition :
• Verbaliser signifie exprimer à l’aide du langage.

Définition :
• Abstraire signifie isoler un élément de son contexte ou de l’ensemble dont il fait partie pour
l’étudier ou le généraliser.

(9). https://fr.wikipedia.org/wiki/Algorithme
(9). https://fr.wikipedia.org/wiki/Étymologie

9
Console, variables
Console, et algorithmes
variables et algorithmes

Plan du T.P.
1 Programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Variables informatiques et affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1 Calculs dans la console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Variables informatiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3 Algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Retour au sommaire

1 Programmation

Définition :
• Un programme informatique est un ensemble d’instructions destinées à être exécutées par un
ordinateur.
• Pour écrire des programmes, nous utiliserons un langage de programmation : Python.

Un programme permet à l’ordinateur de réaliser de nouvelles tâches, qui s’ajoutent à celle qu’il
sait déjà réaliser : traitement de texte, navigation internet . . .
Lançons maintenant un environnement de travail Python (Spyder, EduPython . . . ) :

10
Nous remarquerons deux fenêtres et un bouton :

• La console :
nous écrirons des instructions dans la console :
 >>> 9 + 7
• réaliser ce calcul  16
• exécuter ce programme  >>> 3 * 4
 12
• afficher l’heure courante  >>> exécuter un programme ...

• L’éditeur :
nous y écrirons nos programmes.

• Le bouton lire ou exécuter :


il permet de lancer la lecture d’un programme et de le placer en mémoire dans la console. Nous
pourrons alors lancer son exécution depuis la console.

Les ordinateurs ont aussi des consoles. Ce sont en quelques sortes des terminaux (1) , avec un cla-
vier et un écran, permettant à l’utilisateur de piloter un ordinateur, ou un réseau .

Exercice 1 :
Selon votre environnement Python (Edupython, Spyder . . . ), et son paramétrage, vous avez sûrement
obtenu, sur votre ordinateur, un résultat d’apparence très différente de l’image ci-dessus.
a. Retrouver dans votre environnement : la console, l’éditeur et le bouton lire ou exécuter.
b. Pour chacun, tenter de redire en une phrase quel est son rôle. Relire les explications qui précédent
en cas de doute.

2 Variables informatiques et affectation

2.1 Calculs dans la console

Nous pouvons d’ores et déjà, réaliser des calculs dans la console :

 >>> 5 + 3
 8

Exercice 2 : calcul dans la console


Pour chacune des instructions suivantes :
• commencer par calculer de tête le résultat que renverrait la console,
• vérifier ensuite votre réponse : en saisissant les instructions dans la console, et en terminant par la
touche Entrée :

1. 23 - 16 2. 3 * 2 3. 10 / 5 4. 3 + 2 * 4 5. 3 ** 2

(1). La console est historiquement liée au terminal : https://fr.wikipedia.org/wiki/Terminal_informatique

11
Exercice 3 : repères chronologiques

' −300 ' 800 2019

Civilisation
Numérique

Calculer mentalement, puis vérifier en cas de besoin dans la console.


a. Combien d’années séparent Euclide et Al-Khwarizmi ?
..........................................................................................................
b. Combien d’années nous séparent d’Al-Khwarizmi ?
..........................................................................................................
c. Combien d’années nous séparent d’Euclide ?
..........................................................................................................

Exercice 4 : automatismes de calcul


Trouver mentalement la réponse, puis vérifier en cas de besoin dans la console.
Exemple : pour retrouver 6 × 8 , nous savons que : 3 × 8 = 24. Donc : 6 × 8 = 2 × 3 × 8 = 2 × 24 = 48

1. 6 * 7 2. 7 * 7 3. 8 * 7 4. 9 * 7 5. 5 * 8
12. 8 * 9 13. 5 * 9 14. 7 * 9 15. 9 * 6 16. 9 * 9

2.2 Variables informatiques


Exercice 5 : variables en mode console
a. Tester maintenant, toujours dans la console, les instructions :

 >>> x = 2
 >>> x

Remarquons que la dernière ligne nous a permis de demander d’afficher le contenu de la variable x.
b. Tester, dans la console, les instructions suivantes :
 >>> x = 2
 >>> x = x + 3
 >>> x

Comment expliquer l’effet de l’instruction x = x + 3 ?

Définition :
• Une variable informatique est une étiquette collée sur une boîte qui
contient une valeur. La valeur contenue dans la boîte peut varier au
cours de l’exécution du programme.

12
2.3 Affectation

Définition :
• Lorsque l’on place 2 dans la variable x , on dit que l’on affecte la
valeur 2 à la variable x : x = 2.
• Il est aussi courant de placer dans la variable x sa valeur précédente,
plus un ou deux . . . : x = x+1

Algorithme Python Langage naturel


Syntaxes : x reçoit la valeur 2 x = 2 x ←2

x reçoit la valeur x + 3 x = x + 3 x ← x +3

Attention :
• Résoudre l’équation x = 2x + 3 signifie :
trouver toutes les valeurs de x pour lesquelles l’égalité x = 2x + 3 est vraie.
• Dans un programme Python, l’affectation x = 2*x + 3 a un tout autre sens :
â x reçoit la valeur : deux fois son ancienne valeur, plus 3,
â en langage naturel : x ← 2x + 3.

Propriété :
Une variable informatique peut varier au cours du programme en recevant des affectations suc-
cessives.
Elle est en conséquence très différente des inconnues que nous rencontrons en mathématiques
dans les équations, dont la valeur ne varie pas au cours de la résolution.

Exercice 6 : variables et affectations


Pour chacune des séquences d’instructions du tableau suivant :
• prévoir ce que contiendra la variable écrite en dernière ligne,
• vérifier en saisissant ces instructions dans la console.

>>> a = 4 >>> age = 15 >>> prix_ht = 20


>>> a = a + 3 >>> age = age + 1 >>> tva = 1.2
>>> prix_ttc = prix_ht * tva
>>> b = 5 >>> b = 5 >>> a = 17
>>> b = b + 3 >>> b = 2 * b >>> b = 33
>>> b = 2 * b >>> b = b + 3 >>> somme = a + b
>>> nombre = 12
>>> resultat = nombre ** 2

13
Exercice 7 : algorithmes en langage naturel
Pour chacun des algorithmes :
• prévoir ce que contiendra la variable écrite en dernière ligne,
• vérifier lorsque ce sera nécessaire en traduisant ces instructions en Python dans la console.

b ← 7 annee ← 2018 mi se ← 10
b ← 4b annee ← annee + 1 mi se ← mi se × 1, 1

x ← 12 x ← 4 a ← 3
x ← 5×x y ← 7 b ← 2
x ← x − 12 r esul t at ← 2x × y d i f f er ence_c ar r e ← (a +b)(a −b)

3 Algorithmes
Un algorithme de calcul :
• considérer le nombre 5
• lui ajouter 3
• le multiplier par 2

Définition :
• Un algorithme (2) est une suite finie d’opérations ou d’instructions permettant de résoudre un
problème ou d’obtenir un résultat.
• Un algorithme est écrit indépendamment de tout langage de programmation : en français ou en
langage naturel. Il diffère sur d’autres points encore d’un programme.

Exercice 8 :
Considérons l’algorithme suivant :

• choisir un nombre
• lui ajouter 4
• multiplier le résultat par 5
• soustraire 2

a. Quel résultat obtient-on en choisissant la valeur 2 ?


b. Écrire l’algorithme en langage naturel.
c. Écrire l’algorithme dans la console.

(2). https://fr.wikipedia.org/wiki/Algorithme

14
15
FonctionsFonctions
informatiques
informatiques

Plan du T.P.
1 Fonctions mathématiques et fonctions informatiques . . . . . . . . . . . . . . . . . . . . 16
1.1 Analogies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2 Définition et syntaxe des fonctions informatiques . . . . . . . . . . . . . . . . . . . 17
2 Utiliser une librairie de Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1 Obtenir la fonction racine carrée dans Python . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Distance entre deux points du plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Retour au sommaire

1 Fonctions mathématiques et fonctions informatiques

1.1 Analogies
Exercice 1 :
• Voici une fonction mathématique :

Soit f la fonction définie sur R par : f (x) = 2x

• Voici la fonction informatique correspondante dans Python :

 def f(x) :
 return 2*x

a. Saisir cette fonction dans l’éditeur.


b. Lancer la lecture du programme (bouton .).  >>> f(2)
c. Vous pouvez maintenant utiliser votre fonction depuis la console :  4
d. Appeler la fonction depuis la console pour obtenir les images par f de : −5, 12, 133.

Fonction informatique recevant plusieurs arguments


Exercice 2 :
Nous souhaitons maintenant écrire une fonction qui, connaissant la base et la hauteur d’un triangle,
renverra son aire.
a. Compléter le programme suivant et le saisir dans l’éditeur :

 def triangle(base, hauteur) :


 aire = ( ...... * ...... ) / 2
 return ......

b. Enregistrer le programme (Ctrl -S), et lancer sa lecture (bouton .).


c. Tester maintenant votre fonction en l’appelant depuis la console : >>> triangle(5, 3), par exemple.

16
Une fonction de gain dans un jeu de hasard
Exercice 3 :
Un jeu de hasard propose de remporter 3.2 fois sa mise.
a. Écrire dans l’éditeur une fonction gain(mise) :
• prenant en argument la mise,
• et renvoyant le gain que l’on peut espérer.
b. Enregistrer le programme (Ctrl -S), et lancer sa lecture (bouton .).
c. Tester maintenant votre fonction en l’appelant avec différentes valeurs depuis la console.

1.2 Définition et syntaxe des fonctions informatiques

Définition :
Une fonction informatique est un bloc d’instructions, qui porte un nom, et qui peut recevoir en
entrée plusieurs arguments. Elle renvoie un résultat au moyen de l’instruction return en Python.

En Python

 def nom_de_la_fonction(argument1, argument2, ...) :


 instructions
 return resultat

Remarques :
• Il faut veiller à placer les deux points en fin de première ligne,
• ces deux points introduisent le "corps" de la fonction, qui doit être indenté : décalé 4 caractères.
• La fin de l’indentation, ou l’instruction return, signalent à Python la fin de l’exécution de la fonction.
• Le résultat à renvoyer est déclaré à l’aide du mot-clef return.

Exercice 4 :
Le tarif d’entrée pour une pièce de théâtre est fixé à 24 euros par adulte, et 11 euros par enfant.
a. Écrire une fonction prix(adultes, enfants) renvoyant le prix à payer en fonction du nombre
d’adultes et d’enfants.
b. Utiliser votre fonction pour déterminer le tarif pour un groupe composé de 4 adultes et 5 enfants.

Exercice 5 : fonction de conversion


Un bureau de change propose aujourd’hui le taux de change : 1 $ = 0.87 e.
a. Écrire une fonction conversion(dollar) :

• prenant en argument le nombre de dollars à échanger,


• et renvoyant le nombre d’euros obtenus en échange.,

b. Utiliser votre fonction pour déterminer le nombre d’euros obtenus en échange de 250 dollars.
c. Écrire en langage naturel une fonction réciproque permettant de convertir les euros en dollars.

17
2 Utiliser une librairie de Python
Python propose de très nombreuses librairies contenant, entre autres, des fonctions dont nous
aurons besoin dans nos programmes. C’est le cas la fonction racine carrée.

2.1 Obtenir la fonction racine carrée dans Python


Cette dernière s’obtient dans Python en deux temps :
• importer, une fois pour toutes, en première ligne du programme, la fonction sqrt depuis la librairie
math de Python (sqrt comme square root en anglais) :

 from math import sqrt

• on peut alors utiliser la fonction sqrt dans le programme, aussi souvent que nécessaire :

 from math import sqrt



 variable_1 = sqrt(81)
 variable_2 = sqrt(variable_1)

• Que contient variable_2 à l’issue de ce programme ?

2.2 Distance entre deux points du plan


Exercice 6 : fonction distance entre deux points
Dans un repère orthonormé du plan, si A(x A , y A ) et B (x B , y B ) sont deux points, la longueur AB est don-
née par la formule : q
AB = (x B − x A )2 + (y B − y A )2
Nous nous proposons dans cet exercice d’écrire une fonction permettant de calculer la distance entre
deux points.

a. Quelles variables fournir en arguments à notre fonction Python ?


b. Écrire une fonction distance(xA, yA, xB, yB) renvoyant la distance entre A(x A , y A ) et B (x B , y B ).
c. Utiliser cette fonction pour déterminer la distance entre A(−3, 1) et B (1, −2).
d. Vérifier par un calcul mathématique sur papier.

3 Algorithmes
Un algorithme de cuisine
• mettre 300 grammes de farine dans un saladier,
• ajouter 3 œufs,
• ajouter 3 cuillères à soupe de sucre,
• ajouter 2 cuillères à soupe d’huile,
• ajouter 50 grammes de beurre,
• mélanger délicatement en ajoutant 600 ml de lait au fur et à mesure,
• verser une louche de pâte dans une poêle
• faire cuire à feu doux.

18
Définition :
Un algorithme (1) est une suite finie d’opérations ou d’instructions permettant de résoudre un
problème ou d’obtenir un résultat.

Exercice 7 : un algorithme utilisateur dans Python


Proposer un algorithme permettant d’écrire et d’appeler une fonction dans Python.

• ..................................................
• ..................................................
• ..................................................

Indication :
celui-ci pourra comporter les trois actions suivantes, à ranger dans le bon ordre :
• cliquer sur le bouton exécuter,
• appeler la fonction dans la console,
• écrire la fonction dans l’éditeur.

(1). https://fr.wikipedia.org/wiki/Algorithme

19
L’instruction conditionnelle
L’instruction if
conditionnelle if

Plan du T.P.
1 Un logiciel de caisse automatique au cinéma . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2 Les conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1 Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2 Opérateurs de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3 L’instruction conditionnelle if en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1 Manipuler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 Verbaliser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3 Abstraire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4 Instruction alternative . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4 Cahier des charges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5 Programmation modulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6 Algorithmique et Informatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Retour au sommaire

Quelques grandes figures de l’Histoire de l’Informatique

Cliquer une image au choix


Ada Lovelace - Alan Turing - John von Neumann
Richard Stallman - Tim Berners-Lee - Linus Torvalds

20
1 Un logiciel de caisse automatique au cinéma

Exercice 1 :
Nous programmerons ici une version très simplifiée d’un tel logiciel. Il devra pouvoir :
• recevoir en entrée l’âge du client,
• choisir de renvoyer en retour le juste tarif à appliquer :

Si
ag e < 18
Oui : Non :
4€ 7€

a. Compléter l’algorithme du logiciel en langage naturel :

• Si age < 18 :
............
• Sinon :
............

b. De quel type d’objet informatique aurions-nous besoin pour stocker la valeur à renvoyer à l’utilisa-
teur ?

..........................................................................................................

c. Compléter à nouveau l’algorithme en utilisant une variable prix :

• Si age < 18 :
............
• Sinon :
............

En Python, nous traduirons Si, par if. L’instruction if permet de sélectionner un traitement à appliquer,
selon qu’une condition est vraie ou fausse. On parle ainsi d’instruction conditionnelle.

e. Quelle est la condition à tester dans l’algorithme ci-dessus ?

..........................................................................................................

f. Quels sont les deux traitements possibles ?

..........................................................................................................

..........................................................................................................

21
2 Les conditions

2.1 Conditions
Exercice 2 : les conditions
Pour chacune des instructions ou séquences d’instructions du tableau suivant, prévoir le résultat qu’af-
fichera la console, puis vérifier en saisissant ces instructions dans la console.

>>> 3 + 1 == 4 >>> 3 + 1 == 5 >>> 3 + 1 = 4


>>> 5 <= 3 >>> 3.1 < 17.3 >>> -8 > -7
>>> "bonjour" == "bonjour" >>> "bonjour" == "Bonjour" >>> "bonjour" != "Bonjour"
>>> x = 5 >>> x = 3 >>> x = 5
>>> y = 3 >>> x = x + 1 >>> y = 3
>>> x == y >>> x = 8 * x >>> a = x**2 - y**2
>>> x == 36 >>> b = (x + y)(x - y)
>>> a == b

Définition :
• Une condition est un énoncé qui peut être Vrai ou Faux.
• Cela permet au programme, selon qu’une condition est vraie ou fausse, d’effectuer une action ou
une autre. On parle d’exécution conditionnelle.

2.2 Opérateurs de comparaison


La condition testée peut contenir les opérateurs de comparaison suivants :
• x == y : teste si x est égal à y (→ en Python, "le conditionnel se conjugue en double égal"),
• x != y : teste si x est différent de y,
• x>y : teste si x est supérieur strictement à y,
• x<y : teste si x est inférieur strictement à y,
• x >= y : teste si x est supérieur ou égal à y,
• x <= y : teste si x est inférieur ou égal à y.

Attention :
• Il ne faut pas confondre l’opérateur d’affectation =, utilisé pour affecter une valeur à une va-
riable (x=2), et l’opérateur de comparaison ==, utilisé pour tester l’égalité de deux valeurs ou deux
variables (x == y).
• Un procédé mnémotechnique (1) : en Python, le conditionnel se conjugue en double égal.

Exercice 3 :
Nous allons avoir besoin de pouvoir tester si une condition, telle que : "age ≤ 18", est vraie ou fausse
(True ou False, en Python). Prévoir le résultat des instructions suivantes et vérifier dans la console :

 >>> age = 15
 >>> age <= 18
 .....
 >>> age_papa = 45
 >>> age_papa <= 18
 .....

22
3 L’instruction conditionnelle if en Python

3.1 Manipuler
Exercice 4 :
Python exécute normalement les instructions de la première à la dernière ligne, sauf lorsqu’il rencontre
une instruction conditionnelle if.
Cette instruction va servir d’aiguillage dans le programme, et lui permettre de suivre des chemins diffé-
rents selon les circonstances : plus ou moins de 18 ans, par exemple.

a. Que renvoie la séquence d’instructions suivante ? Vérifier dans la console.

 >>> age = 16
 >>> if age < 18 :
 ... print("Vous êtes mineur")

b. Que renvoie la séquence d’instructions suivante ? Vérifier dans la console.

 >>> age = 25
 >>> if age < 18 :
 ... print("Vous êtes mineur")

3.2 Verbaliser
Dans l’exercice ci-dessus question a., la condition age < 18 est vraie, donc la ligne 3 a été lue
et exécutée. Dans la question b., la condition est fausse, donc la ligne 3 n’a pas été lue et n’a pas été
exécutée.

Le bloc d’instruction(s) à exécuter lorsque la condition est vraie doit être indenté (décalé de 4 es-
paces). La fin de l’indentation signale la fin de ce bloc d’instruction.

3.3 Abstraire

 if condition :
 instructions

Si
Condition Faux

Vrai
bloc
d’instructions

(1). https://fr.wikipedia.org/wiki/Mnémotechnique

23
3.4 Instruction alternative
Dans le cas où la condition n’est pas satisfaite, nous pouvons programmer une exécution alterna-
tive à l’aide de l’instruction else.

Exercice 5 :
Prévoir l’effet des instructions suivantes. Vérifier dans la console.

 >>> age = 25
 >>> if age < 18 :
 ... print ("Vous êtes mineur")
 ... else :
 ... print ("Vous êtes majeur")

Si
Condition Faux

Vrai
bloc bloc
d’instructions 1 d’instructions 2

4 Cahier des charges


Nous allons maintenant écrire des instructions conditionnelles à l’intérieur de nos fonctions. La
fonction print que nous venons d’utiliser afin de découvrir et manipuler l’instruction conditionnelle
if offre juste un affichage mais ne permet pas de renvoyer un résultat que nous pourrons ré-exploiter.
Nous utiliserons pour cela des fonctions, qui renvoient un résultat au moyen de l’instruction return.

Syntaxe d’une fonction :

 def nom_de_la_fonction(argument1, argument2, ...) :


 instructions
 return resultat

Exercice 6 : Logiciel de caisse automatique


Nous sommes maintenant prêts à programmer notre logiciel.
Écrire une fonction tarif(age) :
• prenant en argument l’âge du client,
• et renvoyant, à l’aide de l’instruction return, le tarif appliqué..

24
5 Programmation modulaire

Exercice 7 : abonnement
La compagnie de bus YESGO propose deux types de tarifs à ses usagers :

• tarif 1 : 1,30 e par trajet,


• tarif 2 : un abonnement mensuel de 12 e, puis 0,5 e par trajet.

Nous allons ici programmer plusieurs fonctions, puis les faire interagir entre elles pour choisir la
formule la plus adaptée, selon le contexte.

Manipuler
a. Écrire une fonction tarif_1(x) :
• prenant en argument le nombre x de trajets,
• et renvoyant le prix à payer par la première formule.
b. Écrire une fonction tarif_2(x) :
• prenant en argument le nombre x de trajets,
• et renvoyant le prix à payer par la seconde formule.
c. Déterminer le rôle, et compléter la fonction suivante :

Fonction meilleur_tarif (x) :


Si tarif_1 (x) < tarif_2 (x) :
meilleur = 1
Sinon :
............
Renvoyer . . . . . . . . . . . .

Rôle de cette fonction : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


d. Écrire en Python une fonction meilleur_tarif(x).
e. Quelle formule choisir si l’on doit réaliser 5 trajets ? 20 trajets ?

Verbaliser
a. Rendons-nous sur le site Python Tutor : http://pythontutor.com/visualize.html#mode=edit.
b. Copier-coller l’ensemble de votre programme (les 3 fonctions), dans la fenêtre de code proposée.
c. Ajouter en fin de programme un appel de la fonction meilleur_tarif : meilleur_tarif(5)
d. Cliquer sur le bouton "Live Programming Mode", puis sur le bouton "« First".
e. Vous allez maintenant pouvoir visualiser l’ordre dans lequel Python lit les lignes du programme,
ainsi que les objets informatiques qu’il crée.
Pour cela, cliquer autant de fois que necessaire sur le bouton "Forward >", pour exécuter le pro-
gramme pas à pas.
f. Ordre de lecture des lignes lors des appels :
meilleur_tarif(5) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
meilleur_tarif(20) : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25
Abstraire
Avec la programmation modulaire, nous découpons une tâche complexe en tâches plus simples.
Chacune des tâches simples est ici réalisée par une fonction spécifique. L’interaction de ces différentes
fonctions permet de résoudre un problème plus complexe.
En somme, en Informatique, l’expression diviser pour mieux régner prend un sens positif.

Algorithme et triangles
Exercice 8 :
On considère l’algorithme suivant où x A , y A , x B , y B , xC et yC sont des nombres réels :

p
d1 ← (x B − x A )2 + (y B − y A )2
p
d2 ← (xC − x A )2 + (yC − y A )2
Si d1 = d2 alors :
reponse ← Vrai
Sinon :
reponse ← Faux
FinSi

a. Déterminer par le calcul ce que contiendra la variable reponse à la fin de cet algorithme dans les
deux cas suivants :
• A(2; −2), B (1; 2) et C (−2; −1)
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................
• A(−2; 4), B (1; 2) et C (−2; −1)
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................
b. Quel est le rôle de cet algorithme ?
..........................................................................................................
..........................................................................................................
c. Sur quelle droite remarquable se trouve le point A lorsque reponse contient la valeur Vrai ?
..........................................................................................................

26
6 Algorithmique et Informatique

Algorithmique
Nous avons vu dans le chapitre 1, qu’il y a plus de deux millénaires, Euclide disposait déjà d’un
algorithme lui délivrant le quotient et le reste d’une division euclidienne.
Al-Khwarizmi, un millénaire plus tard, vivait lui aussi dans une époque sans informatique. Cela ne
l’empêchait en rien de concevoir des algorithmes puis de les mettre en œuvre mentalement ou par écrit.
Dans ce chapitre, nous avons écrit un algorithme dans le langage Python. Mais avant cela, nous
avions conçu mentalement un algorithme, indépendant de Python, et qui aurait pu être verbalisé ainsi :

• Recevoir l’âge
• Comparer l’âge et 18
• Retourner le plus grand

Définition :
• Un algorithme (2) est un processus systématique de résolution de problème.

Définition :
• L’Algorithmique (3) est la science qui étudie et conçoit des algorithmes.

Informatique
Nous avons conçu un algorithme, mais contrairement à Euclide ou Al-Khwarizmi, nous ne l’avons
pas exécuté mentalement ou par écrit. Nous avons commencé par le traduire en Python, puis, nous
avons confié à l’Informatique le soin de l’exécuter.

L’informatique offre ainsi à l’humain de 2019 des capacités de calculs, d’expérimentations et d’ap-
prentissages infiniment supérieures à celles du cerveau seul.

Définition :
• Implémenter (4) un algorithme, c’est le traduire dans un langage de programmation.

Définition :
• Un programme informatique (5) est un ensemble d’instructions destinées à être exécutées par
un ordinateur.

Définition :
• L’Informatique (6) est la science du traitement automatique de l’information par l’exécution de
programmes informatiques sur des machines (ordinateurs, smartphones, robots . . . ).

(2). https://fr.wikipedia.org/wiki/Algorithme
(3). https://fr.wikipedia.org/wiki/Algorithmique
(4). https://fr.wiktionary.org/wiki/implémenter
(5). https://fr.wikipedia.org/wiki/Programme_informatique
(6). https://fr.wikipedia.org/wiki/Informatique

27
Exercice 9 : verbalisation
Nous venons de dire :

Définition :
• L’Informatique (7) est la science du traitement automatique de l’information par l’exécution de
programmes informatiques sur des machines (ordinateurs, smartphones, robots . . . ).

a. Quelle information avez-vous traitée dans le logiciel de caisse automatique ?

..........................................................................................................

b. Comment avez-vous traité cette information ?

..........................................................................................................

..........................................................................................................

..........................................................................................................

c. Quel était le programme informatique ? (Rappeler uniquement la première ligne).

..........................................................................................................

d. Quelle était la machine ?

..........................................................................................................

28
29
La boucle
Lanon bornée
boucle nonwhile
bornée while
Plan du T.P.
1 La boucle while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.1 Manipuler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.2 Verbaliser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.3 Abstraire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2 Problèmes de seuil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
p
3 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1 Les Pythagoriciens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Rappels sur les irrationnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3 La découverte des irrationnels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4 Déterminer un encadrement de racine de 2 par balayage . . . . . . . . . . . . . . . 36
4 Modélisation d’une propagation épidémique . . . . . . . . . . . . . . . . . . . . . . . . . 39
Retour au sommaire

1 La boucle while
L’une des tâches que les ordinateurs font le mieux est la répétition de tâches identiques. Il existe
plusieurs méthodes pour programmer ces tâches répétitives, notamment la boucle Tant que.

1.1 Manipuler

Exercice 1 : Promenade sur les entiers


La boucle "Tant que" commence à l’aide de l’instruction while :

 nombre = 0
 while nombre <= 5 :
 print(nombre)
 nombre = nombre + 1

a. Compléter le schéma suivant :


+1 +1 +1
N
0 1 2 3 4 5 6 7 8 9 10 11

b. Écrire un programme qui affichera successivement les nombres : 0, 1, 2, 3, . . . , 9, 10.


R

30
Exercice 2 : Promenade impaire
a. Nous souhaiterions maintenant parcourir les nombres impairs de 1 à 41.
Compléter le schéma suivant :

+ ... + ... + ...

N
0 1 3 5 7 9 11
R
b. Écrire un programme qui affichera successivement les nombres impairs de 1 à 41 : 1, 3, 5, 7,
9, . . . , 41.

Exercice 3 : Fonction de promenade entre deux entiers


Afin d’éviter de ré-écrire le même programme à chaque nouvelle suite de nombres, nous pouvons pen-
ser à une fonction.

a. Écrire une fonction, promenade(depart, arrivee) :

• prenant en argument deux nombres entiers : depart et arrivee


• et affichant tous les entiers de depart à arrivee

+1 +1 +1 +1 +1
Z
depart arrivee
R
b. Tester votre fonction avec différentes valeurs.

Exercice 4 : Avec des pas de longueur variable


Nous souhaiterions maintenant pouvoir faire des pas de longueur variable (par exemple de longueur 2
pour parcourir des suites de nombres pairs ou impairs).

a. Écrire une fonction, promenade2(depart, arrivee, pas) :

• prenant en argument trois nombres entiers : depart, arrivee et pas,


• et affichant les entiers de depart à arrivee, en faisant des pas de longueur pas.

+ pas + pas + pas + pas + pas


Z
depart arrivee
R
b. Tester votre fonction avec différentes valeurs.

31
1.2 Verbaliser

 nombre = 0
 while nombre <= 5 :
 print(nombre)
 nombre = nombre + 1

L’instruction while, à la ligne 2, indique à Python qu’il lui faut répéter continuellement le bloc
d’instructions qui suit (lignes 3 et 4), tant que la condition "nombre < 5" est vraie.
Comme l’instruction if abordée au chapitre précédent, l’instruction while amorce une instruc-
tion composée. Le double point à la fin de la ligne 2 introduit le bloc d’instructions à répéter, lequel
doit obligatoirement être décalé de 4 espaces : être indenté.
Lorsque la condition n’est plus vraie, le bloc indenté des lignes 3 et 4 est ignoré et le programme
passe aux lignes suivantes, ou s’arrête s’il n’y a pas de suite.

1.3 Abstraire

début du
programme

bloc
d’instructions
while
expression
Vrai
Faux

suite du
programme

Syntaxe d’une boucle Tant que :


 while condition_logique :
 bloc d‘instructions

La fonction print que nous venons d’utiliser pour manipuler la boucle while offre juste un affi-
chage, mais ne permet pas de renvoyer un résultat que nous pourrons ré-exploiter.
Nous utiliserons pour cela des fonctions, qui renvoient un résultat au moyen de l’instruction return :

Syntaxe d’une fonction :


 def nom_de_la_fonction(argument1, argument2, ...) :
 instructions
 return resultat

32
2 Problèmes de seuil

Exercice 5 : Menuiserie
Une menuiserie produit et installe des escaliers en bois. Nous estimerons que le bénéfice mensuel en
euros, réalisé lors de la fabrication de x escaliers, est donné par la fonction :

f définie sur R par : f (x) = 4000x + 2000

On donne ci-dessous le graphique de la fonction f sur [0 ; 10].

a. Résoudre graphiquement l’inéquation :


35000 f (x)
f (x) Ê 30 000 30000 Cf
25000
.............................................
20000
b. Quelle conclusion en tirer pour la menui- 15000
serie ? 10000
............................................. 5000 x
............................................. 0 1 2 3 4 5 6 7 8 9

c. Écrire en Python une fonction f(x) : • prennant en argument un nombre x,


• et renvoyant l’image de x par la fonction f .

d. Quel est le rôle de cette fonction ?

f (x)
Fonction seuil(k) :
x = 0
Tant que f (x) < k :
k
x ← x +1
Retourner x

+1 +1 +1 +1 +1 +1 +1 x
0

..........................................................................................................

..........................................................................................................

e. Écrire cette fonction en Python.

f. Combien d’escaliers la menuiserie doit-elle produire et installer dans le mois pour voir son bénéfice
mensuel dépasser 100 000 euros ?

..........................................................................................................

33
Exercice 6 : un problème d’impression de photos

Un site d’impression de photos en ligne propose deux types de tarifs :


• tarif 1 : 0,5 e par photo,
• tarif 2 : un abonnement de 20 e, puis 0,35 e par photo.
Déterminer à partir de combien de photos il est intéressant de prendre l’abonnement.

Traitement informatique
1. a. Écrire une fonction tarif_1(x), prenant en argument le nombre x de photos à imprimer et
renvoyant le prix à payer par la première formule.
b. Utiliser votre fonction pour déterminer le prix d’impression de 65 photos par la formule 1.
2. a. Écrire une fonction tarif_2(x), prenant en argument le nombre x de photos à imprimer et
renvoyant le prix à payer par la seconde formule.
b. Utiliser votre fonction pour déterminer le prix d’impression 65 photos par la formule 2.
3. Écrire une fonction seuil(), faisant appel aux fonctions des questions 1. et 2., et renvoyant le nombre
de photos à partir duquel il est intéressant de prendre l’abonnement.

Traitement mathématique
Résoudre maintenant le problème à l’aide d’une méthode mathématique.
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................

34
p
3 2

3.1 Les Pythagoriciens

Pythagore, ∼ −580 à −495, Grèce Antique

L’École pythagoricienne (1) , fondée par Pythagore (2) en Grande-Grèce, constitue une confrérie
à la fois scientifique et religieuse. Le pythagorisme repose en effet sur une initiation et propose à ses
adeptes un mode de vie éthique et alimentaire, ainsi que des recherches scientifiques sur le Cosmos.
Cette communauté politique et philosophique s’étale sur neuf à dix générations et a joui d’une
très grande notoriété aussi bien dans l’Antiquité Grecque que Romaine. Ses membres explorèrent la
science des nombres (arithmétique), les bases de l’acoustique et la théorie musicale, la géométrie, le
mouvement des étoiles et la cosmologie.

3.2 Rappels sur les irrationnels

Réels R

Rationnels Q

Décimaux D
p
2
Entiers relatifs Z 1
0,5 π
3
-1
Entiers naturels N -2,17
0, 1, 2, 3 . . . -2

(1). https://fr.wikipedia.org/wiki//École_pythagoricienne
(2). https://fr.wikipedia.org/wiki/Pythagore

35
Rappels
a
• Un nombre rationnel est un nombre pouvant s’écrire sous la forme , où a est un entier relatif
b
et b un entier naturel non nul.
• Un nombre irrationnel est un nombre qui n’est pas rationnel.
p p
• 2 est un nombre irrationnel (et 2 ' 1, 414 . . .).

3.3 La découverte des irrationnels

Pythagore découvrit des lois établissant un rapport entre la longueur de la corde d’une lyre, et la
hauteur de la note émise (plus la corde est longue, plus le son est grave). De même, il tenta de développer
une conception du Cosmos et de la matière dans laquelle, chaque mystère résiderait dans des rapports
entre nombres : ce que nous appelons aujourd’hui des nombres rationnels.
p
La découverte du nombre 2, et d’autrespnombres du même type, est à l’origine d’une crise pro-
fonde chez les mathématiciens grecs. En effet, 2 ne peut s’écrire comme un rapport ba , remettant ainsi
en cause la conception du Cosmos développée par les Pythagoriciens. L’émergence de ces nombres
aboutira, des siècles plus tard, à la nécessité de créer de nouveaux nombres : les irrationnels.

3.4 Déterminer un encadrement de racine de 2 par balayage


La fonction carré
f (x)
• La fonction carré est définie sur R par : f (x) = x 2 :
8
p
7 • Quelle est l’image par la fonction carré de 2 ? ............
6 p
• ( 2)2 = . . . . . . . . .
5
4 Cf •
p
2 ' .........
3 p
Afin d’obtenir une approximation de 2, nous allons mainte-
2 nant "zoomer" p sur la partie de la courbe se trouvant entre les
1 x abscisses 1, 4 et 2.
−4 −3 −2 −1 0 p
1 2 3 4 5
2

36
Représentation imagée de l’algorithme
• x commence son voyage sur l’axe des réels en 1, 4,
• son image x 2 se déplace sur la courbe de la fonction carré :

f (x)

+pas x
p
1, 4 2
x
• À force de faire des pas de longueur pas, il arrive un moment où :

f (x)

+pas +pas x
p
1, 4 x 2 x + p as
(x + p as)2 dépasse 2, pour la première fois.
p
Approximation de 2 de précision donnée
p
1. La fonction ci-dessous permet d’obtenir une approximation de 2, avec une erreur inférieure à pas.
La compléter.

• Fonction approximation(pas) :
x = ...
Tant que (x + pas) ** 2 < . . . :
...............
Retourner x

37
2. Écrire en Python une fonction approximation(pas) :
p
• renvoyant une valeur approchée de 2,
• avec une erreur inférieure à la variable pas.
p
3. Proposer une approximation de 2 à 10−6 près.
..........................................................................................................

p
Encadrement de 2
Pour renvoyer maintenant un encadrement, nous allons avoir besoin d’écrire une fonction renvoyant
plusieurs valeurs :
• la borne inférieure de l’intervalle : x,
• et la borne supérieure de l’intervalle : x + pas.
Nous utiliserons une liste, qui se note en Python entre crochets, en séparant les valeurs par des virgule :

 def encadrement(pas) :
 ...
 return [x,x+pas]

4. Écrire une fonction encadrement(pas) :


• prenant en argument un pas,
p
• et renvoyant les deux bornes d’un intervalle de longueur inférieure à pas, contenant 2.

5. Tester votre fonction avec des pas de valeurs : 0,1 puis 0,01 . . .

Arrondis
Notre fonction renvoie trop de chiffres après la virgule pour être facile à lire.
• avec un pas de longueur 0,1, nous aimerions qu’elle renvoie des nombres à une décimale,
• avec un pas de longueur 0,01, nous aimerions qu’elle renvoie des nombres à deux décimales . . .

6. Pour obtenir des résultats avec un nombre adapté de chiffres après la virgule :

• Copier-coller la fonction suivante en début de programme :

 from math import log


 def arrondi(x, pas) :
 """ arrondir x au même nombre de décimales que pas """
 decimales = round(-log(pas)/log(10))
 return(round(x, decimales))

• Puis, remplacer la ligne commençant par return dans la fonction encadrement par :

 return [arrondi(x, pas), arrondi(x+pas, pas)]

p
7. Proposer un encadrement de 2 à 10−6 près.
..........................................................................................................

38
4 Modélisation d’une propagation épidémique

Exercice 7 : modélisation d’une épidémie


Considérons une population humaine ou animale.

• au jour 0, trois individus sont contaminés par le virus d’une épidémie,


• chaque jour, le nombre d’individus contaminés triple.

a. Quelles sont les deux variables qu’il semble pertinent d’introduire ?


..........................................................................................................

b. Écrire une fonction Python :


• prenant en argument l’effectif de la population,
• et renvoyant le premier jour où toute la population sera contaminée.
Indication : avant de commencer la boucle while, penser à créer les deux variables de la question a.

c. Utiliser la fonction pour déterminer au bout de combien de jours une population d’un million d’in-
dividus sera entièrement contaminée.
..........................................................................................................

d. Notre modèle (→ triple tous les jours), est très simplifié. Mais il a déjà une caractéristique très nette :
ce modèle vous semble-t-il correspondre à une épidémie se propageant rapidement ou lentement ?
..........................................................................................................

e. Proposer en langage naturel un algorithme correspondant à une épidémie où le nombre d’individus


contaminés augmente de 5% tous les jours.
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................

Ronald Ross : paludisme et modélisation


Ronald Ross né en Inde en 1857 et meurt à Londres en 1932. Il est britan-
nique, médecin bactériologiste et entomologiste de l’Armée des Indes bri-
tanniques. Il a reçu le prix Nobel de physiologie ou médecine pour ses tra-
vaux sur le paludisme.
Ses travaux établissent que la transmission du paludisme des oiseaux se
fait par un moustique. Il estime par ailleurs, par la modélisation, le seuil
de moustiques à éradiquer pour éradiquer le paludisme.

39
Exercice 8 : propagation d’une rumeur
Imaginons un modèle très simplifié de propagation d’une rumeur au sein d’une population :

• au jour 1, un individu était au courant de cette rumeur,


• chaque jour, 3 nouveaux individus apprennent cette rumeur.

a. Quelles sont les deux variables qu’il semble pertinent d’introduire ?

..........................................................................................................

b. Écrire une fonction rumeur(n) :

• prenant en argument l’effectif total n de la population,


• renvoyant, à l’aide de l’instruction return, le premier jour où toute la population connaîtra cette
rumeur.

Indication : avant de commencer la boucle while, penser à créer les deux variables de la question a.

c. Au bout de combien de jours une population de 16 000 individus sera intégralement atteinte par la
rumeur ?

..........................................................................................................

Synthèse

Henri Poincaré :
« La mathématique est l’art de donner le même nom à des choses diffé-
rentes. »
Henri Poincaré né en 1854 à Nancy et meurt en 1912 à Paris. Il est mathé-
maticien, physicien, philosophe et ingénieur français. Il est l’un des der-
niers mathématiciens à comprendre l’ensemble des savoir mathématiques
de son époque. Il est aussi philosophe, et est souvent considéré comme un
des derniers grands savants universels.

Les deux exercices que nous venons de traiter, modélisation d’une propagation épidémique et
propagation d’une rumeur, donnent une illustration de l’une de ses affirmations restée célèbre : « La
mathématique est l’art de donner le même nom à des choses différentes ».
En considérant une épidémie puis une rumeur, nous avons imaginé des modèles et des programmes
informatiques presque identiques. Nous avons ainsi abstrait l’épidémie et la rumeur de leurs contextes
respectifs. Nous avons finalement, en quelques sortes, donné le même nom à des choses différentes.

40
41
Types et Arithmétique
Types et Arithmétique

Plan du T.P.
1 Les types de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.1 Les entiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.2 Les chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.3 Les nombres à virgule flottante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.4 Les variables booléennes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2 L’opérateur modulo % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.1 Les opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2 L’opérateur modulo % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3 Où l’on retrouve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4 Applications en arithmétique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Retour au sommaire

1 Les types de variables


Les variables ne contiennent pas forcément des nombres. Elles peuvent aussi stocker des chaînes
de caractères et bien d’autres types de données : listes de nombres, valeurs booléennes (vrai ou faux) . . .
Saisissons par exemple dans la console :

 >>> message = "Hello World !"


 >>> message
 ’Hello World !’

En Python, toutes les variables ont un type qui correspond à la nature de la valeur stockée dans la
variable : nombre entier, nombre à virgule flottante, chaîne de caractères, booléen (Vrai ou Faux) . . .
La fonction type permet de connaître le type d’une variable :

 >>> a = 5
 >>> type(a)
 int
 >>> b = "Bonjour"
 >>> type(b)
 str

Type Notation Python

Nombre entier Integer int


Nombre à virgule flottante Float float
Chaîne de caractères String str
Booléen Boolean bool

42
1.1 Les entiers

Processeur et transistor

Le processeur (1) pourrait être qualifié de cerveau de l’ordinateur. Il est constitué de milliards de transis-
tors. Un transistor se comporte comme un robinet de courant électrique :
• le courant passe,
• ou, le courant ne passe pas.
Pour ces raisons électriques, les ordinateurs n’utilisent que des 0 et des 1 :
• 0 : le courant ne passe pas,
• 1 : le courant passe.
L’ordinateur compte en base 2 (2) : il n’utilise que des 0 et des 1 pour représenter les nombres. Ceci
ne pose pas de problème pour les entiers puisque tout nombre entier peut s’écrire en base 2, avec un
nombre fini de 0 et de 1.
Par exemple :
• 3 s’écrit en base 2 : 11 • 5 s’écrit en base 2 : 101

une deuzaine, et une unité 1 quatraine, 0 deuzaine, 1 unité

• 11 s’écrit en base 2 : 1011

1 huitaine, 1 quatraine, 0 deuzaine, 1 unité

Rappel :
En Python, les nombres entiers sont des objets de type integer (abrégé : int).

(1). https://fr.wikipedia.org/wiki/Microprocesseur
(2). http://pythonlandais.fr/codage/codage4.php

43
1.2 Les chaînes de caractères
Objectif :
Écrire une fonction salutation(prenom), qui produira le résultat suivant lors de son appel en
console :

>>> salutation("Muhammad")
’Bonjour Muhammad’

Exercice 1 : des chaînes de caractères dans la console


a. Deviner le résultat de l’instruction suivante. Vérifier dans la console.

 >>> "Bonjour"

b. Deviner le résultat de l’instruction suivante. Vérifier dans la console.

 >>> "Bonjour " + "Muhammad"

c. Deviner le résultat des instructions suivantes. Vérifier dans la console.

 >>> prenom = "Muhammad"


 >>> "Bonjour " + prenom

Synthèse :
• En Python, les chaînes de caractères peuvent être notées entre guillemets.
• Il est possible de mettre "bout à bout" deux chaînes de caractères à l’aide de l’opérateur +.
On dit alors qu’on a concaténer les deux chaînes de caractères.

Exercice 2 : fonction de salutation


Écrire une fonction salutation(prenom) :
• prenant en argument une chaîne de caractères prenom,
• renvoyant à l’aide de l’instruction return, le message : Bonjour suivi du prénom fourni en argument :

 >>> salutation("Muhammad")
 ’Bonjour Muhammad’

Exercice 3 : fonction majeur


Écrire une fonction majeur(age) :
• prenant en argument un entier age,
• renvoyant le message : • ’Vous êtes mineur’, si l’âge est inférieur à 18,
• ’Vous êtes majeur’, sinon.

1.3 Les nombres à virgule flottante


Nous avons vu avec les entiers que les nombres manipulés par l’ordinateur sont exprimés en base
2. Cela soulève un certain nombre de problèmes pour les décimaux, qui ne peuvent pas tous être écrits
en base 2 avec un nombre fini de 0 et de 1. Certains s’écrivent en base 2 avec une infinité de 0 et de 1 !
Python est alors amené à les tronquer et à utiliser une valeur approchée. Nous constaterons ainsi
parfois une approximation lors des calculs avec des nombres à virgule flottante. Testons par exemple
l’instruction suivante dans la console :

44
 >>> 0.1 + 0.2
 0.30000000000000004

Il en résulte que le test d’égalité "==" n’est pas adapté à la comparaison de nombres à virgules
flottantes :

 >>> 0.1 + 0.2 == 0.3


 False

Exercice 4 :
a. Quel très célèbre théorème de géométrie, étudié au collège, pourrait nous amener à tester l’égalité
de deux nombres à virgules flottantes ?
b. Un tel programme fournirait-t-il un résultat satisfaisant ?

Synthèse :
L’égalité entre nombres flottants n’a, pour ainsi dire, aucun sens. (3)

1.4 Les variables booléennes


Définition :
Une expression booléenne est une expression qui ne peut prendre que deux valeurs : Vrai ou Faux.

Exemple :

 >>> 7 < 4
 False

Définition :
Une variable booléenne est une variable qui ne peut prendre que deux valeurs : Vrai ou Faux.

Exemple : la variable majeur ci-dessous est une variable booléenne :

 >>> age = 16
 >>> majeur = (age < 18)
 >>> majeur
 True

Exercice 5 :
Pour chacune des séquences d’instructions du tableau suivant :
• prévoir le résultat renvoyé, ou ce que contiendra la variable écrite en dernière ligne,
• vérifier en saisissant ces instructions dans la console.

>>> 3 + 1 == 4 >>> 3 + 1 = 5 >>> -20 + 12 != 8


>>> test = 5 < 3 >>> age = 16 >>> age = 35
>>> tarif_reduit = age < 18 >>> tarif_reduit = age < 18

(3). Jean-Pierre Becirspahic : http://pc-etoile.schola.fr/wp-content/uploads/pdf-cours-info/nombres.pdf

45
2 L’opérateur modulo %

2.1 Les opérateurs


Nous avons déjà rencontré des opérateurs réalisant des opérations entre deux nombres :
• x + y : réalise l’addition de x et de y,
• x - y : réalise la soustraction de x − y,
• x * y : réalise la multiplication de x et de y„
• x / y : réalise la division de x par y„
• x ** y : élève x à la puissance y,

Nous avons aussi rencontré des opérateurs réalisant des comparaisons entre deux nombres :
• x == y : teste si x est égal à y (en Python, "le conditionnel se conjugue en double égal"),
• x != y : teste si x est différent de y,
• x > y : teste si x est supérieur strictement à y,
• x < y : teste si x est inférieur strictement à y,
• x >= y : teste si x est supérieur ou égal à y,
• x <= y : teste si x est inférieur ou égal à y.

2.2 L’opérateur modulo %


Il existe une infinité de nombres entiers naturels : 0, 1, 2, 3 . . .
En mathématiques et en informatique, il sera souvent utile de travailler dans des structures ne
contenant, par exemple, que 10 entiers : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Après, nous considérerons que : • 10, c’est 0,
• 11, c’est 1,
• 12, c’est 2
• 13, c’est 3 . . .
Cela peut sembler curieux ou inutile. Cependant, il est intéressant de remarquer que nous comp-
tons déjà modulo 24 depuis la petite enfance. En effet, nous ne numérotons les heures que de 0 à 23, et
revenons à 0 toutes les 24 heures.
Nous comptons ainsi modulo 24 : • au bout de 24 heures, il est 0 heure,
• au bout de 25 heures, il est 1 heure,
• au bout de 26 heures, il est 2 heures,
• au bout de 48 heures, il est 0 heure . . .
Exercice 6 :
Prévoir les résultats renvoyés par les instructions suivantes. Vérifier si besoin dans la console.
do. 3%2 ré. 4%2 mi. 5%2 fa. 6%2 sol. 0%2
la. 1%2 si. 2%2 do. 7%2

a. 13 % 10 b. 8 % 10 c. 27 % 10 d. 3 % 10 e. 134 % 10
f. 4%5 g. 25 % 5 h. 53 % 5

1. 11 % 13 2. 13 % 13 3. 14 % 13 4. 15 % 13 5. 25 % 13
6. 26 % 13 7. 27 % 13 8. 28 % 13

3 Où l’on retrouve . . .
Exercice 7 :
a. À quelle notion mathématique célèbre associer l’opérateur modulo ?
b. En cas de doute, vous trouverez la réponse en haut de la page suivante.

46
 >>> ’Euclide, bien sûr !’

Partie 3
Partie 2

Partie 1

Nous avons revu dans le chapitre 1 la division euclidienne d’un entier naturel a, par un entier
naturel b non nul. Il s’agit de déterminer :
• le nombre de paquets de b unités que nous pouvons prélever dans a,
• le nombre d’unités restantes à l’issue du partage.

Définition :
• Soient a et b deux nombres entiers naturels tels que b 6= 0.
Effectuer la division euclidienne de a par b, c’est trouver les deux entiers naturels q et r tels que :
a = b ×q +r et 0 ≤ r < b.
• Le nombre q est appelé le quotient de la division euclidienne de a par b. .
• Le nombre r est appelé le reste de la division euclidienne de a par b.

Syntaxe :
En Python, le nombre a%b est le reste de la division euclidienne de a par b.

4 Applications en arithmétique

Exercice 8 :
Soit n un entier naturel.
a. Compléter l’équivalence suivante en utilisant l’opérateur % : n est divisible par 3 ⇔ ..............
b. Écrire une fonction divisible_par_3(n) :
• prenant en argument un entier naturel n,
• et renvoyant : • True, si n est divisible par 3,
• False, sinon.

47
c. Tester votre fonction avec les nombres suivants : 9, 7, 21, 341, 351.
d. Rappeler le critère de divisibilité par 3 étudié au collège.
e. Vérifier que nous obtenons bien les mêmes résultats que dans la question c. à l’aide de ce critère.

Exercice 9 :
a. Écrire une fonction pair(n), prenant en argument un entier naturel n, et renvoyant :
• True, si n est pair,
• False, sinon.
b. Rappeler le critère de divisibilité par 2 étudié au collège.

Exercice 10 :
Soit n un entier naturel.
a. Compléter l’équivalence suivante en utilisant l’opérateur % : a est divisible par b ⇔ .............
b. Écrire une fonction divisible(a,b) :
• prenant en argument un entier naturel a et un entier naturel b non nul,
• et renvoyant : • True, si a est divisible par b,
• False, sinon.
c. Utiliser la fonction de la question b. pour tester si :
• 12 est divisible par 4 ? • 9 est divisible par 4 ? • 81 est divisible par 9 ?
• 144 est divisible par 12 ? • 169 est divisible par 13 ? • 400 est divisible par 20 ?
• 8043 est divisible par 17 ? • 8041 est divisible par 17 ?

48
La boucle
La boucle bornée for bornée for
Plan du T.P.
1 Les boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2 La boucle for ... in ... en Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.1 Manipuler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.2 Verbaliser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.3 Abstraire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3 Application à la résolution de problèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4 Déterminer si un nombre est premier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Retour au sommaire

1 Les boucles
L’informatique nous offre la possibilité de répéter des tâches de façon automatique. Nous avons
déjà vu que pour éviter de répéter les mêmes instructions plusieurs fois, nous pouvions avoir recours à
des fonctions ou à des boucles.

Exercice 1 :
En une phrase, comparer les effets des deux programmes suivants :

 x = 0  x = 0
 x = x + 1  while x < 5 :
 x = x + 1  x = x + 1
 x = x + 1
 x = x + 1
 x = x + 1

Deux types de situations peuvent se présenter :


• le nombre de répétitions à réaliser n’est pas connu à l’avance.
Exemple 1 : un jeu consiste à lancer un dé jusqu’à obtenir un six.
• le nombre de répétitions est connu à l’avance.
Exemple 2 : un jeu consiste à lancer 3 fois de suite un dé.

Exercice 2 :
Parmi les deux algorithmes suivants, lequel associer à l’exemple 1 ? Et à l’exemple 2 ?

• Tant que lancer 6= 6 : • Pour compteur allant de 1 à 3 :


lancer le dé lancer le dé

Remarque :
la variable compteur ci-dessus joue, comme son nom l’indique, le rôle d’un compteur.
Elle compte les "tours de boucle" réalisés.

49
2 La boucle for ... in ... en Python

2.1 Manipuler
En anglais, range signifie ampleur, gamme, envergure, étendue. Même si cette traduction n’est pas
correcte, nous pourrons penser à un intervalle.
Testons dans la console les deux lignes suivantes :

 >>> for compteur in range(1, 10) :


 ... print(compteur)

Exercice 3 :
En utilisant une boucle for, écrire dans la console des instructions permettant d’afficher :
• les entiers de 1 à 10,
• les entiers de 1 à 100,
• les nombres pairs de 0 à 40.

Exercice 4 :
Écrire dans l’éditeur une fonction jusque(n), prenant un nombre entier n en argument et affichant
successivement tous les entiers de 0 à n.

2.2 Verbaliser
Exercice 5 :
a. Par quelles valeurs passe successivement la variable compteur dans l’exemple ci-dessus ?
b. Compléter : "pour aller de 1 à n", nous écrivons : range(...... , ......)

2.3 Abstraire
Syntaxe d’une boucle for :

Langage naturel Python

Pour variable allant de 1 à n for variable in range(1, n+1) :


bloc d’instructions bloc d’instructions

Remarques :
• La variable prend successivement les valeurs de 1 à n.
• Nous remarquons que pour aller jusqu’à n, nous écrivons n + 1 : range(1,n+1).
Nous pourrons penser à un intervalle fermé à gauche, et ouvert à droite : [1 ; n + 1[ .
• Les deux points en fin de première ligne introduisent le bloc d’instructions à répéter.
Celui-ci doit être indenté.
• La fin de l’indentation signale la fin du bloc d’instruction à répéter.

50
3 Application à la résolution de problèmes
Nous allons maintenant utiliser des boucles for à l’intérieur de nos fonctions. La fonction print
que nous venons d’utiliser afin de manipuler la boucle for offre juste un affichage, mais ne permet pas
de renvoyer un résultat que nous pourrons ré-exploiter.
Nous utiliserons à cette fin des fonctions, qui renvoient un résultat au moyen de
l’instruction return :

Syntaxe d’une fonction :

 def nom_de_la_fonction(argument1, argument2, ...) :


 instructions
 return resultat

Exercice 6 : permis de conduire


Afin de passer son permis de conduire dans quelques années, une élève place la somme de 400e.
Celle-ci est rémunérée à l’issue de chaque année au taux de 3% (pourcentage calculé sur le montant
présent sur le compte pour l’année en cours).
Écrire une fonction permis(n) :
• prenant en argument un nombre d’années n,
• et renvoyant la somme présente sur le compte au bout de n années de placement.

Exercice 7 : le marchand de farine


Au XVIIIème siècle, un négociant en farine vivant à Sète décide de se rendre à Toulouse, pour y vendre sa
farine. Il emprunte pour son périple le canal du Midi, qui relie la mer Méditerranée et la Garonne.
Le canal traverse 63 écluses. A chaque écluse, le négociant doit donner 1 % de son chargement en péage
royal, puis échanger 3 sacs de farine contre de la nourriture.
a. Écrire une fonction farine(sac), prenant en argument le nombre de sacs dont il dispose au départ
de Sète, et renvoyant le nombre de sacs qu’il lui restera à son arrivée à Toulouse.
b. Écrire une seconde fonction, minimum(), renvoyant le nombre minimum de sacs dont il faut dispo-
ser au départ pour arriver jusqu’à Sète avec au moins 500 sacs à vendre.
c. N’y-a-t-il pas un anachronisme (1) dans cet exercice ?

Exercice 8 : un problème d’empilement de sphères


On empile des sphères comme sur la figure ci-dessous pour former une pyramide à base carrée.

a. Combien de sphères faut-il pour réaliser une pyramide à 2 étages ? 3 étages ?


(1). https://fr.wikipedia.org/wiki/Anachronisme

51
b. Sachant qu’il faut 55 sphères pour former une pyramide à 5 étages, combien en faudra-t-il pour
former une pyramide à 6 étages ?
c. Écrire une fonction pyramide(n), prenant en argument un entier naturel n, et renvoyant le nombre
de sphères nécessaires pour réaliser une pyramide à n étages.
d. En déduire le nombre d’étages de la plus haute pyramide que l’on peut réaliser avec 1000 sphères.

4 Déterminer si un nombre est premier

Définition :
Un nombre entier naturel est premier s’il admet exactement deux diviseurs positifs : 1 et lui-même.

Exemples :
• 1 n’est pas premier : il n’admet qu’un diviseur positif : lui-même,
• 7 est premier : il admet deux diviseurs positifs : 1 et lui-même,
• 6 n’est pas premier : il admet quatre diviseurs positifs : 1, 2, 3, 6.

Exercice 9 : une fonction pour déterminer si un nombre est premier


a. Copier-coller la fonction divisible(a, b), écrite dans le dernier exercice du chapitre 6.
b. Compléter les fonctions ci-dessous :

• Fonction divisible(a, b) :
Si . . . . . . . . . . . . . . . :
Renvoyer . . . . . . . . .
Sinon :
Renvoyer . . . . . . . . .

• Fonction premier(n) :
reponse ← Vrai
Pour compteur allant de . . . à . . . :
Si . . . . . . . . . . . . . . . :
...............
Renvoyer reponse

c. Écrire une fonction premier(n) :


• prennant en argument un entier naturel n ≥ 2,
• renvoyant : • True si n est premier,
• False sinon.

52
53
Échantillonnage
Échantillonnage
Plan du T.P.
1 Probabilités et Statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.1 Les Probabilités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.2 Les Statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.3 L’échantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2 TP introductif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.1 Simuler le hasard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.2 Échantillon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.3 Fluctuation d’échantillonnage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.4 La loi des grands nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.1 Échantillon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.2 Fluctuation d’échantillonnage et loi des grands nombres . . . . . . . . . . . . . . . 59
3.3 Estimation d’une proportion dans une population . . . . . . . . . . . . . . . . . . . 61
4 T.P. : Estimation d’une probabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Retour au sommaire

Quelques grandes figures des Probabilités et des Statistiques

Cliquer une image au choix


Blaise Pascal - Jacques Bernoulli - Carl Friedrich Gauss
Pierre-Simon de Laplace - Adolphe Quetelet - Andreï Kolmogorov

54
1 Probabilités et Statistiques

Probabilités

Probabilités Résultats de
des issues l’expérience

Statistiques

Probabilités et Statistiques sont deux démarches "inverses"

1.1 Les Probabilités


Exercice 1 :
On dispose dé truqué dont on connaît Les probabilités d’apparition de chaque face. La face 6 apparaît
avec probabilité 0,5, et les autres faces apparaissent, chacune, avec probabilité 0,1. Lançons ce dé.
Quelle est la probabilité d’obtenir un nombre pair ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

• En probabilités, les probabilités des issues de l’expérience sont connues.


• Les résultats de l’expérience sont ainsi inconnus.
• On tente de "prédire" les résultats qu’on l’on peut espérer si l’on réalise l’expérience.

1.2 Les Statistiques


Exercice 2 :
On nous offre un dé truqué.
Comment estimer les probabilités d’apparition de chacune des faces ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
À l’aide de quel objet statistique estimerons-nous ces probabilités ? ..................................

• En Statistiques, les résultats de l’expérience sont connus.


• Les probabilités des issues de l’expérience sont inconnues.
• On tente d’estimer ces dernières, à l’aide des résultats de l’expérience.

1.3 L’échantillonnage
• En Statistiques, un échantillon est un ensemble d’individus pré-
Population
levé dans une population.
• L’échantillonnage désigne les méthodes de sélection et d’étude
des échantillons. Échantillon
• L’objectif est d’estimer, à l’aide d’un échantillon, les caractéris-
tiques de l’ensemble de la population.

55
2 TP introductif

2.1 Simuler le hasard


Le module random offre des fonctions permettant de simuler le hasard.

Exercice 3 : dans la console


a. Commencer par importer dans la console la fonction randint depuis la bibliothèque random :

 >>> from random import randint

b. simuler des lancers de dé dans la console :

 >>> randint(1,6)

c. Que saisir pour obtenir un nombre entier aléatoire compris entre 1 et 10 ?

..........................................................................................................

Exercice 4 : fonction de lancer d’un dé


Écrire dans l’éditeur une fonction lancer(), renvoyant le résultat d’un lancer de dé.

2.2 Échantillon
Exercice 5 : lancers successifs
a. Voici une fonction utilisant la fonction lancer() de l’exercice précédent :

• Fonction frequence_6(n) :
succes = 0
Pour . . . . . . . . . . . . :
de = lancer()
Si de == 6 :
............
Retourner . . . . . . . . . . . .

Quel est le rôle de cette fonction ?

..........................................................................................................

b. Écrire dans l’éditeur une fonction frequence_6(n) :


• prennant un nombre n de lancers en argument,
• renvoyant la fréquence de 6 obtenus parmi ces n lancers.

Définition :
• Un échantillon aléatoire de taille n est la liste des résultats obtenus lors de n répétitions indé-
pendantes de la même expérience aléatoire.

56
2.3 Fluctuation d’échantillonnage
Exercice 6 : échantillons successifs
Á l’aide de la fonction de l’exercice précédent, réaliser plusieurs échantillons de n=100 lancers de dé.
a. La fréquence de 6 obtenus est-elle toujours la même ?

..........................................................................................................

b. Autour de quelle valeur semble fluctuer la fréquence f de 6 ?

..........................................................................................................

c. Compléter le schéma suivant :

Population
p = ...

Échantillon
n = ...
f

Propriété :
• Lorsqu’on prélève des échantillons de taille n dans une population où la proportion d’un carac-
tère est p, on observe que les fréquences f obtenues dans les échantillons, fluctuent autour de la
proportion p.
• On parle de fluctuation d’échantillonnage.

2.4 La loi des grands nombres


Exercice 7 : lorsque n devient grand
a. Réaliser maintenant des échantillons de lancers de dé de plus grandes tailles.
b. Qu’observe-t-on lorsque n augmente ?

..........................................................................................................

Population
p

Échantillon
n
f

Loi des grands nombres :


• On prélève un échantillon de taille n dans une population où la proportion d’un caractère est p.
• Lorsque n est grand, sauf exception, la fréquence f observée dans l’échantillon est proche de la
proportion p de la population.

57
3 Exercices

3.1 Échantillon

Exercice 8 : Pile ou Face


On réalise 5 lancers successifs d’une pièce de monnaie supposée équilibrée. les résultats de chacun des
lancers sont notés.
a. Quelle est l’expérience à deux issues qui est ici répétée ?

..........................................................................................................
b. Quelles sont les deux issues possibles et leurs probabilités respectives ?

..........................................................................................................
c. Quelle est la taille de l’échantillon obtenu ?

..........................................................................................................
d. Donner un exemple d’échantillon que nous pourrions ainsi obtenir.

..........................................................................................................
e. On souhaite simuler cette expérience à l’aide de Python : pile sera représenté par la valeur 0 et face
par 1. Compléter la fonction suivante pour qu’elle renvoie la fréquence de piles obtenue :

 from random import randint



 def lancer() :
 pile = .....
 for compteur in range( ..... ) :
 if randint(0,1) == ..... :
 ...............
 return ...............

Exercice 9 : Contrôle de qualité


Un société produit et commercialise des ampoules électriques. Afin de tester la qualité de sa production,
1000 ampoules sont prélevées au hasard et testées.
Si une ampoule fonctionne moins de 10 000 heures, elle considérée comme non conforme et le résultat
de l’expérience est codé par le nombre 0. Sinon, le résultat de l’expérience est codé par le nombre 1.
a. Quelle est l’expérience à deux issues qui est ici répétée ?

..........................................................................................................
b. Quelles sont les deux issues possibles ?

..........................................................................................................
c. Quelle est la taille de l’échantillon obtenu ?

..........................................................................................................
d. Donner un exemple d’échantillon que nous pourrions ainsi obtenir.

..........................................................................................................
e. Pourquoi ne pas tester l’ensemble de la production ?

..........................................................................................................

58
Exercice 10 :
On considère l’algorithme suivant :

• Fonction mystere(n) :
nombre ← 0
Pour compteur allant de 1 à n :
lancer ← nombre entier aléatoire entre 1 et 6
Si lancer = 2 ou 4 ou 6 :
nombre ← nombre + 1
Retourner nombre / n

a. Quelle expérience aléatoire est ici reproduite n fois ?

..........................................................................................................
b. Que renvoie cette fonction ?

..........................................................................................................

3.2 Fluctuation d’échantillonnage et loi des grands nombres

Nous allons maintenant :


• prélever plusieurs échantillons au sein d’une même population,
• observer les fluctuations d’échantillonnage d’un échantillon à l’autre,
• voir comment limiter ce phénomène de fluctuation d’échantillonnage.

Échantillon 1
n
f1

Échantillon 2
n
f2
Population
p Échantillon 3
n
f3

Échantillon x
n
fx
Fluctuation d’échantillonnage

59
Exercice 11 : Urne
Une urne contient 300 boules bleues et 700 boules vertes.
On a constitué un échantillon de taille 100 de l’expérience consistant à : prélever une boule dans l’urne,
noter sa couleur, la remettre dans l’urne.
1. Préciser sur le schéma ci-dessous la population, la proportion p de boules bleues et la taille de
l’échantillon.

Population
p = ...

Échantillon
n = ...
f

On constitue maintenant 20 échantillons de taille 100.

Échantillon 1 2 3 4 5 6 7 8 9
Nombres de boules bleues 29 31 40 28 35 26 27 28 33
Fréquence des boules bleues

10 11 12 13 14 15 16 17 18 19 20
30 28 25 40 25 36 26 29 25 27 36

2. a. Calculer la fréquence de boules bleues obtenue dans chaque échantillon.


b. Quelle est l’étendue obtenue entre la plus petite et la plus grande fréquence obtenue ?
......................................................................................................

3. Afin d’obtenir des échantillons de tailles plus significatives, nous allons regrouper, dans le tableau
ci-dessous, les 4 premiers échantillons ensembles, les 4 suivants ensembles . . .
a. Quelle est la taille des nouveaux échantillons ?
......................................................................................................

b. De combien d’échantillons disposons-nous ainsi ?


......................................................................................................

c. Compléter le tableau ci-dessous.

Échantillon 1 2 3 4 5
Nombres de boules bleues
Fréquence des boules bleues

d. Quelle est l’étendue obtenue entre la plus petite et la plus grande fréquence ainsi obtenues ?
......................................................................................................

4. Comparer et expliquer les différences obtenues entre les questions 1 et 2.


..........................................................................................................
..........................................................................................................

60
3.3 Estimation d’une proportion dans une population
Exercice 12 : Estimer à l’aide d’un échantillon
Considérons maintenant une situation inverse à celle de l’exercice Population
précédent : la proportion de boules bleues présentes dans l’urne est p inconnu
inconnue et nous allons chercher à l’estimer à l’aide d’un échantillon.
Échantillon
On prélève pour cela un échantillon de taille 100 et l’on observe une
n = ...
fréquence 0,43 de boules bleues. f = ...

a. Compléter le schéma ci-dessus.

b. Par quelle valeur pourrions-nous estimer la proportion p de boules bleues présentes dans l’urne ?

..........................................................................................................

c. Cette estimation fournit-t-elle la proportion exacte de boules bleues ?

..........................................................................................................

d. Comment affiner cette estimation ?

..........................................................................................................

Exercice 13 : Sondage

En vue de la prochaine élection présidentielle, un candidat fait réa- Population


liser un sondage. L’institut de sondage interroge 10 000 électeurs et p inconnu
recueille 1700 intentions de vote pour ce candidat.
Échantillon
n = ...
f = ...

a. Compléter le schéma ci-dessus.

b. Par quelle valeur pourrions-nous estimer la proportion p d’électeurs ayant l’intention de voter pour
ce candidat ?

..........................................................................................................

c. Comment affiner cette estimation ?

..........................................................................................................

Propriété :
Estimation d’une proportion dans une population par une fréquence dans un échantillon
• Considérons une population dans laquelle on cherche à estimer la proportion p des individus qui
possèdent un caractère. Prélevons un échantillon de taille n dans la population. Alors la fréquence
f observée dans l’échantillon fournit une estimation de p.
• Plus la taille n de l’échantillon est grande, plus l’estimation est fiable.

61
4 T.P. : Estimation d’une probabilité

Exercice 14 : jeu de hasard


Un jeu consiste à lancer 10 fois de suite une pièce équilibrée. Pour gagner, il faut obtenir 5 piles. On
souhaite dans cet exercice estimer la probabilité de gagner.
a. Écrire une fonction partie() : Population des parties
• réalisant 10 lancer d’une pièce équilibrée, probabilité p de gagner inconnue
• et renvoyant le nombre de pile obtenus.
b. Écrire une seconde fonction echantillon_partie(n) : Échantillon de parties
n
• réalisant un échantillon de n parties de ce jeu, f
• et renvoyant la fréquence des parties gagnées.
a. Proposer une estimation à deux décimales de la probabilité de gagner. On veillera à choisir n suffi-
samment grand pour stabiliser les fréquences observées dans les échantillons.

Exercice 15 : Simuler le hasard avec la fonction random()


Jusqu’ici, pour générer des nombres aléatoires, nous n’avons utilisé que la fonction randint :

 from random import randint



 nombre_aleatoire = randint(a,b)

Remarquons que cette fonction renvoie :


• un nombre aléatoire entier,
• avec des probabilités égales pour chacun des entiers compris entre a et b.

a. Quel type de situation, rencontrée dans le cours de probabilités, peut facilement être simulée à l’aide
de la fonction randint ?

..........................................................................................................

En dehors de ce cas, les issues d’une expérience aléatoire n’ont pas toutes les mêmes probabilités de
se réaliser (dé truqué, pièce mal équilibrée . . . ). La fonction random() va nous permettre d’obtenir des
probabilités différentes pour les différentes issues.

b. Importer dans la console la fonction random() depuis la librairie random :

 >>> from random import random

c. Saisir plusieurs de suite dans la console l’instruction : >>> random(), et deviner ce qu’elle renvoie.

..........................................................................................................

d. Quelle est la probabilité pour un nombre aléatoire entre 0 et 1 d’être inférieur à 0,9 ?

0 1
[ ]
0,9
0,9 0,1
..........................................................................................................

62
e. Quelles sont les deux valeurs que peut prendre l’expression random() < 0.9 ?

..........................................................................................................

f. Avec quelles probabilités sont prises chacune de ces deux valeurs ?

..........................................................................................................

g. Comment obtenir un nombre aléatoire prenant les valeurs :


• True, avec la probabilité 0,3
• False, avec la probabilité 0,7

..........................................................................................................

h. Comment obtenir un nombre aléatoire prenant les valeurs :


• True, avec la probabilité 0,49
• False, avec la probabilité 0,51

..........................................................................................................

Exercice 16 : familles de trois enfants


En France, on estime que la proportion de filles parmi les naissances s’élève à 49%.
On souhaite estimer la probabilité pour un couple projetant d’avoir 3 enfants d’avoir au moins une fille.
Nous représenterons, dans cet exercice, les filles par la valeur True, et les garçons par la valeur False.
a. Réaliser un schéma explicitant population et échantillon.
b. Écrire une fonction enfant() renvoyant :
• True (fille), avec probabilité 0,49
• False (garçon), avec probabilité 0,51
c. Écrire une fonction famille() :
• simulant trois naissances successives dans une famille (à l’aide de la fonction enfant()),
• et renvoyant le nombre de filles parmi ces trois enfants.
d. Écrire une fonction echantillon_famille(n) :
• constituant un échantillon de n familles (à l’aide de la fonction famille()),
• et renvoyant la fréquence dans cet échantillon des familles ayant au moins une fille.
e. Proposer une estimation à deux décimales de la probabilité d’avoir au moins une fille pour une
famille de trois enfants. On veillera à choisir n suffisamment grand pour stabiliser les fréquences
observées dans les échantillons.

Propriété :
Estimation d’une probabilité par une fréquence observée dans un échantillon
• Considérons une expérience aléatoire et un événement A dont on souhaite estimer la probabilité
p. Réalisons un échantillon de taille n de cette expérience. Alors, la fréquence dans l’échantillon
des cas où l’événement A est réalisé, fournit une estimation de la probabilité p.
• Plus la taille n de l’échantillon est grande, plus l’estimation est fiable.

63
5 Synthèse

Définition :
• Un échantillon aléatoire de taille n est la liste des résultats obtenus lors de n répétitions indé-
pendantes de la même expérience aléatoire.

Propriété :
• Lorsqu’on prélève des échantillons de taille n dans une population où la proportion d’un carac-
tère est p, on observe que les fréquences f obtenues dans les échantillons, fluctuent autour de la
proportion p.
• On parle de fluctuation d’échantillonnage.

Loi des grands nombres :


• On prélève un échantillon de taille n dans une population où la proportion d’un caractère est p.
• Lorsque n est grand, sauf exception, la fréquence f observée dans l’échantillon est proche de la
proportion p de la population.

Population
p

Échantillon
n
f

Propriété :
Estimation d’une proportion dans une population par une fréquence dans un échantillon
• Considérons une population dans laquelle on cherche à estimer la proportion p des individus qui
possèdent un caractère. Prélevons un échantillon de taille n dans la population. Alors la fréquence
f observée dans l’échantillon fournit une estimation de p.
• Plus la taille n de l’échantillon est grande, plus l’estimation est fiable.

Propriété :
Estimation d’une probabilité par une fréquence observée dans un échantillon
• Considérons une expérience aléatoire et un événement A dont on souhaite estimer la probabilité
p. Réalisons un échantillon de taille n de cette expérience. Alors, la fréquence dans l’échantillon
des cas où l’événement A est réalisé, fournit une estimation de la probabilité p.
• Plus la taille n de l’échantillon est grande, plus l’estimation est fiable.

64
65

Vous aimerez peut-être aussi