Les variables en algorithmique- Première- Mathématiques - Maxicours

Les variables en algorithmique

Objectifs
  • Identifier et utiliser les différents types de variables.
  • Affecter un nombre aléatoire à une variable.
  • Comprendre et utiliser la notion de compteur.
  • Comprendre et utiliser la notion d’accumulateur.
Points clés
  • Une variable est une « case » de la mémoire de l’ordinateur. On peut lui affecter différentes valeurs : des nombres, des lettres, des mots, des phrases…
    En langage Python, l’affectation d’une variable s’effectue avec le signe =.
  • Parmi les variables numériques, il y a :
    • les variables de type entier : elles stockent des nombres entiers écrits sans virgule ;
    • les variables de type flottant : elles stockent des nombres écrits avec une virgule.
  • Parmi les variables non numériques, il y a :
    • les variables de type chaine de caractères : elles contiennent des symboles ou des lettres. On les écrit entre guillemets "" ;
    • les variables de type booléen : elles contiennent seulement deux valeurs : True ou False (vrai ou faux). Elles permettent de tester des assertions.
  • Dans un programme, on peut être amené à faire une itération, c’est-à-dire une boucle qui répète plusieurs fois le même calcul. Il est alors fréquent d’utiliser une variable comme compteur ou comme accumulateur.
    Pour cela, si à chaque tour de boucle on doit ajouter 1 à une variable k, on écrit : k←k+1.
  • Soient a et b deux nombres entiers (ou deux variables de type entier) : la fonction randint(a,b) renvoie un nombre entier aléatoire compris entre a et b (inclus).
    La fonction randint() est très utile lorsque l’on veut simuler une expérience aléatoire, comme lancer une pièce équilibrée et noter le résultat obtenu (« pile » ou « face »).
  • La fonction random() retourne un nombre réel aléatoire compris entre 0 et 1 (inclus). Elle est très utile lorsque l’on veut simuler une épreuve de Bernoulli.
Pour bien comprendre
  • Notions d’algorithme vues au collège avec Scratch
  • Schéma de Bernoulli
1. Qu’est-ce qu’une variable ?
a. Définition
Une variable est une « case » de la mémoire de l’ordinateur. On peut lui affecter différentes valeurs : des nombres, des lettres, des mots, des phrases…
En langage Python, l’affectation d’une variable s’effectue avec le signe =.
Remarques
  • Dans la suite de la leçon, on distingue le langage naturel qui permet à tous les programmeurs de comprendre et le langage Python, spécifique au langage de programmation Python.
  • Dans le langage Python, A et a ne sont pas les mêmes variables. La majuscule compte.
Exemples
  • À la variable n, on affecte la valeur 12.
  • À la variable Couleur, on affecte la valeur "Bleu".
Langage naturel Langage Python
n←12
Couleur←"Bleu"
n=12
Couleur="Bleu"
b. Variables numériques et non numériques

Il existe plusieurs types de variables, dont les variables numériques et les variables non numériques.

Parmi les variables numériques, il y a :
  • les variables de type entier (integer, en anglais) : elles stockent des nombres entiers écrits sans virgule ;
  • les variables de type flottant (floating-point number, en anglais) : elles stockent des nombres écrits avec une virgule.
Exemples
Variables de type entier : 3 ; –10 ; –150…
Variables de type flottant : 3,12 ; –10,45 ; –150,00…
Remarque
Les variables de type entier s’écrivent toujours sans virgule.
Mathématiquement, 3,0 est un nombre entier mais pour l’ordinateur, comme il contient une virgule c’est une variable de type flottant.
Parmi les variables non numériques, il y a :
  • les variables de type chaine de caractères (character string, en anglais) : elles contiennent des symboles ou des lettres. On les écrit entre guillemets "" ;
  • les variables de type booléen (boolean data, en anglais) : elles contiennent seulement deux valeurs : True ou False (vrai ou faux). Elles permettent de tester des assertions.
Remarque
Voici différents tests qui engendrent des variables de type booléen :          
Assertion Signification
x==y x et y sont égaux
x!=y x et y sont différents
x<y x est strictement inférieur à y
x>y x est strictement supérieur à y
x<=y x est inférieur ou égal à y
x>=y x est supérieur ou égal à y
Exemples
Variables de type chaine de caractères : “Bonjour”, “12”, “y”….
Variables de type booléen :
L1   b=2
L2   c=3
L3   a=b==c
L4   print(a)
L5   False

À la ligne 3, on affecte à la variable a une assertion : « b et c sont égaux ».
On demande d’afficher la valeur prise par a à la ligne 4.
À la ligne 5, a affiche False car 2 ≠ 3.
c. Compteur et accumulateur
Dans un programme, on peut être amené à faire une itération, c’est-à-dire une boucle qui répète plusieurs fois le même calcul. Il est alors fréquent d’utiliser une variable comme compteur ou comme accumulateur.
Pour cela, si à chaque tour de boucle on doit ajouter 1 à une variable k, on écrit : k←k+1.
Exemple
On dépose 2000 € dans une banque, à un taux d’intérêt de 1 %.
On calcule au bout de combien d’années on dépassera 2100 €.
L1   capital=2000
L2  
n=0
L3  
while capital<2100:
L4      i=i+1
L5     
capital=capital*1.01
L6  
print(i)

