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.
Si vous maîtrisez ce cours, il faut alors savoir l'appliquer en écrivant des programmes, en particulier dans le langage PYTHON expliqué dans ce cours de PYTHON en Première Spécialité Maths.
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 en PYTHON).
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
Cette instruction est aussi équivalente à la suivante:A ← 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
A ← 8
B ← A
Après cette seconde instruction, la variable A contient toujours la valeur 8. La variable B contient également la valeur 8.
Exemple
A ← 8
B ← 2
A ← A+B
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
A ← 8
Afficher A
Exemple
A ← 8
Afficher "le double de A vaut "
Afficher $2×A$
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
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
Lire A
Lire B
C ← A+B
Afficher C
Lire A
Lire B
A ← A+B
Afficher A
Rappel: on peut remplacer l'instruction Lire A par l'instruction Saisir A
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"
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
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"
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é
I ← 1
Tant que $I≤5$
Afficher I
Afficher " "
I ← I+1
Fin du Tant que
Afficher "Fin du programme"
Il faut absolument ajouter la première ligne: I ← 1,
ainsi que la cinquième: I ← I+1.
Cette cinquième ligne peut aussi s'écrire: augmenter I de 1, ou affecter à I la valeur I+1.
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
S ← S+I
Fin du Pour
Afficher S
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
S ← 0
I ← 0
Tant que $S≤1000$
I ← I+1
S ← S+I
Fin du Tant que
Afficher I