Rappels : variables, boucles, fonctions

icône de pdf
Signaler

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 :

PB_Bac_05285_Math1_TT_p009-032_C01_Algo_0

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 1+ 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).

PB_Bac_05285_Math1_TT_p009-032_C01_Algo_1

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.