À la ligne 4, on utilise la variable i comme compteur dans la boucle. En effet, chaque tour dans la boucle correspond à une année, et i « compte » donc le nombre d’années écoulées.
Pour cela, on écrit i=i+1, c’est-à-dire que la nouvelle valeur de i va être égale à l’ancienne + 1.
À la ligne 5, la variable capital est quant à elle est utilisée en tant qu’accumulateur. Elle ne compte pas, elle stocke la valeur du capital de l’année précédente pour calculer celle de l’année en cours.
2. Affecter un nombre entier aléatoire à une variable
a. Fonction randint()
Soient a et b deux nombres entiers (ou deux variables de type entier) : la fonction randint(a,b) renvoie un nombre entier aléatoire compris entre a et b (inclus).
Remarque
La fonction randint() provient de la librairie random, donc :
  • avant de l’utiliser, il faut importer la librairie random avec la commande import random (en informatique, une librairie est une sorte de répertoire avec des fonctions) ;
  • on voit souvent écrit random.randint, cela indique à l’ordinateur d’utiliser la fonction randint de la librairie random. Il est possible d’écrire directement randint().
Exemple
L1   import random
L2   a=random.randint(0,10)
L3   print(a)
L4   3

À la ligne 2, on affecte à la variable a un nombre entier aléatoire (tiré au hasard) entre 1 et 10.
À la ligne 4, a prend la valeur 3.
b. Simuler un tirage aléatoire

La fonction randint() est très utile lorsque l’on veut simuler une expérience aléatoire, comme lancer une pièce équilibrée et noter le résultat obtenu (« pile » ou « face »).

Exemple 1
On considère l’expérience aléatoire qui consiste à lancer une pièce équilibrée et à noter le résultat obtenu (« pile » ou « face »). Pour simuler informatiquement cette expérience, on fait correspondre à « pile » et 1 à « face ».

On simule 20 lancers d’une pièce équilibrée en tirant aléatoirement un nombre entier compris entre 0 et 1 grâce à une boucle for.
On appelle k la variable qui « compte » le nombre de « face ».
L1   import random
L2   n=20
L3   k=0
L4   for i in range(n):
L5      a=random.randint(0,1)
L6      if a==1:
L7         k=k+1
L8   print(k)

À chaque tirage, on regarde si la variable a qui représente le côté de la pièce est égale à 1. Si c’est le cas, on ajoute 1 à la variable k grâce à la formule de la ligne 7. Cela signifie que la variable k prend son ancienne valeur à laquelle on ajoute 1.
Exemple 2
On simule cette fois 20 lancers d’un dé à 6 faces.
La variable k compte le nombre de fois où l’on obtient la face 6.
L1   import random
L2   n=20
L3   k=0
L4   for i in range(n):
L5     a=random.randint(1,6)
L6     if a==6:
L7         k=k+1
L8   print(k)

À chaque tirage, on regarde si la variable a qui représente la face du dé est égale à 6. Si c’est le cas, on ajoute 1 à la variable k qui compte le nombre de 6.
3. Affecter un nombre entier aléatoire à une variable
a. Fonction random()
La fonction random() retourne un nombre réel aléatoire compris entre 0 et 1 (inclus).
Remarque
À la différence de la fonction randint(), qui retournerait 0 ou 1, la fonction random() retourne n’importe quel nombre réel compris entre 0 et 1 : par exemple, 0,502.
Exemple
L1   import random
L2   a=random.random()
L3   print(a)
L4   0,2473961627962299
À la ligne 2, on affecte à la variable a un nombre aléatoire réel compris entre 0 et 1.
À la ligne 4, on obtient : 0,2473961627962299.
b. Simuler une épreuve de Bernoulli

La fonction random() est très utile lorsque l’on veut simuler une épreuve de Bernoulli.

Rappel
Une épreuve de Bernoulli de paramètre p est une expérience aléatoire qui admet deux issues contraires :
  • un succès S de probabilité p ;
  • un échec S de probabilité 1 – p.
Exemple
On simule le lancer d’un dé à 4 faces.
On considère comme un succès « obtenir un 2 ».
Obtenir n’importe quelle autre face est considéré comme un échec.
p est la probabilité de succès : p = = 0,25.
L1   import random
L2   a=random.random()
L3   if a <=0.25:
L4      print("Nous avons obtenu un 2")
L5   else:
L6      print("Nous n'avons pas obtenu de 2")

Aux lignes 3 et 4, dans la boucle if, on teste si a 0,25. Dans ce cas, on considère que l’expérience est un succès.
Dans le cas contraire, aux lignes 5 et 6, on utilise else qui veut dire « sinon ». L’expérience est alors un échec.
En effet, 0,25 est la probabilité d’obtenir un succès, donc on considère que tous les nombres aléatoires compris entre 0 et 0,25 sont un succès et que tous ceux compris entre 0,25 et 1 sont un échec.

Vous avez déjà mis une note à ce cours.

Découvrez les autres cours offerts par Maxicours !

Découvrez Maxicours

Comment as-tu trouvé ce cours ?

Évalue ce cours !

 

Des profs en ligne

quote blanc icon

Découvrez Maxicours

Exerce toi en t’abonnant

Découvrir le reste du programme

Des profs en ligne

  • 6j/7 de 17 h à 20 h
  • Par chat, audio, vidéo
  • Sur les matières principales

Des ressources riches

  • Fiches, vidéos de cours
  • Exercices & corrigés
  • Modules de révisions Bac et Brevet

Des outils ludiques

  • Coach virtuel
  • Quiz interactifs
  • Planning de révision

Des tableaux de bord

  • Suivi de la progression
  • Score d’assiduité
  • Un compte Parent