Les Maths en terminale ES

L'essentiel pour le bac

Algorithmes

Ce cours vous donne les bases suffisantes pour comprendre les algorithmes informatiques proposés en terminale.
Il est conseillé de s'entraîner à refaire les exemples sur feuille.
Les exercices proposés vous permettront ensuite de vous perfectionner.

Algorithmes et programmes

Un algorithme informatique est une suite d'instructions permettant d'écrire un programme informatique.
En terminale, les algorithmes proposés sont écrits en langage courant. Par contre, l'écriture d'un programme se fait toujours dans un langage donné (par exemple, des variantes du BASIC pour les programmes sur calculatrice).

Dans tout ce qui suit, le programme dont il est question est celui qui serait associé à l'algorithme proposé.

Les variables: l'affectation

En informatique, on manipule des variables.
Il faut imaginer une variable comme un "tiroir", auquel on a donné un nom. Le nom est parfois réduit à sa plus simple expression, à savoir une lettre.
Le programme passe son temps à remplir ces "tiroirs", en général avec des nombres, ou des textes. On dit alors qu'on affecte des valeurs à des variables.

Exemple

Affecter à A la valeur 8

Ici, A est le nom d'une variable.
Quand le programme lit cette instruction, il remplit le "tiroir" A avec la valeur 8.

Cette instruction est équivalente à la suivante:

A prend la valeur 8

Les variables: comment les utiliser?

Le contenu des variables peut évidemment être manipulé par le programme.
Cette fois-ci, le programme va regarder la valeur que contient un "tiroir", et il va s'en servir!
Quand il utilise la valeur en question, le contenu de la variable initiale reste inchangé, sauf si le programme affecte une nouvelle valeur à cette variable!

Exemple

Affecter à A la valeur 8
Affecter à B la valeur A

Dans la seconde instruction, le programme manipule le contenu de la variable A sans le modifier.
Après cette seconde instruction, la variable A contient toujours la valeur 8. La variable B contient également la valeur 8.
Exemple

Affecter à A la valeur 8
Affecter à B la valeur 2
Affecter à A la valeur A+B

Après la première instruction, la variable A contient la valeur 8.
Après la seconde instruction, la variable B contient la valeur 2.
Dans la troisième instruction, le programme manipule le contenu de la variable A et le modifie.
Après la troisième instruction, la variable A contient la valeur 10. La variable B contient toujours la valeur 2.

L'affichage

Le programme peut afficher à l'écran le contenu des variables. Il peut aussi afficher de simples textes (mis entre guillemets), ou le résultat d'un calcul.

Exemple

Affecter à A la valeur 8
Afficher A

Dans la seconde instruction, le programme affiche à l'écran le contenu de la variable A, c'est à dire 8.
Exemple

Affecter à A la valeur 8
Afficher "le double de A vaut "
Afficher $2×A$

Dans la seconde instruction, le programme affiche à l'écran le texte: "le double de A vaut ".
Dans la troisième instruction, le programme affiche à l'écran le résultat de son opération, c'est à dire 16.
Finalement, le programme aura affiché: "le double de A vaut 16".

La lecture

Le programme peut demander à l'utilisateur de lui donner une valeur, qu'il affectera alors à une variable. Ce processus s'appelle la lecture.
On utilise ce mot car le programme lit ce que l'utilisateur écrit à l'aide de son clavier.

Exemple

Lire A
Afficher A

Quand le programme effectue la première instruction, il s'arrête, et attend que l'utilisateur écrive un nombre.
Supposons, par exemple, que l'utilisateur tape 37, le programme va alors affecter à A la valeur 37.
Dans la seconde instruction, le programme affiche à l'écran le contenu de la variable A. Dans notre exemple, il s'affichera donc 37.

Remarque: l'instruction Lire A est équivalente à l'instruction Saisir A
Exemple

Ecrire l'algorithme d'un programme qui demande la valeur de 2 nombres, puis qui affiche leur produit.

Solution...
Corrigé
Une possibilité:

Lire A
Lire B
Afficher A+B

Une autre possibilité:

Lire A
Lire B
Affecter à C la valeur A+B
Afficher C

Une troisième possibilité:

Lire A
Lire B
Affecter à A la valeur A+B
Afficher A

Attention, dans ce troisième algorithme, la valeur de A saisie à la première instruction est écrasée à la troisième. Elle ne pourrait donc pas être réutilisée ensuite!

Rappel: on peut remplacer l'instruction Lire A par l'instruction Saisir A
Réduire...

Les conditions

Le programme peut vérifier si une certaine condition est vérifiée. Dans ce cas, il effectuera alors certaines instructions.
Cela s'exprime en utilisant les mots: Si...Alors...Fin du Si.

