### Notion d'algorithme

#### Définitions

★ Un algorithme, c’est une façon de décrire dans les moindres détails comment procéder pour faire quelque chose.
Gérard Berry , professeur au Collège de France.
★ Un algorithme est une suite finie d'instructions non ambiguës permettant de résoudre une classe de problèmes.
Définition vulgarisée pour le lycée.

#### Histoire

Les premiers algorithmes sont apparus il y a environ quatre millénaires. Il s'agissait de procédures permettant de systématiser la résolution des problèmes d'héritages ou de code juridique associant un châtiment aux crimes et délits :
★ Si une personne a imputé des sortilèges à une autre mais ne l'a pas confondu, celui à qui des sortilèges ont été imputés plongera dans le Dieu-fleuve.
★ Si le Dieu-fleuve s'en empare, son accusateur prendra pour lui sa maison...
(Extrait du code d'Hammourabi, musée du Louvre.)
Les algorithmes mathématiques apparaissent plus tard sous forme de tablette d'argile.

#### Ecritures d'un algorithme

On peut écrire un algorithme en pseudo-code, en langage naturel ou avec un algorigramme :

#### Exercice

★ Déterminer l'affichage en sortie de
l'algorithme écrit ci-contre.
★ A quoi correspond la valeur de s obtenue ?

### Notion de programme

#### Définition

Un programme informatique est la traduction d'un algorithme dans un langage interprétable par l'ordinateur.
Python, Java-Script, C sont des langages de programmation.

#### Exemple

Voici la traduction en langage Python d'un algorithme en pseudo-code :

n = 0 c = 1000 while c <= 1200: n = n + 1 c = c * 1.02 print(n,c)

#### Présentation d'un programme

Editeur :

from random import randint # importation de randint def somme(): # définition d'une fonction somme de deux dés d1 = randint(1,6) d2 = randint(1,6) return d1 + d2 def freq(n): compteur = 0 # la variable compteur reçoit la valeur 0 for i in range(n): # n itérations de l'expérience somme() # Appel de la fonction somme() if somme() == 7: # test conditionnel d'égalité compteur = compteur + 1 # incrémentation du compteur return compteur/n # freq(n) renvoie la fréquence

Console :

#### The Zen of Python

Saisir import this dans la console ci-dessus.
Conventions d'écriture d'un programme Python : Norme PEP-8

#### Point de vigilance

La mise en place d’activités relevant de l’algorithmique et la
programmation ne doit pas faire perdre de vue leur objectif de formation mathématique.
C’est pourquoi aucune technicité au niveau de la syntaxe du langage Python n’est attendue.
La compréhension est privilégiée par rapport à l’optimisation du code des programmes.
Document ressource « Algorithmique et programmation » 2019