Afficher en version réduite
Vider les textes à trous
Moon Arrows Sun
Arrows

L'algorithmique et la programmation

Variables et affectation

Variable informatique

Une variable est un nom auquel on associe une valeur. L'opération qui lui donne une valeur s'appelle une affectation , et se note en Python avec le signe \(=\).

n = 7
prix = 12.5
nom = "Ada"
majeur = True

Le signe \(=\) n'a donc pas le sens mathématique d'une égalité : il indique une action , celle de ranger une valeur dans une variable. L'instruction \(n = n + 1\) est parfaitement licite, et augmente \(n\) de \(1\).

Types de variables

Type
Nom en Python
Exemple
Entier
int
\(7\)
Flottant (nombre à virgule)
float
\(12{,}5\)
Chaîne de caractères
str
"Ada"
Booléen
bool
True ou False
Les quatre types de variables au programme

Un flottant n'est qu'une valeur approchée : deux calculs mathématiquement égaux peuvent donner deux flottants différents.

Instruction conditionnelle

Une instruction conditionnelle n'exécute un bloc que si une condition est vraie. Le bloc concerné est repéré par l'indentation , c'est-à-dire par le décalage vers la droite.

if n % 2 == 0:
    print("n est pair")
else:
    print("n est impair")

L'opérateur % donne le reste de la division euclidienne, et == teste l'égalité — à ne pas confondre avec l'affectation \(=\).

Boucles

Boucle bornée

Une boucle bornée répète un bloc un nombre de fois connu à l'avance . En Python, elle s'écrit avec for.

Le programme suivant calcule la somme des entiers de \(1\) à \(100\) :

somme = 0
for k in range(1, 101):
    somme = somme + k
print(somme)

range(1, 101) parcourt les entiers de \(1\) à \(100\) : la borne de droite est exclue.

Boucle non bornée

Une boucle non bornée répète un bloc tant qu'une condition reste vraie. Le nombre de tours n'est pas connu à l'avance. En Python, elle s'écrit avec while.

Le programme suivant cherche la première puissance de \(2\) qui dépasse \(1\,000\) :

p = 1
n = 0
while p <= 1000:
    p = p * 2
    n = n + 1
print(n, p)

Une boucle non bornée doit faire progresser la condition à chaque tour, faute de quoi le programme ne s'arrête jamais.

Fonctions

Fonction en programmation

Une fonction est un bloc d'instructions nommé, qui reçoit des paramètres et renvoie un résultat. On l'écrit une fois, on l'appelle autant de fois qu'on veut.

def est_multiple(a, b):
    return a % b == 0

print(est_multiple(35, 7))

L'instruction return renvoie une valeur à l'appelant et met fin à la fonction. Une fonction sans return ne renvoie rien : elle se contente d'agir, par exemple d'afficher.

Deux algorithmes du programme

Plus grand multiple inférieur à une borne

Pour deux entiers naturels \(a\) et \(b\), on cherche le plus grand multiple de \(a\) inférieur ou égal à \(b\) :

def plus_grand_multiple(a, b):
    m = 0
    while m + a <= b:
        m = m + a
    return m

Encadrement de \(\sqrt{2}\) par balayage

Le balayage consiste à avancer par pas réguliers jusqu'à dépasser la valeur cherchée. Ici le pas vaut \(10^{-n}\) :

def encadrer_racine_de_2(n):
    pas = 10 ** (-n)
    x = 1
    while x * x <= 2:
        x = x + pas
    return x - pas, x

La fonction renvoie deux nombres décimaux dont l'écart vaut \(10^{-n}\), et qui encadrent \(\sqrt{2}\). Avec \(n = 2\), elle donne \(1{,}41\) et \(1{,}42\).