Introduction à la programmation procédurale

Sur ce site, je parle souvent de programmation orientée-objet, de programmation procédurale et je peux donner l'impression que ce sont deux concepts opposés, l'un bien et l'autre mal, ou quelque chose de ce genre. Je vais essayer de démystifier ça en expliquant ce que c'est.

Donc, la programmation procédurale, c'est...

  • Quelque chose qui s'inspire des maths. On y retrouve le même vocabulaire : fonction, algorithme, variable.
  • Quelque chose qui fonctionne comme les maths : une fonction effectue un traitement sur des paramètres, calcule une valeur (ou plus) et donne un résultat qu'on peut exploiter pour d'autres choses.
  • En somme, des maths

Sauf que...

En informatique, on ne travaille pas que sur des nombres et des ensembles de nombres. On est amené à travailler sur des nombres, certes, mais aussi sur des chaînes de caractère (un bien grand mot pour dire du texte). Mais, c'est pareil. Si vous avez fait un peu de mathématiques, vous comprendrez très bien.

Ainsi...

Une fonction sinus(angle) calculera le sinus d'un angle. Ainsi, si je dis que x = sinus(angle) alors, cela veut dire qu'on décide que la valeur x vaut sinus(angle). On parle d'affectation de sinus(angle) à x. On peut aussi écrire x = x+1. Cette déclaration, qui est fausse en mathématique, n'a pas le sens d'une comparaison ou d'une équation. Il s'agit d'une affectation. Dans x, on met la valeur de x à laquelle on a aditionné 1.

Quelques définitions formelles

  • Programme : suite d'instructions (appels de fonctions, affectations, structures de contrôle) executées de manière ordonnée
  • Fonction : idem qu'en mathématique : une fonction est un processus qui effectue un traitement sur des valeurs et renvoie un résultat
  • Affectation : stockage d'une valeur dans une variable
  • Variable : nom par lequel on désigne un emplacement dans lequel on peut enregistrer des informations. On y accède par son nom de variable (une chaîne de caractères)
  • Structure de contrôle : instruction particulière permettant d'effectuer une suite d'instructions si une condition est vérifiée et d'effectuer des instructions en boucle

En application

Dans la plupart des langages de programmation procédurale, il existe une fonction principale dans laquelle on met l'algorithme de notre programme (instructions à la suite) et on fait un effort particulier pour mettre dans des fonctions annexes les traitements répétitifs. Si par exemple, on doit calculer plusieurs fois un sinus, il vaut mieux créer une fonction faite pour cela et l'appeler plutôt que de répéter l'algorithme directement dans la fonction principale autant de fois que le programme principal en a besoin. Ecrire des fonctions annexes permet de factoriser les opérations et de rendre la suite d'instructions beaucoup plus lisible pour les êtres humains, et beaucoup plus facilement rédigeable pour les programmeurs.

Pour aller plus loin

Vous pouvez consulter un ouvrage d'algorithmique (je n'ai malheureusement pas de référence à vous proposer), ou lire l'article de Wikipédia sur la programmation procédurale. Si vous voulez une introduction à l'orienté-objet, consultez cette page