Seconde Algorithme Programmation
Seconde Algorithme Programmation
classe de Seconde
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
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
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
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
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) .
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
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 = . . . . . . . . . . . .
• 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.
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.
>>> 5 + 3
8
1. 23 - 16 2. 3 * 2 3. 10 / 5 4. 3 + 2 * 4 5. 3 ** 2
11
Exercice 3 : repères chronologiques
Civilisation
Numérique
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
>>> 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
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
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.
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
(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.1 Analogies
Exercice 1 :
• Voici une fonction mathématique :
def f(x) :
return 2*x
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.
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
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.
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.
• on peut alors utiliser la fonction sqrt dans le programme, aussi souvent que nécessaire :
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.
• ..................................................
• ..................................................
• ..................................................
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
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€
• Si age < 18 :
............
• Sinon :
............
b. De quel type d’objet informatique aurions-nous besoin pour stocker la valeur à renvoyer à l’utilisa-
teur ?
..........................................................................................................
• 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.
..........................................................................................................
..........................................................................................................
..........................................................................................................
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.
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.
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.
>>> age = 16
>>> if age < 18 :
... print("Vous êtes mineur")
>>> 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
24
5 Programmation modulaire
Exercice 7 : abonnement
La compagnie de bus YESGO propose deux types de tarifs à ses usagers :
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 :
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 . . . ).
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................
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
nombre = 0
while nombre <= 5 :
print(nombre)
nombre = nombre + 1
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.
+1 +1 +1 +1 +1
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
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 :
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 (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
..........................................................................................................
..........................................................................................................
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
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
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.
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 . . .).
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.
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]
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 :
• Puis, remplacer la ligne commençant par return dans la fonction encadrement par :
p
7. Proposer un encadrement de 2 à 10−6 près.
..........................................................................................................
38
4 Modélisation d’une propagation épidémique
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 ?
..........................................................................................................
39
Exercice 8 : propagation d’une rumeur
Imaginons un modèle très simplifié de propagation d’une rumeur au sein d’une population :
..........................................................................................................
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
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
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
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’
>>> "Bonjour"
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.
>>> salutation("Muhammad")
’Bonjour Muhammad’
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 :
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)
Exemple :
>>> 7 < 4
False
Définition :
Une variable booléenne est une variable qui ne peut prendre que deux valeurs : Vrai ou Faux.
>>> 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.
45
2 L’opérateur modulo %
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.
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
Exercice 2 :
Parmi les deux algorithmes suivants, lequel associer à l’exemple 1 ? Et à l’exemple 2 ?
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 :
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 :
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 :
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.
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.
• Fonction divisible(a, b) :
Si . . . . . . . . . . . . . . . :
Renvoyer . . . . . . . . .
Sinon :
Renvoyer . . . . . . . . .
• Fonction premier(n) :
reponse ← Vrai
Pour compteur allant de . . . à . . . :
Si . . . . . . . . . . . . . . . :
...............
Renvoyer reponse
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
54
1 Probabilités et Statistiques
Probabilités
Probabilités Résultats de
des issues l’expérience
Statistiques
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
>>> randint(1,6)
..........................................................................................................
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 . . . . . . . . . . . .
..........................................................................................................
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 ?
..........................................................................................................
..........................................................................................................
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.
..........................................................................................................
Population
p
Échantillon
n
f
57
3 Exercices
3.1 Échantillon
..........................................................................................................
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 :
..........................................................................................................
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
..........................................................................................................
b. Que renvoie cette fonction ?
..........................................................................................................
É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
É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
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 ?
......................................................................................................
É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 ?
......................................................................................................
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 = ...
b. Par quelle valeur pourrions-nous estimer la proportion p de boules bleues présentes dans l’urne ?
..........................................................................................................
..........................................................................................................
..........................................................................................................
Exercice 13 : Sondage
b. Par quelle valeur pourrions-nous estimer la proportion p d’électeurs ayant l’intention de voter pour
ce candidat ?
..........................................................................................................
..........................................................................................................
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é
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.
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 ?
..........................................................................................................
..........................................................................................................
..........................................................................................................
..........................................................................................................
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.
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