Vous êtes sur la page 1sur 25

 Le mot « algorithme » vient du nom de

l’auteur persan Al-Khuwarizmi (né vers 780 -


mort vers 850)
 Une définition: « un algorithme est une suite
finie de règles à appliquer dans un ordre déter-
miné à un nombre fini de données pour arriver,
en un nombre fini d’étapes, à un certain
résultat et cela indépendamment des
données.»
On considère le programme de calcul ci-dessous.
 Choisir un nombre de départ
 Ajouter 1
 Calculer le carré du résultat obtenu
 Lui soustraire le carré du nombre de départ
 Écrire le résultat final.

1) a) Vérifier que lorsque le nombre de départ est 1, on obtient 3 au


résultat final.
b) Lorsque le nombre de départ est 2, quel résultat final obtient-on?
c) Le nombre de départ étant x, exprimer le résultat final en fonction de
x.
2) On considère l’expression P = (x +1)2 − x2. Développer puis réduire
l’expression P.
3) Quel nombre de départ doit-on choisir pour obtenir un résultat final
égal à 15 ?
Ecrire l’algorithme associé à ce programme de calcul.
Dans un lycée, un code d’accès à la photocopieuse est attribué à chaque professeur. Ce code est un
nombre à quatre chiffres choisis dans la liste {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, chaque chiffre pouvant être
répété à l’intérieur d’un même code.
Ce code permet aussi de définir un identifiant pour l’accès au réseau informatique. L’identifiant est
constitué du code à quatre chiffres suivi d’une clé calculée à l’aide de l’algorithme suivant :

Entrée : N est le code à quatre chiffres.


Initialisation : Affecter à P la valeur de N ;
Affecter à S la valeur 0 ;
Affecter à K la valeur 1.
Traitement : Tant que K ≤ 4 :
Affecter à U le chiffre des unités de P ;
Affecter à K la valeur K + 1 ;
Affecter à S la valeur S + K  U ;
Affecter à P la valeur (P – U)/10 ;
Fin Tant que
Affecter à R le reste dans la division euclidienne de S par 7 ;
Affecter à C la valeur 7 – R.
Sortie « la clé » : Afficher C.

 Faire fonctionner l’algorithme avec N = 2 282 et vérifier que la clé qui lui correspond est 3.
 Un professeur s’identifie sur le réseau informatique en entrant le code 4 732 suivi de la clé 7.
L’accès au réseau lui est refusé. Le professeur est sûr des trois derniers chiffres du code et de la
clé, l’erreur porte sur le premier chiffre du code. Quel est ce premier chiffre ?
 Algorithmes à l’école primaire ?

 Algorithmes au collège ?

..\Algos Collège.doc
 Introduction de l’algorithmique dans les
programmes de lycée en Seconde durant
l’année scolaire 2009 – 2010.

 Evaluée au Baccalauréat pour la première fois


en 2012.
On considère l’algorithme suivant, où Ent   désigne la partie entière de .
A A
N N

A et N sont des entiers naturels


Saisir A
N prend la valeur 1
Tant que N  A
Si - Ent   = 0 alors Afficher N et
A A A
N N N
Fin si
N prend la valeur N + 1
Fin Tant que.
Quels résultats affiche cet algorithme pour A = 12 ?
Que donne cet algorithme dans le cas général ?

(Partie d’un exercice)


 Ce programme est un additif au programme
de la classe de Seconde.

 Il est repris tel quel dans les programmes des


classes suivantes (1ère ES, 1ère S, 1ère STMG,
1ère STI2D, Terminale ES, Terminale S,
Terminale STMG, Terminale STI2D).
 La démarche algorithmique est, depuis les origines,
une composante essentielle de l’activité
mathématique.
 Au collège, les élèves ont rencontré des algorithmes
(algorithmes opératoires, algorithme des différences,
algorithme d’Euclide, algorithmes de construction en
géométrie).
 Ce qui est proposé dans le programme est une
formalisation en langage naturel propre à donner lieu
à traduction sur une calculatrice ou à l’aide d’un
logiciel. Il s’agit de familiariser les élèves avec les
grands principes d’organisation d’un algorithme :
gestion des entrées-sorties, affectation d’une valeur
et mise en forme d’un calcul.
 Dans le cadre de cette activité algorithmique, les élèves sont
entraînés :
- à décrire certains algorithmes en langage naturel ou dans un
langage symbolique ;
- à en réaliser quelques uns à l’aide d’un tableur ou d’un petit
programme réalisé sur une calculatrice ou avec un logiciel adapté ;
- à interpréter des algorithmes plus complexes.
 Aucun langage, aucun logiciel n’est imposé.
 L’algorithmique a une place naturelle dans tous les champs des
mathématiques et les problèmes posés doivent être en relation
avec les autres parties du programme (fonctions, géométrie,
statistiques et probabilité, logique) mais aussi avec les autres
disciplines ou la vie courante.
 À l’occasion de l’écriture d’algorithmes et de petits programmes, il
convient de donner aux élèves de bonnes habitudes de rigueur et
de les entraîner aux pratiques systématiques de vérification et de
contrôle.
Instructions élémentaires (affectation, calcul, entrée, sortie)

Les élèves, dans le cadre d’une résolution de problèmes, doivent être capables :
- d’écrire une formule permettant un calcul ;
- d’écrire un programme calculant et donnant la valeur d’une fonction ;

ainsi que les instructions d’entrées et sorties nécessaires au traitement.

Boucle et itérateur, instruction conditionnelle

Les élèves, dans le cadre d’une résolution de problèmes, doivent être capables :
- de programmer un calcul itératif, le nombre d’itérations étant donné ;
- de programmer une instruction conditionnelle, un calcul itératif, avec une fin de boucle conditionnelle.
 L’enseignement de l’algorithmique ne relève pas,
à ce niveau, de cours spécifiques ; au contraire,
l’introduction de chaque nouvel élément
(variable, boucle, itération, etc.) devrait
apparaître lors de la résolution de problèmes
pour lesquels les démarches habituelles sont
malcommodes ou peu performantes : par
exemple dans le cas de répétition d’une tâche,
ou dans le cas d’un traitement trop long pour
être envisagé « à la main ».
 L’algorithmique a une place naturelle dans tous
les champs des mathématiques et les
problèmes posés doivent être en relation avec
les autres parties du programme (fonctions,
géométrie, statistiques et probabilité, logique)
mais aussi avec les autres disciplines ou la vie
courante.
– Comprendre et analyser un algorithme préexistant ;
– Modifier un algorithme pour obtenir un résultat particulier ;
– Analyser la situation : identifier les données d’entrée, de
sortie, le traitement...;
– Mettre au point une solution algorithmique : comment
écrire un algorithme en « langage courant » en respectant un
code, identifier les boucles, les tests, des opérations
d’écriture, d’affichage... ;
– Valider la solution algorithmique par des traces d’exécution
et des jeux d’essais simples ;
– Adapter l’algorithme aux contraintes du langage de
programmation : identifier si nécessaire la nature des
variables... ;
– Valider un programme simple.
 L’évaluation des pratiques en Algorithmique peut
s’organiser autour d’une évaluation par compétences qui
ne conduira pas nécessairement à une note spécifique
chiffrée.
 Les activités menées dans le cadre de la pratique de
l’algorithmique peuvent servir de support d’évaluation des
compétences liées, d’une part, aux trois modalités
fondamentales de l’activité en algorithmique qui sont :
 analyser le fonctionnement ou le but d’un algorithme
existant ;
 modifier un algorithme existant pour obtenir un résultat
précis ;
 créer un algorithme en réponse à une problème donné.
Les trois étapes:

 La préparation du traitement
 Le traitement
 La sortie des résultats
Un exemple progressif
Un joueur lance deux dés et fait la somme des
points obtenus. S’il obtient 8, il gagne 10€,
sinon il perd 1€.
Variante : le joueur rejoue 10 fois (et cumule
ses gains et pertes).
Autre variante : le joueur rejoue jusqu’à avoir
un gain cumulé de 5€ .
 L’affectation de données dans des variables
 La lecture (ou entrée) des données
 L’écriture (ou sortie) des données
 Les séquences d’instructions
 Instructions (ou structures) de contrôle
 La structure « alternative »

 Les structures répétitives


 Si condition alors
Traitement 1
Sinon
Traitement 2
Fin Si

 Si condition alors
Traitement 1
Fin Si
 Programmation d’un calcul itératif, avec un
nombre d’itérations donné:

C’est la boucle « Pour I variant de … à … »

 Pour I variant de I0 à N
│ Traitement
Fin Pour
 Programmation d’un calcul itératif avec fin
de boucle conditionnelle
Tant que {condition C }
│Faire {instructions}
Fin Tant que
OU
Répète
│ Traitement
Jusqu’à {condition C }
Variables
a, b sont des entiers naturels
gain est un entier
Initialisation
a prend une valeur aléatoire entière entre 1 et 6
b prend une valeur aléatoire entière entre 1 et 6
Traitement
Si a + b = 8
│Alors gain = 10
│Sinon gain = -1
Fin Si
Sortie
Afficher gain
Variables
a, b sont des entiers naturels
gain est un entier
i est un compteur de boucle
Initialisation
a prend une valeur aléatoire entière entre 1 et 6
b prend une valeur aléatoire entière entre 1 et 6
gain prend la valeur 0
Traitement
Pour i allant de 1 à 10
Si a + b = 8
│Alors gain = gain + 10
│Sinon gain = gain -1
Fin Si
Fin Pour
Sortie
Afficher gain
Variables
a, b, coup sont des entiers naturels
gain est un entier
Initialisation
a prend une valeur aléatoire entière entre 1 et 6
b prend une valeur aléatoire entière entre 1 et 6
gain prend la valeur 0
coup prend la valeur 0
Traitement
Tant que gain  5
coup prend la valeur coup + 1
Si a + b = 8
│Alors gain = gain + 10
│Sinon gain = gain -1
Fin Si
Fin Tant que
Sortie
Afficher coup