Le programme peut vérifier si une certaine condition est vérifiée. Dans ce cas, il effectuera alors certaines instructions, sinon il effectuera d'autres instructions.
Cela s'exprime en utilisant les mots: Si...Alors...Sinon...Fin du Si.

Exemple

Lire A
Si A est pair
Alors Afficher "Oui! "
Afficher A
Afficher " est pair. "
Fin du Si
Afficher "Fin du programme"

Quand le programme effectue la première instruction, il s'arrête, et attend que l'utilisateur écrive un nombre.
Supposons, par exemple, que l'utilisateur tape 12. Le programme va alors affecter à A la valeur 12.
A la seconde instruction, il va tester si A est pair. Et comme c'est le cas, il va effectuer la troisième instruction, et afficher: "Oui! ".
Puis il continue, et affiche la valeur de A, c'est à dire 12. Et il affiche ensuite " est pair. ".
Il arrive alors à la Fin du Si.
Il passe alors à la dernière instruction du programme, et affiche "Fin du programme".
Finalement, dans cet exemple, il a affiché: "Oui! 12 est pair. Fin du programme"
Mais supposons, par exemple, que l'utilisateur tape 11. Dans ce cas, la condition n'étant pas vérifiée, les instructions entre le Alors et la Fin du Si ne sont pas effectuées, et le programme passe à la dernière instruction. Il s'affiche donc uniquement: "Fin du programme".
Exemple

Ecrire l'algorithme d'un programme qui demande la valeur d'un nombre, puis qui affiche "Pair", si le nombre est pair, et "Impair", si le nombre est impair.

Solution...
Corrigé

Lire A
Si A est pair
Alors Afficher "Pair"
Sinon Afficher "Impair"
Fin du Si

Réduire...

Les boucles

Le programme peut répéter un certain nombre de fois certaines instructions. Ces instructions constituent une boucle.

Boucle Pour
Si l'on connait le nombre de boucles à répéter, on utilise souvent les mots: Pour...allant de...à...Fin du Pour.

Boucle Tant que
Si l'on ne connait pas le nombre de boucles à répéter, on ne peut pas utiliser de boucle Pour. On utilise alors souvent les mots: Tant que...Fin du Tant que.

Il existe d'autres boucles, mais elles sont hors programme.

Exemple

Pour I allant de 1 à 5
Afficher I
Afficher " "
Fin du Pour
Afficher "Fin du programme"

Quand le programme effectue la première instruction, il affecte à I la valeur 1, et vérifie que I ne dépasse pas 5.
Il va ensuite effectuer les deux instructions situées dans la boucle, et il va les répéter tant que I ne dépasse pas 5.
Et à la fin de chaque boucle, il va automatiquement augmenter I de 1 (on dit incrémenter I de 1).
Ainsi, il va afficher 1 2 3 4 5 .
Vous noterez les espaces entre chaque nombre.
Dès qu'il aura affiché 5, puis l'espace " ", il arrivera à la fin de la cinquième boucle, et incrémentera automatiquement I de 1, qui vaudra alors 6.
Par conséquent, il ne commencera pas de sixième boucle. Il arrêtera ses boucles, et il passera à l'instruction suivante. Il affichera alors "Fin du programme".
Finalement, ce programme aura affiché: "1 2 3 4 5 Fin du programme".
Exemple

Ecrire l'algorithme d'un programme similaire au précédent, mais avec une boucle Tant que.

Solution...
Corrigé

Affecter à I la valeur 1
Tant que $I≤5$
Afficher I
Afficher " "
Affecter à I la valeur I+1
Fin du Tant que
Afficher "Fin du programme"

On remarquera que, dans les boucles Tant que, il n'y a pas d'initialisation implicite de I, ni d'incrémentation automatique de I.
Il faut absolument ajouter la première ligne: affecter à I la valeur 1,
ainsi que la cinquième: affecter à I la valeur I+1.
Cette cinquième ligne peut aussi s'écrire: augmenter I de 1.
Réduire...
Exemple

Ecrire l'algorithme d'un programme qui affiche la somme les entiers de 1 à 100.

Solution...
Corrigé
Comme le nombre de boucles est connu, il est préférable d'utiliser une boucle Pour

Affecter à S la valeur 0
Pour I allant de 1 à 100
Affecter à S la valeur S+I
Fin du Pour
Afficher S

Réduire...
Exemple

Ecrire l'algorithme d'un programme qui somme les entiers naturels à partir de 1 et qui s'arrête dès que la somme dépasse 1000. Le programme affiche alors le dernier entier sommé.

Solution...
Corrigé
Comme le nombre de boucles est inconnu, et qu'il est limité par une condition, on utilise une boucle Tant que

Affecter à S la valeur 0
Affecter à I la valeur 0
Tant que $S≤1000$
Affecter à I la valeur I+1
Affecter à S la valeur S+I
Fin du Tant que
Afficher I

Réduire...