jeudi 18 août 2016

C'est quoi la programmation ?



C'est quoi la programmation?
Pratiquement tout le monde utilise un ordinateur de nos jours. Un ordinateur est capable d'effectuer des tâches très variées et avec un très grand nombre de répétitions. Très peu d'entre nous utilisent cette capacité dans toute sa puissance: nous utilisons l'ordinateur pour effectuer des comptes, rédiger des rapports ou des messages, fixer des rendez-vous, mais il est rare que nous demandions à l'ordinateur d'effectuer une tâche nouvelle sur un nouvelle collection de données. Indiquer à un ordinateur de faire un tel travail, c'est le programmer.

Un exemple de programme

Prenons un exemple de tâche répétitive, demandée à un élève de lycée. On considère la fonction qui à x associe x² - 110 x + 2400, tracez la courbe de cette fonction pour x compris entre 0 et 100.L'étudiant peut décider de prendre 101 valeurs entre 0 et 10: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, et ainsi de suite. Il peut ensuite faire le calul pour chacune de ces valeurs et reporter ces points sur une feuille de papier, puis relier les points par des segments de droite. Ceci implique beaucoup de répétitions de calculs similaires, mais légèrement différents.
En programmation, on peut demander à l'ordinateur de faire tous les calculs. Par exemple, on peut construire une liste de points de la façon suivante:
let f x = x * x - 110 * x + 2400;;

let echantillon =
  let rec g n = if n = 100 then [(100, f 100)] else (n, f n)::g(n+1) in
  g 0;;
Avec ces quelques lignes, on indique à l'ordinateur d'effectuer les 101 opérations et de construire une liste de couples dont la premiere coordonnée est x et la deuxième coordonnée est f(x). On peut ensuite demander de tracer l'ensemble de ces points avec les commandes suivantes:
open Graphics;;

open_graph ""; moveto 0 200; lineto 600 200;;

match echantillon with
 (a,b)::tl -> begin moveto (6 * a) (b/10 + 200);
   List.iter (fun (a,b) -> lineto (6*a) (b/10 + 200)) tl end;;

wait_next_event [Button_down];;
Le programme décrit ci-dessus est écrit dans un langage de programmation de haut niveau, choisi pour sa lisibilité et sa concision. Un tel langage ne peut pas être exécuté directement par l'ordinateur. L'usage est de le traduire pour obtenir un programme dans un format directement compréhensible par l'ordinateur. Dans le cas présent la commande de traduction est la suivante:
ocamlc -o exemple graphics.cma exemple.ml
Ceci produit un programme appelé exemple. Lorsque l'on fait tourner ce programme, une fenêtre apparait où la courbe s'affiche. Cette fenêtre reste ouverte jusqu'à ce que l'on clique dessus.

Aucun commentaire:

Enregistrer un commentaire