UKOnline

Programme

Un programme est essentiellement une suite d'actions à entreprendre pour atteindre un but; il s'agit d'une séquence d'instructions à exécuter. On peut faire le parallèle avec une recette de cuisine qui est un programme dont le but est la réalisation d'un plat ou avec un lave-linge qui propose plusieurs programmes commandant la suite d'actions à exécuter (essentiellement les roulements du tambour) pour laver le linge.

Comme le montre la figure 2, on peut voir un programme comme une boite noire qui reçoit des données en entrée, effectue des calculs à partir de ces données et se termine en produisant des résultats en sortie. En toute généralité, les entrées et sorties utilisées par un programme proviennent directement de celles de l'ordinateur qui l'exécute. Néanmoins, ces dernières pourraient simplement provenir de la mémoire de l'ordinateur, un programme pouvant ne pas être autorisé à communiquer directement avec le monde extérieur.

Programme
Un programme peut être vu comme une boite noire recevant des données en entrée, effectuant un calcul et produisant des résultats en sortie.

Dans le domaine de l'informatique, on écrit des programmes dans le but de résoudre des problèmes. Cherchons, par exemple, les racines d'un trinôme du second degré qui est, pour rappel, un polynôme de la forme :

$$ax^2 + bx + c \qquad (a \in \mathbb{R}_0 \textrm{ et } b, c \in \mathbb{R}).$$

Pour trouver les racines que l'on cherche, on peut suivre cette procédure :

  1. Calculer le discriminant $\Delta = b^2 - 4ac$.
  2. Trois cas possibles :
    • Si $\Delta < 0$, alors il n'y a pas de racine réelle.
    • Si $\Delta = 0$, alors il y a une racine réelle double : $$x = -\frac{b}{2a}.$$
    • Si $\Delta > 0$, alors il y a deux racines réelles distinctes : $$x_1 = \frac{-b + \sqrt{\Delta}}{2a} \quad\textrm{et}\quad x_2 = \frac{-b - \sqrt{\Delta}}{2a}.$$

Comme on peut l'observer, cette procédure comporte plusieurs types d'instructions :

  • on peut effectuer des calculs à partir de données reçues en entrée (le calcul de $b^2 - 4ac$ lors de la première étape) ;
  • on peut stocker un résultat intermédiaire (le discriminant stocké dans $\Delta$) ;
  • on peut effectuer des tests et entreprendre des actions si ces derniers passent (les trois tests de la valeur du discriminant lors de la deuxième étape) ;
  • on peut produire un résultat final (le verdict sur le nombre de racines et leur valeur).

Comme on le verra dans la suite du livre, il s'agit là de plusieurs constructions clés de la programmation. On peut résumer ce problème par une courte description comme illustrée par la figure 3. On y décrit, en langage naturel, le problème ainsi que les données à fournir en entrée et le résultat à produire en sortie.

Recherche racines trinôme du second degré
Le problème de recherche des racines d'un trinôme du second degré reçoit les coefficients $a$, $b$ et $c$ et identifie la ou les racines de ce trinôme s'il en existe.

Pour continuer l'analogie avec la cuisine, on peut faire le lien entre entrées, programme et sorties avec, respectivement, les ingrédients, la recette et le plat préparé. Une fois les ingrédients fournis au cuisinier, et après que ce dernier ait exécuté la recette (chacune de ses étapes), le plat désiré est produit comme résultat.