Lycée   >   Terminale   >   Sciences de l’ingénieur   >   L'algorithmique : principes, bases et fonctions

L'algorithmique : principes, bases et fonctions

  • Fiche de cours
  • Quiz
  • Profs en ligne
Objectifs
  • Connaitre le vocabulaire et les principes liés à l’algorithmique.
  • Savoir quand et pourquoi utiliser un algorithme.
  • Connaitre la structure de base d’un algorithme en pseudo-code.
  • Savoir utiliser les variables, les expressions mathématiques et les fonctions en pseudo-code.
  • Savoir utiliser les instructions d’affectation, de lecture et d’écriture en pseudo-code.
Points clés
  • Un algorithme est composé d’une suite d'instructions à exécuter pour atteindre un objectif. L'algorithmique est l'ensemble des principes, règles et techniques qui permettent d'écrire un algorithme.
  • Pour concevoir un programme informatique, on utilise le plus souvent le pseudo-code.
  • Une variable permet de mémoriser et de manipuler des données. L'instruction d’affectation permet de donner une nouvelle valeur à une variable. On peut aussi affecter le résultat d’une expression mathématique.
  • L’instruction de lecture permet au système de demander à l'humain de lui fournir une information.
    L’instruction d’écriture permet au système de donner une information à l’utilisateur humain.
  • Les fonctions permettent de réaliser des tâches complexes. Elles renvoient un résultat et peuvent prendre des arguments.
Pour bien comprendre
  • Variable
  • Instruction
  • Affectation
  • Fonction
1. Les algorithmes
a. Qu'est-ce qu'un algorithme ?
Un algorithme est une suite d'opérations, qu'on nomme instructions, à effectuer pour atteindre un objectif (résoudre un problème, cuisiner un plat, faire se déplacer un robot, etc.). On dit que ces instructions doivent être exécutées.

En informatique, ou dans le cadre de la création de systèmes qui ont une composante numérique, on réalise des algorithmes afin de concevoir, ou de décrire, un programme informatique.

L'algorithmique est l'ensemble des principes, règles et techniques qui permettent d'écrire un algorithme.
Remarque
Bien que l'informatique soit assez récente, l'algorithmique existe depuis longtemps. Elle tire ses origines des méthodes de résolution d'équations mathématiques mises au point par le mathématicien arabe Al-Khwârizmî au IXe siècle. Le mot « algorithme » est d’ailleurs issu du nom d'Al-Khwârizmî.
Un algorithme est indépendant du système numérique et des technologies auquel il est destiné.

Un algorithme n'est pas encore un programme informatique, c'est simplement un mode opératoire, une série d'instructions structurées.

Une fois l'algorithme écrit et validé, il faut donc, dans un second temps :

  • le traduire dans un langage informatique (C++, Python, Javascript, etc.) ;
  • éventuellement, l’adapter aux composants matériels du système numérique.

On obtient alors un programme informatique qui implémente l’algorithme.

Remarque
Concrètement, cela signifie qu’un même algorithme, une fois écrit, pourrait servir à la fois pour un PC sous Windows, pour un Mac, pour un robot et pour une machine à laver intelligente. Le langage informatique, et la manière dont serait traduit l’algorithme en programme informatique, seraient à chaque fois un peu différent, mais l’algorithme en lui-même serait identique.
b. Le pseudo-code
Méthodes pour créer un algorithme

Plusieurs méthodes permettent de créer un algorithme.

  • On peut écrire l'algorithme dans un langage appelé pseudo-code. Le pseudo-code ressemble à un langage humain simplifié et formaté.
  • On peut dessiner un algorigramme. Un algorigramme est un algorithme sous forme de diagramme.
  • On peut écrire l'algorithme directement dans un langage informatique (C, PHP, Java, etc.).
Avantages du pseudo-code et de l’algorigramme

Le pseudo-code et l'algorigramme sont à prioriser lorsqu'on conçoit un programme informatique.

