I- Introduction

L’ordinateur le plus puissant que vous connaissez n’est qu’un ensemble de matériaux ; Hardware (le processeur, la mémoire, la carte graphique, les disques….)  qui ne servent à rien sans programmes !!

Pour mieux comprendre, imaginez un bébé nouvellement né. A votre avis, quelle est le rôle de ses parents? Eh bien : ils essaient de le guider pour apprendre à manger, à se laver, à lire, etc . En effet, l’éducation (y compris l’apprentissage automatique après des expériences vécues et sans consignes des parents) est une programmation des êtres humains !! 

Ainsi, Comme le bébé qui doit être conscient de ces capacités pour pouvoir les utilisés (dans le bon ou le mauvais sens), l’ordinateur a besoin des moyens qui lui permettent d’utiliser son hardware (tout le matériel intégré dans un ordinateur) : Ce sont les programmes !!

Comme vous savez, pour pouvoir faire apprendre des compétences aux êtres humains, on utilise une langue humaine commune pour eux. Par analogie, programmer un ordinateur (ou même une autre machine) implique l’utilisation d’une langue connue par cette machine : langage machine (le binaire).En effet, Dans un ordinateur, absolument tout (données et programmes, en mémoire, sur les disques durs ou sur cd…) est stocké sous forme binaire. (Pour plus d’informations sur le codage numérique de l’information, suivez le cours du module essentiel en technologie de l’information/chapitre I).

Le langage machine est très loin des langues humaines. D’où, nous avons besoin d’une langue commune entre la machine et l’être humain, ou d’un pont entre les deux mondes différents : langage de programmation de haut niveau.

Dans ce cours on s’intéresse à la programmation via le langage Python. Mais, au départ, on détaille les principes de la programmation structurée et on utilise un pseudo-code (algorithme), puis on le traduit en code python.

algortihme

II-Représentation d’un algorithme

II-1-Définition

L’algorithmique est bien plus ancien que l’informatique, que l’ordinateur, et que le langage Python, utilisé dans ce cours. Les exemples les plus anciens et célèbres sont:

  • les calculs d’impôts Babyloniens (il y a 4000 ans)
  • le calcul du plus grand diviseur commun (Euclide, vers −350)
  • les premières méthodes de résolution systématique d’équations (Al Khawarizmi, ixe siècle)

Les algorithmes étaient donc d’abord utilisés «à la main».

Aujourd’hui on entend généralement par algorithmique la réflexion préliminaire à l’écriture d’un programme d’ordinateur, c’est à dire la recherche d’une méthode systématique et non ambiguë pour résoudre un problème. C’est la partie conceptuelle de la programmation, l’abstraction 1 d’un programme d’ordinateur.

 

 L’algorithmique est parfois considérée comme une branche des mathématiques, parfois comme une branche de l’informatique. Les notions d’algorithme, puis d’ordinateur ont été formalisées dans les années 30 et 40 par : Kurt Gödel, Alan Turing, John von Neumann…

 

Avoir des notions en algorithmique permet de développer soi-même des programmes, et/ou d’avoir une discussion constructive avec une équipe de développeurs. Les compétences en algorithmique font aussi partie du bagage minimum d’un scientifique, qu’il soit technicien, chercheur, ingénieur ou simplement curieux.

 

Résumé : Un algorithme peut  être défini comme une  suite finie d’opérations élémentaires  constituant un schéma de calcul  ou  de  résolution d’un  problème  Autrement dit  :  C’est  l’enchaînement des  actions (instructions) nécessaires pour  faire exécuter une tâche à un ordinateur (résoudre un problème).

Un algorithme peut être représenté graphiquement, moyennant des symboles (qui ont des rôles précis) : organigrammes.

Aujourd’hui, cette représentation est  quasiment abandonnée. C’est  pourquoi on utilise généralement une série de conventions appelée  pseudo-code.

II-2 Organigramme : représentation graphique d’un algorithme

Un organigramme est un graphe qui utilise des symboles précis pour décrire les étapes à suivre pour résoudre un problème. Description des symboles d’un  organigramme :

  •  début : pour  commencer l’organigramme.
     rectangle : contient une  opération élémentaire
  •  flèche : décrit  l’ordre d’exécutions des opérations
  •  losange : décrit le test  .on sort avec deux  flèches
    •  oui : si la condition est  vraie
    • non : si la condition est fausse
  • fin : pour  finir l’organigramme

Exemple: Organigramme de l’algorithme qui permet d’afficher si l’utilisateur est majeur ou mineur sachant son âge :

Organigrame

Exercice 1 : proposer un organigramme qui permet de résoudre l’équation de premier degré : ax+b=0.

Exercice 2 : on demande à l’utilisateur de saisir un nombre inférieur à zéro. Si la réponse de l’utilisateur est correcte, on affiche ‘Bravo’, sinon, on relance notre demande (cette demande se relance à chaque réponse erronée). proposer un organigramme qui présente les étapes décrites dans cet exercice.

II-3 Pseudo-code :

On peut  décrire notre  algorithme avec du Pseudo-code. Le pseudo-code peut être rédigé dans un langage assez naturel (plutôt qu’un langage de programmation), mais qui colle tout de même aux constructions habituelles des langages (tests, boucles…)

Remarque : un pseudo-code, en général, ne peut pas être testé sur la machine. D’où, la nécessité de l’étape de traduction en programme moyennant un codage en langage de programmation choisi (Python pour notre cas).

La structure de base d’un algorithme est  la suivante:

Remarque : En programmation impérative procédurale (la majorité des types de programmation que vous rencontrerez), les mêmes ingrédients se retrouvent toujours :Un algorithme, en général, est composé de deux parties : la partie déclaration (Déclaration de variables, Déclaration de fonctions et Déclaration de procédures) et la partie encadrée par début et fin : où est décrite  les actions (instructions) à suivre pour résoudre le problème en question.

  • séquences d’opérations
  • branchement conditionnel (c’est le test)
  • itération (c’est la boucle)
  • exécution d’une procédure ou fonction

Ainsi, que vous soyez amenés à programmer en Python, Matlab, C, Java ou autre, l’apprentissage d’un quelconque de ces langages accélère l’apprentissage des autres.

Aussi, si vous voulez commencer l’apprentissage d’un langage de programmation, voilà notre cours : Langage Python Niveau 1 qui sera très utile pour vous (il vous aide à pratiquer tous les éléments vu dans notre cours d’algorithmique).

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *