Algorithmique
Algorithmes
Table des matières
I Programme 2
I.1 Extrait du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
I.2 Extrait du document d’accompagnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
II Références sur l’ e-toile 2
IIITester la compréhension d’un algorithme 3
IV Algorithmes liés au programme de la classe de première 3
IV.1 Écriture en base bd’un entier donné en base 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
IV.2 Liste des diviseurs positifs d’un entier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
IV.3 Diviseurs communs et pgcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
IV.4 Algorithme d’Euclide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
IV.5 Factorisation d’un entier en facteurs premiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
IV.6 Travail sur le système décimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
IV.7 Probabilités et simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
V Les suites 10
V.1 Somme de termes d’indices consécutifs d’une suite arithmétique . . . . . . . . . . . . . . . . . . . . . . 10
V.2 Somme de termes d’indices consécutifs d’une suite géométrique . . . . . . . . . . . . . . . . . . . . . . 11
V.3 Limite d’une suite géométrique : quelques annales du bacc . . . . . . . . . . . . . . . . . . . . . . . . . 12
VI Récurrence 14
VIILa division euclidienne 15
VII.1Calcul d’un quotient de division . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
VII.2Calculdureste ................................................. 15
VII.3Algorithme de division euclidienne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
VIIIAlgorithme de multiplication 18
IX Les congruences 18
IX.1 Congruence de deux entiers relatifs selon un module . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
IX.2Congruences................................................... 19
IX.3 Des critères de divisibilité en base 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
IX.4Clefsdecontrôle ................................................ 23
X Écriture décimale d’un réel 24
XI Exponentielle 26
XIILogarithme 27
Académie de Lyon - Janvier 2007 - Nouveaux programmes de TL page 1/28
Algorithmique
I Programme
I.1 Extrait du programme
Les activités algorithmiques apportent un éclairage pratique par l’étude de problèmes liés à la réalisation effective des
opérations mathématiques.
Les objectifs du programme :
1. attirer l’attention des élèves sur la différence entre la résolution abstraite d’un problème et la succession des
opérations permettant de produire un objet mathématique qui en est solution (exacte ou approchée) ;
2. soulever la question de l’efficacité des algorithmes rencontrés, en termes de nombres d’opérations élémentaires
nécessaires.
L’algorithme est ici considéré comme un outil dont on s’attache à découvrir les propriétés, sans toutefois développer
une théorie, même très élémentaire de la complexité ou de la rapidité.
Les notions sont à travailler progressivement et à mobiliser dans toutes les parties du programme.
Les élèves seront entraînés :
1. à décrire certains algorithmes en langage naturel ;
2. à en réaliser quelques-uns parmi les plus simples, à l’aide d’un tableur ou d’une calculatrice ou d’un logiciel
adapté ;
3. à interpréter des algorithmes plus complexes (c’est à dire à identifier ce qu’ils produisent).
L’utilisation des fonctions logiques du tableur est l’occasion de compléter le travail dans le domaine de la logique.
I.2 Extrait du document d’accompagnement
Le développement fulgurant de l’informatique ces dernières décennies est lié à la réalisation de logiciels toujours plus
puissants et fondés sur la conception et la mise en oeuvre d’algorithmes. Parmi les plus utilisés « sans le savoir »,
on peut citer les algorithmes de compression de données et les algorithmes des moteurs de recherche. Dans un tel
contexte, il est essentiel que les élèves soient suffisamment familiarisés avec le type particulier de démarche que
nécessite l’algorithmique. L’enseignement des mathématiques constitue un point d’ancrage particulièrement favorable
pour cela. Le travail à réaliser prolonge l’apprentissage des élèves amorcé durant les années antérieures. Citons par
exemple la compréhension et la mise en oeuvre des algorithmes des opérations et en particulier de celui de la division
euclidienne dès l’enseignement primaire, d’algorithmes de recherche du PGCD étudiés en classe de troisième. Mais
dans le cadre de ce programme, construire un algorithme pour résoudre un problème, c’est non seulement trouver
une méthode de calcul d’une solution à ce problème, mais écrire cette méthode sous forme d’une suite d’instructions
élémentaires : affectations de variables (initialisation ou calcul), branchements (condition ou boucle itérée), affichages.
Il s’agit donc d’aller plus loin que dans les classes antérieures, afin de rendre les élèves capables de concevoir par
eux-mêmes quelques algorithmes simples et de comprendre ce que produisent certains algorithmes plus complexes.
Outre son intérêt culturel, cet apprentissage présente également un objectif pédagogique important, convergeant avec
l’objectif poursuivi par le travail à réaliser sur la logique. Il s’agit d’apprendre aux élèves à imaginer ou à suivre le
déroulement d’une suite d’instructions en fonction de conditions logiques. L’étude d’algorithmes doit être proposée
régulièrement, pour résoudre des problèmes simples, sans que l’algorithmique ne fasse l’objet d’un enseignement isolé.
Un enjeu important consiste à permettre aux élèves de faire la différence entre la résolution abstraite d’un problème
et la production d’une solution exacte ou approchée de ce problème.
II Références sur l’ e-toile
http ://eduscol.education.fr/D0015/LLPHPR01.htm : les programmes et les documents d’accompagnement.
http ://ldif.education.gouv.fr/wws/info/eduscol.maths-l : Une liste de discussion nationale sur l’enseignement des
maths en L avec un espace de mutualisation de documents.
http ://www.pise.info/algo/ : Un cours complet d’algorithmique
Académie de Lyon - Janvier 2007 - Nouveaux programmes de TL page 2/28
Algorithmique
III Tester la compréhension d’un algorithme
Des idées pour le travail des élèves sur la compréhension d’un algorithme :
1. Demander la sortie pour une valeur donnée de l’entrée.
2. Remplir sous forme d’un tableau les valeurs successives des variables (avec des valeurs particulières des entrées).
3. Des éléments de démonstration de validité de l’algorithme (cf exercice 47 ou 33 ).
4. Demander de compléter une instruction, le reste et le rôle du programme étant donnés (exemple : exercice 23).
5. Ajouter une instruction pour une modification mineure (exemple : exercices 4 , 45 )
6. Réexploiter les algorithmes de base dans diverses situations (cf les exercices utilisant les calculs de reste ou de
quotient).
7. Utiliser la connaissance du tableur en faisant traduire un programme calculatrice sur tableur, les petites adap-
tations d’une machine à l’autre obligent à une bonne analyse.
8. Toujours travailler sur des algorithmes en lien avec le reste du chapitre, pas d’algorithme “gratuit”.
IV Algorithmes liés au programme de la classe de première
Du fait de l’importance du travail d’arithmétique en terminale, les algorithmes plus directement liés à la classe de
première peuvent être revus, réutilisés en terminale.
IV.1 Écriture en base bd’un entier donné en base 10
Entrée Un entier naturel net un entier b > 1
Traitement Affecter à Ala valeur de n
Tant que A > 0
Afficher le reste de la division de Apar b
Affecter à Ala valeur du quotient de la division de Apar b
Sortie les « chiffres » affichés au fur et à mesure du traitement
sont ceux de l’écriture de nen base b
Sur calculatrices :
Ti Casio
Prompt N “N” : ? N
Prompt B “B” : ? B
NA N A
While A > 0While A > 0
int(A/B)QIntg(A÷B)Q
ABQR A B×QR
QA Q A
Disp R R
Pause
End WhileEnd
Sur tableur : Construire une feuille de calcul (seules les cases grisées sont à remplir) permettant d’effectuer un chan-
gement de base suivant le modèle suivant :
Académie de Lyon - Janvier 2007 - Nouveaux programmes de TL page 3/28
Algorithmique
IV.2 Liste des diviseurs positifs d’un entier
Exercice 1 (algorithme de recherche des diviseurs d’un entier).
1. Compléter la partie traitement de l’algorithme suivant :
Entrée aun entier naturel non nul
Traitement
Sortie les diviseurs de l’entier a
2. Écrire le programme pour votre calculatrice.
Exercice 2 (amélioration de l’algorithme de recherche des diviseurs).
Pour améliorer l’algorithme de recherche des diviseurs d’un naturel non nul a, on se propose d’afficher les diviseurs
par couple (c’est à dire : lorsqu’on affiche le diviseur u, on affiche aussi le diviseur vtel que uv =a).
Entrée un entier naturel a > 1
Traitement
Sortie les couples (u;v)d’entiers naturels tels que uv =aet u6v
Proposer un tel algorithme puis l’écrire dans le langage de votre calculatrice.
IV.3 Diviseurs communs et pgcd
Exercice 3.
Compléter la partie traitement de l’algorithme suivant :
Entrée aet bdeux entiers naturels non nuls
Traitement
Sortie les diviseurs communs à aet b
Exercice 4.
On considère l’algorithme suivant :
Entrée a,bdeux entiers naturels non nuls
Traitement Pour iprenant successivement les valeurs entières de 1 et a
si Ea
i=a
iet Eb
i=b
ialors afficher i
Sortie DaDb, faite au fur et à mesure du traitement
1. La sortie est-elle la même avec l’entrée (a;b) = (1000; 12) et avec l’entrée (a;b) = (12; 1000) ?
2. Le temps de calcul est-il le même dans les deux cas ?
3. Proposer une modification du programme pour que la boucle s’arrête toujours lorsque le plus petit (min {a;b})
entier est atteint.
Exercice 5.
En utilisant l’algorithme de recherche des diviseurs communs aux deux entiers aet b, compléter la partie traitement
de l’algorithme suivant :
Entrée aet bdeux entiers naturels non nuls
Traitement
Sortie pgcd (a;b)
Académie de Lyon - Janvier 2007 - Nouveaux programmes de TL page 4/28
Algorithmique
IV.4 Algorithme d’Euclide
Algorithme d’Euclide
Entrée aet bdeux entiers (non nuls)
Traitement affecter à rle reste de la division euclidienne de apar b
Tant que r > 0
affecter à ala valeur de b
affecter à bla valeur de r
affecter à rle reste dans la division de apar b
Sortie=pgcd(a;b)la dernière valeur non nulle de r, c’est à dire la
dernière valeur affectée à b
Sur calculatrices :
Ti Casio
Prompt A,B “A” : ? A
“B” : ? B
Aint(A/B)BR A Intg(A÷B)×BR
While R > 0While R > 0
BA B A
RB R B
Aint(A/B)BR A Intg(A÷B)×BR
End WhileEnd
Disp B B
Sur tableur : Construire une feuille de calcul (seules les cases grisées sont à remplir) permettant de calculer le PGCD
de deux entiers suivant le modèle suivant :
Exercice 6.
On applique l’algorithme d’Euclide à deux entiers aet b:
Étape dividende diviseur reste
1a b r1
2b r1r2
3r1r2r3
4r2r30
1. En utilisant le lemme d’Euclide et le descriptif de l’algorithme, expliquer pourquoi les diviseurs communs à aet
bsont exactement les diviseurs de leur pgcd.
2. Écrire un programme pour votre calculatrice qui utilise la propriété précédente pour déterminer les diviseurs
communs à deux entiers aet b.
Académie de Lyon - Janvier 2007 - Nouveaux programmes de TL page 5/28
1 / 28 100%