Les notions de variables, de boucles, de fonctions ont été étudiées en classe de seconde. Les algorithmes dans lesquels elles interviennent seront écrits en langage naturel (ou en « pseudocode ») ou traduits en langage Python.
I. Affectation de variables
Une variable est un emplacement (une « boîte ») dans lequel on peut stocker une « valeur » (nombre, texte…), repéré par une « étiquette » (son nom) qui permet d’avoir accès à son contenu. Ce contenu peut varier au cours de l’exécution d’un programme.
L’affectation est notée « ← » dans un algorithme (pseudocode) et « = » en Python. Exemples :
Algorithme |
Code Python |
Sens |
A ← 12 |
A = 12 |
Affecte à A la valeur 12, la valeur précédemment contenue dans A est « écrasée ». |
B ← A |
B = A |
Affecte à B la valeur contenue dans A, ne modifie pas A. |
A ← A + 3 |
A = A + 3 |
Ajoute 3 à la valeur numérique contenue dans A. Si A valait 12, A vaut maintenant 15. |
II. Boucles et fonctions
Boucle bornée (avec nombre d’itérations connu)
L’instruction Pour… (for… en langage Python) permet de répéter l’exécution d’un bloc d’instructions un nombre connu de fois.
Boucle non bornée (avec arrêt conditionnel)
L’instruction Tant Que… (while… en langage Python) permet de répéter l’exécution d’un bloc d’instructions tant qu’une certaine condition est réalisée : l’exécution s’arrête dès que la condition n’est plus remplie.
Fonctions
• Si, dans un programme, on doit exécuter plusieurs fois la même série d’instructions, on peut enregistrer ces instructions dans une fonction, qu’on appelle quand on en a besoin.
• La fonction peut prendre des arguments (ou paramètres) et renvoyer une valeur (en Python, l’instruction correspondante est return « valeur »).
• Certaines fonctions prédéfinies en Python peuvent être utilisées en chargeant des « bibliothèques » en début de programme (fonctions aléatoires…).
Méthode
1) Utiliser une boucle
Une société propose, sur abonnement, la livraison hebdomadaire d’un panier de fruits et légumes. Initialement, le nombre d’abonnés est 65. Les responsables font l’hypothèse que d’un mois à l’autre 20 % des abonnements sont résiliés et 18 abonnements supplémentaires sont souscrits.
Écrire un programme déterminant et affichant le nombre de mois au bout duquel le nombre d’abonnés sera pour la première fois supérieur ou égal à 85.
Conseil
Expliciter la relation entre les nombres d’abonnés de deux mois successifs.
Le programme comportera une boucle qui calcule le nombre d’abonnés tant qu’il est inférieur à 85, et un « compteur » du nombre d’exécutions.
Solution
Si on note un le nombre d’abonnés au bout de n mois et un+1 le nombre d’abonnés au bout de n + 1 mois, alors un+1 = 0,8un + 18. En Python :
On trouve N = 8. On vérifie que u7 < 85 et u8 > 85.
2) Définir et utiliser une fonction
Écrire un programme Python qui définit une fonction « somcar » renvoyant, pour tout entier naturel n non nul, la somme 12 + 22 + … + n2.
Conseil
La somme cherchée est « stockée » dans une variable s qui doit être initialisée. À chaque étape, on ajoute un terme à la valeur précédente de s.
Solution
Conseil
En Python, la fin d’une boucle est marquée par la fin de l’indentation (du décalage).
L’instruction « for k in range(1, n+1) » signifie « pour k variant de 1 (compris) à n + 1 (exclu) », c’est-à-dire de 1 à n.