BTS CG P7 fiabilisation de l'information et du SI

Les algorithmes


  1. Comprendre ce quโ€™est un algorithme
    1. Dรฉfinition
      1. Un algorithme est une suite dโ€™instructions, qui une fois exรฉcutรฉe correctement, conduit ร  un rรฉsultat donnรฉ.
    2. Distinction algorithme et programmation
  2. Les instructions dans les algorithmes
    1. Lโ€™affectation de variable
      1. Une variable est toujours nommรฉe
      2. Lโ€™affectation consiste ร  attribuer une valeur ร  une variable
      3. les constantes
    2. Les instructions lecture/รฉcritures
    3. Les instructions de test
    4. Les boucles

Les algorithmes sont partout : quand vous faรฎtes un paiement numรฉrique, quand vous vous identifiez sur une plateforme, quand vous dรฉverrouillez votre tรฉlรฉphone, quand vous regardez Netflix ou que vous bidouillez sur excelโ€ฆ

Comprendre ce quโ€™est un algorithme

Dรฉfinition

Un algorithme est une suite dโ€™instructions, qui une fois exรฉcutรฉe correctement, conduit ร  un rรฉsultat donnรฉ.

Si lโ€™algorithme est juste, le rรฉsultat est le rรฉsultat voulu. 

Lโ€™algorithme est donc avant tout et surtout un raisonnement logique qui permet dโ€™obtenir un rรฉsultat dรฉterminรฉ ร  partir dโ€™instructions. 

Distinction algorithme et programmation

Un programme correspond ร  la traduction dans un langage de programmation des opรฉrations dรฉcrites dans lโ€™algorithme. La programmation est surtout la maniรจre de communiquer les instructions ร  une machine, avec un langage prรฉรฉtabli

Lโ€™algorithme correspond donc ร  la rรฉflexion avant lโ€™รฉlaboration du programme. Le programme est le moyen de communiquer, interagir avec une machine

Les instructions dans les algorithmes

Les ordinateurs, quels quโ€™ils soient, ne sont fondamentalement capables de comprendre que quatre catรฉgories d’ordres (en programmation, on n’emploie pas le terme d’ordre, mais plutรดt celui d’instructions). 

Ces quatre familles d’instructions sont :

  • lโ€™affectation de variables
  • la lecture / รฉcriture
  • les tests
  • les boucles

Prenons un exemple simple : pour vous connecter ร  un rรฉseau, vous devez entrer un identifiant et un nom de passe.

Votre nom.prรฉnom est affectรฉ une variable  : identifiant

Votre mot de passe est affectรฉ ร  une variable : motdepasse

Vous tapez votre identifiant, et votre mot de passe : le logiciel va lire ces informations (instruction de lecture)

Le logiciel effectue une sรฉrie de tests pour vรฉrifier que le mot de passe correspond ร  votre identifiant. Pour ce faire il va comparer les valeurs

Lโ€™identifiant entrรฉ correspond ร  un identifiant de la base de donnรฉe

Le mot de passe entrรฉ correspond au mot de passe de la base de donnรฉe correspondant ร  lโ€™identifiant

SI il y a correspondance, vous accรฉdez au serveur

SI le mot de passe est diffรฉrent, le logiciel vous รฉcrit un message โ€œmot de passe incorrectโ€

Vous devez alors recommencer lโ€™opรฉration jusquโ€™ร  ce que le test soit rรฉalisรฉ  : cโ€™est la boucle.

Si vous avez utilisรฉ Excel vous avez maniรฉ des choses รฉquivalentes aux variables (nommer des cellules, leur donner un format) et aux tests (la fonction SI, RECHERCHEโ€ฆ). 

Un algorithme est issu de la combinaison de ces variables et des instructions

Un algorithme informatique se ramรจne donc toujours au bout du compte ร  la combinaison de ces quatre รฉlรฉments, de mรชme que les couleurs rouge bleu jaune noir permettent de dรฉfinir une infinitรฉ de couleurs. 

