Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 1

Les algorithmes : Définition et composantes clés

Recommended resources

Bonjour et bienvenue dans votre première leçon d'algorithmique !

Je suis votre tuteur IA et je suis ravi de vous accompagner dans votre parcours pour maîtriser les algorithmes, une étape fondamentale pour atteindre votre objectif de devenir un développeur capable d'écrire du "code clean" en Java.

Cette toute première leçon est consacrée à la base de tout : définir ce qu'est un algorithme et identifier ses trois composantes essentielles : les entrées, le traitement et les sorties. Comprendre cette structure est le premier pas indispensable pour apprendre à penser comme un programmeur et à construire des solutions logiques et efficaces.

1. Qu'est-ce qu'un algorithme ? Une recette pour résoudre des problèmes

Au fond, un algorithme n'est rien de plus qu'une recette : une suite d'instructions claires et finies, conçues pour résoudre un problème spécifique ou accomplir une tâche. Vous utilisez des algorithmes tous les jours sans même y penser, que ce soit pour suivre une recette de cuisine, assembler un meuble en kit ou suivre un itinéraire GPS.

Dans le monde de l'informatique, l'idée est exactement la même. Un ordinateur ne peut pas "penser" par lui-même, il a besoin d'une suite d'ordres précis à exécuter. L'algorithme est ce plan d'action.

Visuellement, on peut se représenter un algorithme de la manière suivante :

Schéma conceptuel d'un algorithme (Entrée, Traitement, Sortie)
Cette image illustre le concept fondamental : nous fournissons des informations en **Entrée**, l'**Algorithme** exécute une série d'instructions logiques, et nous obtenons un résultat en **Sortie**.

Ce schéma Entrée → Traitement → Sortie est le cœur de l'algorithmique. Mémorisez-le bien, car nous y reviendrons constamment.


2. Les trois composantes clés en action

Pour bien comprendre ces trois composantes, prenons un exemple concret et appétissant : la préparation de crêpes. Imaginez que vous décidiez de faire des crêpes. Votre processus de décision peut être vu comme un algorithme.

Algorithme pour faire des crêpes (Flowchart)
Cet organigramme montre les étapes et les décisions pour savoir si l'on peut faire des crêpes. Analysons-le ensemble.

En nous basant sur cet exemple, identifions nos trois composantes :

  • Les Entrées (Inputs) : Ce sont les "ingrédients" de notre problème. Ici, ce sont les informations dont nous avons besoin au départ :

    • La disponibilité des œufs.
    • La disponibilité du lait.
    • La disponibilité de la farine.
    • La disponibilité du sucre et du beurre (ingrédients optionnels).
  • Le Traitement (Processing) : C'est la "recette" elle-même, la séquence d'actions et de décisions. Dans cet organigramme, le traitement consiste à :

    • Vérifier la présence de chaque ingrédient essentiel (Si non -> On ne peut pas faire de crêpes).
    • Prendre une décision finale basée sur ces vérifications.
    • L'action finale si tout est bon : Sortir les ustensiles et se mettre au boulot !
  • La Sortie (Output) : C'est le résultat final, la solution à notre problème. Ici, la sortie est binaire :

    • La décision "On fait des crêpes".
    • Ou la décision "On ne peut pas faire de crêpes".

Cet exemple simple illustre parfaitement comment n'importe quel processus logique peut être décomposé en entrées, traitement et sorties.


3. Formaliser un algorithme : le pseudo-code

En informatique, nous avons besoin d'un moyen plus structuré et moins ambigu qu'une recette de cuisine pour décrire nos algorithmes. C'est là qu'intervient le pseudo-code.

Le pseudo-code est une manière d'écrire un algorithme en utilisant un langage simple, qui ressemble à du français (ou de l'anglais), mais qui est structuré pour être clair, précis et sans ambiguïté. C'est un pont entre une idée humaine et un programme informatique. L'avantage est qu'il est indépendant de tout langage de programmation (comme Java, Python, etc.). C'est l'outil parfait pour se concentrer uniquement sur la logique, ce qui est exactement votre objectif.

Pour approfondir cette notion, je vous invite à lire les extraits suivants d'un document universitaire qui présente formellement la structure d'un algorithme.

[PDF] ITI 1520 Introduction à l'informatique I

