Chapitre 14
U.A.10: EXECUTION DES ALGORITHMES (partie 1/2)
Lecture : 7 minQuiz de 10 questions
## Généralités sur les algorithmes
### Introduction
Bienvenue dans cette leçon sur les algorithmes ! Que vous le sachiez ou non, les algorithmes sont partout autour de nous, de la recette de cuisine que vous suivez aux applications sur votre smartphone. En informatique, ils sont le cœur de tout programme. Comprendre ce qu'est un algorithme et comment il fonctionne est une étape fondamentale pour quiconque souhaite explorer le monde de la programmation et de la logique informatique. Dans cette leçon, nous allons découvrir leur définition, leurs caractéristiques essentielles et la manière dont ils nous aident à résoudre des problèmes de manière structurée.
### Concepts clés
#### Qu'est-ce qu'un algorithme ?
Un algorithme est un ensemble **fini** et **ordonné** d'**instructions** précises et non ambiguës permettant de résoudre un problème ou d'accomplir une tâche. C'est un peu comme une recette de cuisine : elle vous donne des étapes claires à suivre pour obtenir un plat spécifique. En informatique, l'algorithme est la description des étapes à suivre avant de les traduire dans un langage de programmation que l'ordinateur peut comprendre.
#### Caractéristiques essentielles d'un algorithme
Un bon algorithme doit respecter plusieurs critères fondamentaux :
* **Précision :** Chaque instruction doit être claire et sans ambiguïté. Il ne doit pas y avoir de place à l'interprétation. Par exemple, au lieu de "ajouter un peu de sel", l'instruction pourrait être "ajouter 2 grammes de sel".
* **Ordre :** Les instructions doivent être exécutées dans un ordre spécifique. Changer l'ordre peut changer le résultat, ou empêcher l'algorithme de fonctionner correctement.
* **Finitude :** L'algorithme doit se terminer après un nombre fini d'étapes. Il ne doit pas tourner indéfiniment.
* **Entrée (Input) :** L'algorithme prend des données en entrée pour commencer son travail. Ces données sont les "ingrédients" de notre recette.
* **Sortie (Output) :** L'algorithme produit un résultat ou une information en sortie une fois qu'il a terminé. C'est le "plat" de notre recette.
* **Déterminisme :** Pour les mêmes données d'entrée, un algorithme doit toujours produire le même résultat de sortie. Il n'y a pas de "hasard" dans l'exécution d'un algorithme.
#### Le fonctionnement général d'un algorithme
1. **Identifier le problème :** Quelle tâche doit être accomplie ou quel problème doit être résolu ?
2. **Concevoir les étapes :** Décomposer la tâche en une série d'étapes logiques et élémentaires.
3. **Représenter l'algorithme :** Utiliser des outils comme le pseudo-code ou des organigrammes pour décrire ces étapes de manière compréhensible pour un humain.
4. **Implémenter :** Traduire l'algorithme dans un langage de programmation.
5. **Exécuter et Tester :** Lancer le programme et vérifier qu'il fonctionne correctement.
#### Les algorithmes dans la vie quotidienne
Les algorithmes sont partout :
* **Recettes de cuisine :** Une série d'étapes pour préparer un plat.
* **Instructions de montage :** Pour assembler un meuble, par exemple.
* **Plans de voyage (GPS) :** Trouver le chemin le plus court ou le plus rapide.
* **Moteurs de recherche :** Ordonner les résultats de recherche pertinents.
* **Réseaux sociaux :** Suggérer des amis ou des contenus.
### Vocabulaire
* **Algorithme :** Ensemble d'instructions précises, ordonnées et finies pour résoudre un problème.
* **Instruction :** Une étape élémentaire et spécifique à exécuter dans un algorithme.
* **Séquence :** L'ordre chronologique des instructions dans un algorithme.
* **Entrée (Input) :** Les données fournies à l'algorithme pour son traitement.
* **Sortie (Output) :** Le résultat ou l'information produite par l'algorithme.
* **Déterminisme :** Propriété garantissant qu'un algorithme produira toujours la même sortie pour les mêmes entrées.
* **Pseudo-code :** Langage semi-formel, proche du langage naturel, utilisé pour décrire un algorithme avant sa traduction en langage de programmation.
### Exemples
#### Exemple 1 : L'algorithme pour faire une tasse de café
* **Problème :** Préparer une tasse de café.
* **Entrées :** Eau, café moulu, tasse, machine à café.
* **Instructions :**
1. Vérifier si le réservoir d'eau est plein.
2. Si non, remplir le réservoir d'eau.
3. Mettre la quantité désirée de café moulu dans le filtre.
4. Placer la tasse sous la sortie de la machine.
5. Appuyer sur le bouton "marche".
6. Attendre que le café soit infusé.
* **Sortie :** Une tasse de café prête à être bue.
#### Exemple 2 : L'algorithme pour trouver le plus grand nombre dans une liste
* **Problème :** Trouver le nombre le plus grand parmi une série de nombres.
* **Entrée :** Une liste de nombres (par exemple : \[ 5, 12, 3, 8, 20 \]).
* **Instructions (en pseudo-code simple) :**
1. `maximum_trouve` prend la valeur du premier nombre de la liste.
2. Pour chaque `nombre` restant dans la liste :
* Si `nombre` est plus grand que `maximum_trouve` alors :
* `maximum_trouve` prend la valeur de `nombre`.
3. Le résultat est `maximum_trouve`.
* **Sortie :** Le plus grand nombre de la liste (dans l'exemple ci-dessus, \[ 20 \]).
### Exercices
1. Décrivez un algorithme simple pour traverser une rue en toute sécurité.
* Quelles sont les entrées de votre algorithme ?
* Quelles sont les sorties ?
2. Si un algorithme pour additionner deux nombres donnait parfois \[ 5 \] et d'autres fois \[ 7 \] pour les mêmes entrées \[ 2 \] et \[ 3 \], quelle caractéristique essentielle de l'algorithme serait violée ?
3. Proposez un exemple d'algorithme de la vie courante qui doit impérativement respecter l'ordre de ses instructions.
### Devoir
1. Rédigez un algorithme (en pseudo-code simple ou par étapes claires) pour aider un ami à trouver un livre spécifique dans la bibliothèque de votre école. Précisez les entrées et les sorties.
2. Faites une petite recherche et expliquez brièvement (3-5 lignes) comment un algorithme est utilisé dans une application que vous utilisez régulièrement (par exemple, pour classer les résultats d'une recherche, pour recommander des vidéos, etc.).
### Résumé
Les algorithmes sont des instructions structurées et logiques qui nous permettent de résoudre des problèmes et d'accomplir des tâches. Ils sont la base de toute l'informatique et sont omniprésents dans notre quotidien. Retenez bien leurs caractéristiques principales : **précision, ordre, finitude, entrée, sortie, et déterminisme**. La capacité à concevoir des algorithmes est une compétence clé en informatique et pour la résolution de problèmes en général.
## Structures de contrôle(1)
### Introduction
Bienvenue dans cette leçon sur les structures de contrôle, un concept fondamental en informatique et en algorithmique ! Jusqu'à présent, nos algorithmes suivaient généralement une série d'instructions de manière linéaire, l'une après l'autre. C'est ce que l'on appelle l'exécution séquentielle. Cependant, pour qu'un programme soit vraiment utile, il doit pouvoir prendre des décisions, s'adapter à différentes situations ou répéter des actions. Les **structures de contrôle** sont les outils qui nous permettent de modifier le flux d'exécution normal d'un algorithme, lui donnant ainsi l'intelligence de réagir.
Dans cette première partie, nous allons nous concentrer sur la structure de contrôle la plus simple et la plus courante : la **structure conditionnelle**, qui permet à notre algorithme de faire des choix.
### Concepts Clés
#### L'exécution séquentielle
* **Définition :** L'exécution séquentielle est l'ordre par défaut d'un algorithme. Les instructions sont exécutées les unes après les autres, dans l'ordre où elles sont écrites, du début à la fin.
* **Flux :** Il n'y a pas de saut, pas de répétition, juste une progression linéaire.
* **Exemple simple :**
```
1. Démarrer
2. Lire le nombre A
3. Lire le nombre B
4. Calculer la Somme = A + B
5. Afficher la Somme
6. Fin
```
Chaque étape est réalisée dans l'ordre indiqué, sans exception.
#### Les structures conditionnelles (ou de choix)
Ces structures permettent à l'algorithme de prendre des décisions et d'exécuter différentes portions de code en fonction de l'évaluation d'une **condition**.
##### Qu'est-ce qu'une condition ?
Une condition est une expression qui peut être évaluée comme étant soit **vraie**, soit **fausse**. Elle est souvent basée sur une comparaison.
* Exemples de conditions :
* \( x > 10 \) (x est plus grand que 10)
* \( age >= 18 \) (l'âge est supérieur ou égal à 18)
* \( couleur ==
Quiz du chapitre
10 questions — vérifie chaque réponse pour voir l'explication.