Académique Documents
Professionnel Documents
Culture Documents
A/ ALGORITHMES
Même si les algorithmes sont souvent considérés comme étant du ressort exclusif des mathématiques et
de l'informatique, leur champ d'application est en réalité beaucoup plus vaste.
Le mot « algorithme » vient du nom de grand mathématicien persan Al Khawarizmi (vers l’an 820), qui
introduisit en Occident la numération décimale (rapportée d’Inde) et enseigna les règles élémentaires des
calculs s’y rapportant. La notion d’algorithme est donc historiquement liée aux manipulations numériques,
mais elle s’est progressivement développée pour porter sur des objets de plus en plus complexes, des
textes, des images, des formules logiques, des objets physiques, etc.
Un algorithme est une méthode générale pour résoudre un type de problèmes. Il est dit correct lorsque,
pour chaque instance du problème, il se termine en produisant la bonne sortie, c'est-à-dire qu'il résout le
problème posé.
Un algorithme, très simplement, c’est une méthode. Une façon systématique de procéder pour faire
quelque chose : trier des objets, situer des villes sur une carte, multiplier deux nombres, extraire une racine
carrée, chercher un mot dans le dictionnaire… Il se trouve que certaines actions mécaniques – peut-être
toutes ! – se prêtent bien à la décortication. On peut les décrire de manière générale, identifier des
procédures, des suites d’actions ou de manipulations précises à accomplir séquentiellement. C’est cela, un
algorithme. En tant que méthode, il répond donc à des questions du type : « comment faire ceci ? »,
« obtenir cela ? », « trouver telle information ? », « calculer tel nombre ? ». C’est un concept pratique, qui
traduit la notion intuitive de procédé systématique, applicable mécaniquement, sans réfléchir, en suivant
simplement un mode d’emploi précis.
Un exemple commun est par exemple la recherche d’un mot dans le dictionnaire. On regarde d’abord la
première lettre du mot, et on la compare avec celle des mots de la page où le dictionnaire est actuellement
ouvert. Suivant la position relative des deux lettres en question dans l’ordre alphabétique, on tourne alors
les pages en avant ou en arrière, jusqu’à ce que les premières lettres coïncident. Puis on reproduit la même
procédure avec la deuxième lettre du mot, puis la troisième, et ainsi de suite… Cet algorithme familier nous
indique que les objets manipulés ne sont pas nécessairement des nombres ou des objets mathématiques.
Ici, ce sont des mots, ou des lettres. De plus, on comprend que pour qu’un algorithme soit applicable, il faut
que les objets manipulés se présentent sous un format bien précis, qui assure à la fois l’efficacité et la
généralité du procédé. En l’occurrence, s’il s’agit d’un dictionnaire français, il faut que les mots recherchés
soient des mots français écrits en lettres latines, et surtout que, dans le dictionnaire, les mots soient bien
classés par ordre alphabétique !
Un autre exemple est celui de la recette de cuisine ou encore des instructions pour se rendre à une adresse
précise….
On mesure l’efficacité d'un algorithme notamment par sa durée de calcul, par sa consommation de
mémoire vive (en partant du principe que chaque instruction a un temps d'exécution constant), par la
précision des résultats obtenus (par exemple avec l'utilisation de méthodes probabilistes), etc. Les
ordinateurs sur lesquels s'exécutent ces algorithmes ne sont pas infiniment rapides car le temps de
machine reste une ressource limitée, malgré une augmentation constante des performances des
ordinateurs. Un algorithme sera donc dit performant s'il utilise avec parcimonie les ressources dont il
dispose, c'est-à-dire le temps CPU, la mémoire vive et (aspect objet de recherches récentes) la
consommation électrique. L’analyse de la complexité algorithmique permet de prédire l'évolution en
temps calcul nécessaire pour amener un algorithme à son terme, en fonction de la quantité de données à
traiter.
B/ PROGRAMMATION EN PYTHON
Python c’est quoi ?
Python est un langage de programmation gratuit et portable (pc, unix, mac), dont la première version est sortie en
1991. Créé en 1989 par Guido Van Rossum, il a voyagé du Macintosh de son créateur, qui travaillait à cette époque
au Centrum voor Wiskunde en Informatica aux Pays-Bas, jusqu'à se voir associer une organisation à but non lucratif
particulièrement dévouée, la Python Software Foundation, créée en 2001. Ce langage a été baptisé ainsi en
hommage à la troupe de comiques les « Monty Python ».
Il est simple (lisible, il gère ses ressources et est dynamiquement typé) orienté objet et extensible (utilisation de
bibliothèques).
Installation et lancement ?
On peut télécharger gratuitement depuis https://www.python.org/ (choisir une version récente 3….).
On peut ensuite le lancer en allant dans le Menu Démarrer > tous les programmes > Python 3… > IDLE (Python GUI)
On peut aussi utiliser une distribution complète comme PYZO (https://pyzo.org/start.html sur les ordinateurs du
lycée) ou Edupython (https://edupython.tuxfamily.org/ également présent au lycée) ou PyCharm ou encore Pygame
à votre convenance…
Parcourir un algorithme (dans n’importe quel langage) consiste à déterminer des valeurs successives prises par
chaque variable. Cela se présente facilement sous forme de tableau :
Dans votre notebook jupyter «Premiers_pas_Python_notebook.ipynb» , testez les opérateurs // puis % puis ** avec
des nombres, et commentez ci-dessous leur effet :
a=7
b=8
print(´Le produit vaut ´,a*b)
Ce programme affichera le texte «Le produit vaut 56»
Cette fonction possède des arguments optionnels (souvent proposés par les éditeurs) qui doivent être nommés pour
être utilisés :
sep : définit un séparateur dans l’affichage de plusieurs éléments (par défaut, il vaut un espace) ;
end : définit le caractère utilisé à la fin du texte affiché, très utile pour des affichages successifs (par défaut, il
vaut « /n » ce qui représente un retour à la ligne).
input() : elle permet une interaction avec l’utilisateur. L’appel de cette fonction provoque l’interruption du
programme ; l’utilisateur est invité à saisir quelque chose au clavier et le programme reprend au clic sur le
bouton ou appuie sur la touche « entrée » ; en principe, on stocke ce qui est saisi dans une variable.
Attention, pour la saisie d’un nombre, il faudra l’insérer dans la fonction int() ou float() car la fonction input() seule
permet de récupérer qu’une chaine de caractères.
Dans votre notebook jupyter «Premiers_pas_Python_notebook.ipynb» , tester ce qui vient d’être expliqué et
effectuer l’exercice ci-dessous.
Réponse 1 : « 8 10 »
Réponse 2 : « réponse : 4 »
Réponse 3 : « tatata a e »
Réponse 4 : « 18 »
Le symbole « == » traduit une comparaison, c’est un booléen : si ce qui est à droite est égal à ce qui est à gauche,
alors l’expression entière prendra la valeur True, sinon elle prendra la valeur False.
def prixttc(prixht, tva) :
‘’ ‘’ ‘’ fonction qui calcule le prix ttc à partir d’un prix ht et de la tva pour
entree : prixht, tva (float)
sortie : ttc (float)
pour appeler ce docstring on utilise prixttc.__doc__
‘’ ‘’ ‘’
assert tva >= 0
assert prixht >= 0
ttc = prixht
24 Erreur “a” is not defined 25 40 55 70 85 100