Ce document, intitulé 'ITI 1520 Introduction à l'informatique I' de l'Université d'Ottawa, va nous aider à définir la structure standard que nous utiliserons pour écrire nos algorithmes.

Veuillez lire les sections intitulées 'Qu’est-ce qu’un algorithme?' et 'Représentation d'un algorithme (I)'. Vous les trouverez après la diapositive 'Problème 1: Moyenne de trois nombres'. Concentrez-vous sur la définition d'un algorithme et la description de sa structure formelle : DONNÉES, RÉSULTATS, et MODULE.

Comme vous l'avez lu, un algorithme peut être décrit de manière formelle en utilisant les sections suivantes, qui correspondent directement à notre modèle Entrée → Traitement → Sortie :

  1. DONNÉES : C'est ici que l'on liste toutes les entrées de l'algorithme. Ce sont les informations que l'on connaît au départ.
  2. RÉSULTATS : C'est la liste des sorties que l'algorithme doit produire. C'est ce que l'on cherche à obtenir.
  3. MODULE : C'est le cœur de l'algorithme, la section qui contient la séquence d'instructions, c'est-à-dire le traitement.

Prenons l'exemple du calcul de la moyenne de trois nombres, vu dans le document :

  • Problème : Calculer la moyenne du coût de trois livres.
  • DONNÉES (Entrées) : Coût1, Coût2, Coût3 (les prix de chaque livre).
  • RÉSULTATS (Sorties) : Moy (la moyenne calculée).
  • MODULE (Traitement) : La séquence d'instructions pour additionner les trois coûts et diviser le total par 3 pour obtenir la moyenne.

Pour interagir avec l'utilisateur (par exemple, pour demander les entrées ou afficher les sorties), nous utilisons des instructions spécifiques. En pseudo-code, on utilise souvent LIRE pour obtenir une entrée et ECRIRE pour afficher une sortie.

Pseudo code - l'Informatique, c'est fantastique

Pour vous familiariser avec ces instructions de base, je vous propose de regarder cette courte vidéo qui illustre les concepts d'affichage et de saisie, que nous traduisons par ECRIRE et LIRE.

Regardez la partie sur les 'Exemples de procédures : les entrées-sorties' dans la vidéo, trouvable sous la section 'Les appels aux fonctions et procédures'. Concentrez-vous sur la signification de ECRIRE et LIRE.


4. À vous de jouer !

Maintenant, mettons cela en pratique avec un petit exercice.

Problème : Vous devez concevoir un algorithme qui calcule et affiche la surface d'un rectangle.

En vous basant sur la structure que nous venons de voir, essayez d'identifier :

  1. Les DONNÉES (entrées) nécessaires.
  2. Le RÉSULTAT (sortie) attendu.
  3. Le TRAITEMENT à effectuer (décrivez-le simplement en une phrase).

Prenez un instant pour y réfléchir avant de consulter la solution ci-dessous.

...

Solution :

  • DONNÉES : Vous avez besoin de deux informations : la longueur du rectangle et sa largeur.
  • RÉSULTAT : Vous voulez obtenir la surface du rectangle.
  • TRAITEMENT : L'opération à effectuer est de multiplier la longueur par la largeur.

Simple, n'est-ce pas ? En décomposant le problème ainsi, vous avez déjà posé les fondations de votre premier algorithme !


Résumé de la leçon

Félicitations, vous avez terminé votre première leçon ! Voici les points essentiels à retenir :

  • Un algorithme est une suite d'instructions finies et non ambiguës pour résoudre un problème.
  • Il se compose de trois parties fondamentales :
    • Les Entrées (DONNÉES) : Les informations de départ.
    • Le Traitement (MODULE) : Les étapes de transformation des entrées.
    • Les Sorties (RÉSULTATS) : Le résultat final.
  • Le pseudo-code est un langage structuré utilisé pour décrire des algorithmes de manière claire et indépendante de tout langage de programmation.

En maîtrisant cette décomposition simple, vous faites un grand pas vers la conception d'algorithmes clairs et structurés, la première qualité d'un "code clean".

Et après ?

Dans notre prochaine leçon, nous allons nous intéresser de plus près aux "briques" qui composent nos entrées et nos sorties : les types de données de base. Nous verrons comment un algorithme fait la différence entre un nombre entier, un nombre à virgule, un caractère ou une simple information de type "vrai ou faux".