Leurs avantages sont les suivants.

  • Ils ne dépendent pas d’un langage de programmation : pseudo-code et algorigramme sont universels, ils n'utilisent aucun principe ou règle propre à un langage de programmation en particulier.
  • Ils sont plus lisibles : les langages informatiques contiennent des symboles spéciaux ({, $, ", etc.) et des conventions d'écriture parfois contre-intuitives. Cela peut gêner la lisibilité de l'algorithme, surtout si l'algorithme doit par la suite être présenté à des non-spécialistes.
Remarque
Certains langages, comme Python, propose une syntaxe très simple avec une bonne lisibilité. Il reste néanmoins préférable d'utiliser le pseudo-code ou l'algorigramme pour concevoir un algorithme, car les algorithmes écrits en Python ne sont pas indépendants (c’est-à-dire qu’ils comportent certaines instructions, propres à Python, qui n’ont pas d’équivalent dans d’autres langages informatiques).
Avantages du pseudo-code par rapport à l’algorigramme

Les atouts du pseudo-code, qui font qu'on le choisit souvent plutôt que l’algorigramme, sont les suivants.

  • Il conserve une bonne lisibilité, même lorsque l’algorithme s'allonge et que sa structure se complexifie.
  • Il est plus adapté pour présenter de l’information textuelle (par exemple, pour écrire des phrases qu’un ordinateur exécutant l'algorithme écrirait sur l’écran).
  • La traduction vers un langage de programmation est plus directe, car les langages de programmation ont globalement la même structure que le pseudo-code.
  • Il est plus adapté pour la conception de programmes purement informatiques, dédiés aux ordinateurs, mobiles, web, etc.
Remarque
L’algorigramme présente également des avantages.
  • Il est plus facile à lire et à comprendre pour un non-spécialiste.
  • Il convient davantage à une présentation orale, car il est plus visuel.
  • Il est plus adapté à la manière de penser de certaines personnes.
  • Il est souvent plus adapté à la conception des programme des produits pluritechniques, dont la partie numérique est assez simple. En effet, il met bien en valeur les entrées/sorties de données liées aux capteurs/actionneurs.

Dans certains cas, on peut donc privilégier l'algorigramme par rapport au pseudo-code.

2. Manipuler des données en pseudo-code

On va maintenant voir comment se servir du pseudo-code pour écrire des algorithmes, en commençant par apprendre à manipuler des données.

a. Les variables
Une variable permet de mémoriser et de manipuler des données dans l’algorithme. Une variable possède un nom et un type. Elle est déclarée en début de programme, précédée par le mot-clé Variable.

Les principaux types de variables sont les suivants.

  • Nombre, pour les variables qui contiennent des nombres.
  • Booléen, pour les variables qui contiennent des valeurs binaires, qui peuvent valoir vrai ou faux.
  • Chaine, qui vient de « chaine de caractères » pour les variables qui contiennent des caractères alphanumériques, des mots, des phrases, etc.
Remarque
Les conventions d’écriture varient d'un auteur à l'autre, d'un manuel à l'autre : il n'y a pas une seule et unique façon d'écrire en pseudo-code.
Exemples
  • Variable age, prix : nombre
  • Variable estMajeur : booléen
  • Variable nom, prenom : chaine
Remarques
  • Le type nombre est parfois scindé en un type entier pour les nombres entiers, et en un type réel pour les nombres réels.
  • On essaie toujours de donner des noms explicites aux variables, pour que quelqu'un qui lit l'algorithme comprenne immédiatement leur rôle.
b. Instruction d'affectation
L'instruction d’affectation est l'instruction qui consiste à donner une valeur à une variable.

L'instruction d’affectation s'écrit en indiquant le nom de la variable, suivi de l'opérateur d'affectation et de la nouvelle valeur à donner à la variable. Cette valeur doit respecter le type de la variable.

Remarques
  • Pour les variables de type booléen, les valeurs possibles sont vrai et faux.
  • Pour les variables de type chaine, les valeurs sont entourées de guillemets .
Exemples
  • age 28
  • prix 5,76
  • estMajeur faux
  • prenom "Tom"
c. Les expressions mathématiques

Il est aussi possible d'affecter une expression mathématique à une variable de type nombre. Les expressions peuvent contenir des valeurs numériques, d'autres variables de type nombre, ou un mélange des deux.

Les expressions mathématiques s'écrivent avec les opérateurs mathématiques suivants.

  • + qui est l’opérateur d'addition.
  • - qui est l’opérateur de soustraction.
  • * qui est l’opérateur de multiplication.
  • / qui est l’opérateur de division.
  • ( et )qui permettent de structurer les expressions complexes.
Exemples
  • prixPromo prix * 0,6
  • surface (base * hauteur)/2
3. Les instructions d'entrées-sorties en pseudo-code

Le système numérique qui exécute l'algorithme aura surement besoin d'interagir avec l’extérieur pour :

  • dialoguer avec un utilisateur humain ;
  • récupérer des informations qui viennent de capteurs ou piloter des actionneurs (moteurs, pompe, lampe, etc.) ;
  • communiquer sur un réseau de données.
a. Instruction de lecture
L'instruction de lecture permet au système d'interagir avec l’extérieur, elle se note avec le mot-clé Lire.

Cette instruction permet au système numérique :

  • de demander à l’utilisateur de lui fournir une information ;
  • de récupérer des données qui proviennent d’un capteur ;
  • de recevoir des données qui proviennent d’un réseau.

La valeur de cette information est affectée à une variable, dont le nom suit le mot-clé Lire.

Remarque
On parle aussi d’instruction d’entrée, car Lire permet de faire entrer une information dans le système.
Exemples
  • Lire age
  • Lire prix
Remarques
  • Dans le cas où le système est un ordinateur, ce qui sera le cas dans les prochains exemples, l’information est entrée par l'utilisateur grâce au clavier.
  • La valeur lue prend le type de la variable à laquelle elle est affectée.
b. Instruction d'écriture
L'instruction d'écriture permet au système d'interagir avec l’extérieur, elle se note avec le mot-clé Écrire.

Cette instruction permet au système numérique :

  • d’afficher une information à destination de l’utilisateur ;
  • d’envoyer une commande à un actionneur ;
  • d’envoyer des données sur un réseau.

Après le mot Écrire, on indique ce qui sera transmis. Cela peut être la valeur d'une variable, une chaine ou un mélange des deux.

Remarque
On parle aussi d’instruction de sortie, car Écrire permet de faire sortir une information du système.
Exemples
  • Écrire “Quel est votre nom ?”
  • Écrire “Votre prénom est ”, prenom, .
Remarques
  • Dans le cas où le système est un ordinateur, ce qui sera le cas dans les prochains exemples, l’information est affichée sur l’écran.
  • La valeur écrite doit être de type chaine.
  • Plusieurs chaines peuvent être écrites à la suite, en les séparant par des virgules.
  • Pour ne pas se tromper sur le rôle de l’instruction lecture et le rôle de l’instruction écriture, il faut se rappeler que l’algorithme est destiné à être exécuté par un système numérique. C’est donc le point de vue du système qu’il faut adopter quand on écrit les instructions. Quand le système exécute l’instruction Lire, il récupère ainsi une information. Quand le système exécute l'instruction Écrire, il écrit quelque chose à l’écran.
c. Programme complet de lecture-écriture

Voici ci-dessous un algorithme complet qui utilise les instructions de lecture et d’écriture. Le système pour lequel cet algorithme est dédié est un ordinateur. Il demande à l'utilisateur son prénom et son nom, puis le salue à l'écran.

Variable prenom, nom : chaines de caractères
Début

Écrire Quel est votre prénom?
Lire prenom
Écrire Quel est votre nom?
Lire nom
Écrire Bonjour , prénom, ,nom
Fin

Cet exemple permet de voir la structure complète d’un algorithme.
On note les éléments suivants.

  • On utilise les mots-clés Début et Fin, pour encadrer l'algorithme à proprement parler. Les variables sont déclarées juste avant, à part.
  • Les instructions de l’algorithme sont décalées vers la droite par rapport aux mots Début et Fin. C’est ce qu’on appelle l'indentation. L’indentation permet de rendre l'algorithme plus lisible en mettant en évidence les groupes d’instructions de même niveau.
4. Les fonctions en pseudo-code
a. Fonction
Une fonction permet de réaliser une tâche complexe, en écrivant un seul mot.
  1. Une fonction reçoit aucun, un ou plusieurs arguments, qu’on transmet à la fonction.
    Un argument est une valeur ou une variable.
  2. Une fonction réalise une série d’opérations à partir des arguments : calculs, conversions, manipulations de chaine, etc.
  3. Une fonction renvoie ensuite un résultat, qui est une valeur.
    Ce résultat peut être affecté à une variable, utilisé dans une instruction de lecture ou d’écriture.

Voici quelques exemples de fonctions.

  • max(arg1,arg2) renvoie le plus grand nombre parmi les deux nombres passés en arguments.
  • alea(arg1,arg2) donne un nombre entier aléatoire, compris entre arg1 et arg2.
  • long(arg) calcule la longueur, en nombre de caractères, d’une chaine.
  • concat(arg1,arg2) met bout à bout deux chaines.
  • chaine(arg) convertit un nombre ou un booléen en chaine.
  • nombre(arg) convertit une chaine en nombre.
Remarques
  • Il n y a pas de fonctions universelles en pseudo-code. Les fonctions qui peuvent être utilisées seront indiquées dans l’énoncé.
  • Les fonctions sont en réalité des morceaux de code déjà écrits, parfois longs et complexes, qu’on utilise pour faciliter l’écriture d’algorithmes plus élaborés.
b. Exemples d'utilisation des fonctions
Exemple 1
L'ordinateur qui exécute l’algorithme ci-dessous demande à l'utilisateur la longueur et la largeur d'un rectangle, il calcule l'aire du rectangle, puis il l’écrit sur l'écran.
 
Variable longueur, largeur, aire : nombre
Début
Écrire Quelle est la longueur du rectangle ?
Lire longueur
Écrire Quelle est la largeur du rectangle ?
Lire largeur
aire longueur * largeur
Écrire L'aire du rectangle vaut , chaine(aire), m2.”
Fin
Remarque
La fonction chaine(arg) permet de convertir la valeur de la variable aire (de type nombre) en chaine. Cette fonction est indispensable, car l’instruction d’écriture ne peut afficher que des chaines de caractères, or aire est un nombre.
Exemple 2

Le programme ci-dessous propose à l’utilisateur de générer un nombre aléatoire, entre deux bornes choisies par l’utilisateur.
 

Variable borneInf, borneSup, nombreAleatoire : nombre
Début

Écrire “Je vais générer un nombre aléatoire entre deux bornes.”
Écrire “Veuillez entrer la borne inférieure.”
Lire borneInf
Écrire “Veuillez entrer la borne supérieure.”
Lire borneSup
nombreAleatoire ← alea(borneInf,borneSup)
Écrire “Le nombre aléatoire est : “,
chaine(nombreAleatoire)
Fin
c. Pour aller plus loin - Fonctions personnalisées

Il est possible d’écrire ses propres fonctions. Ce sont en fait des petits algorithmes, séparés de l’algorithme principal.

Plutôt que de commencer par le mot-clé Début, une fonction personnalisée commence par le mot-clé Fonction, suivi du nom qu’on donne à la fonction, puis des éventuels arguments de la fonction.

Le mot-clé Renvoyer permet de préciser la valeur que la fonction renvoie.

La fonction peut posséder ses propres variables internes.

Exemple
Voici l’écriture d’une fonction qui permet de calculer le cube d’un nombre. Elle se nomme cube, et prend un seul argument, de type nombre, qu’on nomme arg. La valeur renvoyée est la variable résultat, de type nombre.

Variable resultat : nombre
Fonction cube(arg : nombre)
resultat arg * arg * arg
Renvoyer resultat
Fin

Comment as-tu trouvé ce cours ?

Évalue ce cours !

 

Question 1/5

La médiane de 6 notes est 13. Cela signifie que :

Question 2/5

On a obtenu la série statistique suivante :

Combien vaut la médiane ?

Question 3/5

On a obtenu la série ci-dessous :

Quelle est la médiane de cette série ?

Question 4/5

On a relevé les tailles en cm des élèves d’une classe :

 

Parmi les propositions suivantes, laquelle est vraie ?

Question 5/5

Les notes en français de deux classes littéraires sont données dans le tableau suivant :

Quelle est la note médiane ?

Vous avez obtenu75%de bonnes réponses !

Recevez l'intégralité des bonnes réponses ainsi que les rappels de cours associés :

Votre adresse e-mail sera exclusivement utilisée pour vous envoyer notre newsletter. Vous pourrez vous désinscrire à tout moment, à travers le lien de désinscription présent dans chaque newsletter. Pour en savoir plus sur la gestion de vos données personnelles et pour exercer vos droits, vous pouvez consulter notre charte.

Une erreur s'est produite, veuillez ré-essayer

Consultez votre boite email, vous y trouverez vos résultats de quiz!

Découvrez le soutien scolaire en ligne avec myMaxicours

Le service propose une plateforme de contenus interactifs, ludiques et variés pour les élèves du CP à la Terminale. Nous proposons des univers adaptés aux tranches d'âge afin de favoriser la concentration, encourager et motiver quel que soit le niveau. Nous souhaitons que chacun se sente bien pour apprendre et progresser en toute sérénité ! 

Fiches de cours les plus recherchées

Sciences de l’ingénieur

L'internet des objets

Sciences de l’ingénieur

Chaine de puissance d'un système et réversibilité

Sciences de l’ingénieur

Simuler une chaine de puissance avec un modèle multiphysique

Sciences de l’ingénieur

Le stockage d'énergie

Sciences de l’ingénieur

Piloter un projet avec les méthodes agiles

Sciences de l’ingénieur

Mettre en oeuvre une démarche design

Sciences de l’ingénieur

Procéder à une veille technologique

Sciences de l’ingénieur

Évaluer une solution ou un prototype

Sciences de l’ingénieur

Les algorigrammes- Terminale- Sciences de l’ingénieur

Sciences de l’ingénieur

L'intelligence artificielle