Lโ€™affectation de variable

Dans un programme informatique, on va avoir en permanence besoin de stocker provisoirement des valeurs. C’est la variable.

Une variable est toujours nommรฉe

Une variable est comme une boรฎte, que le programme va repรฉrer par une รฉtiquette. Pour avoir accรจs au contenu de la boรฎte, il suffit de la dรฉsigner par son รฉtiquette.

Lโ€™affectation consiste ร  attribuer une valeur ร  une variable

Cette valeur peut รชtre numรฉrique, date, monรฉtaire, avec ou sans dรฉcimale etc. Cette valeur peut รชtre le produit dโ€™une opรฉration mathรฉmatique (soustraction, addition, multiplication, division)

les constantes

Une constante est un objet dont l’รฉtat reste inchangรฉ durant toute l’exรฉcution d’un programme, quelque soit le problรจme posรฉ. 

On ne peut jamais modifier sa valeur et celle-ci doit donc รชtre prรฉcisรฉe lors de la dรฉfinition de l’objet.

Les instructions lecture/รฉcritures

Lโ€™objectif des fonctions lecture/รฉcriture est de permettre la communication entre la machine et lโ€™utilisateur.

Attention, lecture et รฉcriture sโ€™entendent du point de vue de la machine.

  • La fonction lecture permet de rรฉcupรฉrer une information auprรจs de l’utilisateur en lui demandant de « rentrer » une valeur via un formulaire de saisie, une boรฎte de dialogue etcโ€ฆ Le logiciel va donc lire la valeur transmise par lโ€™humain. Cette valeur sera ensuite stockรฉe dans une variable
  • La fonction รฉcriture permet d’afficher un retour ร  l’utilisateur pour lui donner le rรฉsultat dโ€™une opรฉration en รฉcrivant une information. Le logiciel รฉcrit donc une rรฉponse ร  lโ€™humain (rรฉsultat dโ€™une requรชte, mot de passe incorrectโ€ฆ)

Les instructions de test

Le test consiste ร  donner des sรฉries dโ€™instructions ร  effectuer selon que la situation se prรฉsente dโ€™une maniรจre ou dโ€™une autre. On retrouve alors la notion de condition, (SI sous excel par exemple)

Une condition est une comparaison, composรฉe de trois รฉlรฉments :

  • une valeur
  • un opรฉrateur de comparaison
  • une autre valeur

Lโ€™ensemble des trois รฉlรฉments composant la condition constitue donc, si lโ€™on veut, une affirmation, qui ร  un moment donnรฉ est VRAIE ou FAUSSE.

Les valeurs peuvent รชtre a priori de nโ€™importe quel type (numรฉriques, caractรจresโ€ฆ). 

Mais si lโ€™on veut que la comparaison ait un sens, il faut que les deux valeurs de la comparaison soient du mรชme type.

Les opรฉrateurs de comparaison

  • รฉgal ร โ€ฆ
  • diffรฉrent deโ€ฆ
  • strictement plus petit queโ€ฆ
  • strictement plus grand queโ€ฆ
  • plus petit ou รฉgal ร โ€ฆ
  • plus grand ou รฉgal ร โ€ฆ

Si nous reprenons l’exemple de l’authentification d’un utilisateur, l’algorithme sera le suivant

Les boucles

On peut dire en fait que les boucles constituent la seule vraie structure logique caractรฉristique de la programmation. 

Les boucles n’existent que dans les langages de programmation proprement dits.

Pour prรฉvenir une erreur de saisie, par exemple, on peut programmer un algorithme, qui pose une condition permettant de vรฉrifier lโ€™exactitude des donnรฉes et dโ€™empรชcher lโ€™algorithme de planter. 

Exemple : le format d’une date de naissance en JJ/MM/AAAAA

La boucle permet dโ€™รฉviter une programmation infinie, grรขce ร  une instruction โ€˜tant queโ€. โ€œtant queโ€ la saisie nโ€™est pas correcte, le programme continue ร  demander dโ€™autres donnรฉes.