Envoyé par Emmanuel Delahaye
Nous sommes devant un cas typique de programmation désordonnée avec confusion entre les 3 niveaux qui régissent le développement d'un projet quelconque, à savoir :
1. définition (quoi ?)
2. conception (comment ?)
3. réalisation (pour un programme : codage et tests)
Chaque niveau concerne un phase précise du développement d'un programme et s'enchaine de façon chronologique.
On commence donc par la définition.
Pour le moment, les seuls éléments dont on dispose sont :
"je dois créer un programme qui calcule pour différent angles (min, max ,et pas) le cos sin et tan. Tout cela en créant une structure Trigo. Le tout doit s'afficher dans un tableau."
S'agissant d'une application informatique, son architecture générale s'articule autour de 3 entitées fondamentales et ordonnées qui sont :
entrée -> traitement -> sortie.
C'est pour ça que la définition d'un projet informatique est basé sur :
- L'environnement (D'où viennent les entrées, où vont les sorties)
- L'interface (Quelles données les données entrent dans la machine, quelles données en sorte)
- Le comportement (Quels sont les traitements appliqués aux données).
Partant des quelques éléments fournis, et en se basant sur ce plan, on peut tenter d'élaborer un document de définition et de pointer les éléments qui manquent ou qui sont imprécis.
1 Définition
1.1 Objectif
Il s'agit de réaliser une application qui calcule le cosinus, le sinus et la tangente en fonction d'une liste d'angles définis par une valeur minimale, une valeur maximale et un pas. Le résultat est présenté sous forme de tableau.
IMPORTANT : Le simple fait de poser le problème en termes simples et clairs rend celui-ci plus facile à appréhender. On oublie souvent que le premier outil de l'informaticien et la maitrise de sa langue d'expression courante.
Rappel : L'informatique permet de réaliser des outils au service d'un métier. Un informaticien n'est pas omniscient, et les mathématiques en général et la trigonométrie en particulier n'est pas forcément sa spécialité. Pour comprendre le problème, soit il doit faire appel à sa culture générale si elle couvre le champ proposé, soit il doit se documenter sur le 'métier' pour en saisir au minimum le vocabulaire (ou jargon) permettant une communication efficace avec le client, l'utilisateur et ses collègues de travail.
1.2 Environnement
Quasiment aucun élément n'est indiqué. Faute de précisions supplémentaires, on en est réduit aux hypothèses :
Il s'agit de réaliser une application en mode console. L'utilisateur entre des données au clavier et le programme affiche le résultat à l'écran.
1.3 Interface
1.3.1 Entrées
L'utilisateur saisit les informations suivantes :
* Valeur d'angle minimale.
* Valeur d'angle maximale.
* Valeur de résolution.
Une question se pose ici. Quelle est l'unité utilisée. En effet, un angle peut être exprimé en degré ou en radian. Sans plus de précision, on fait l'hypothèse qu'il s'agit de degrés. Il convient aussi de définir quelles sont les limites acceptables pour chaque valeurs saisie (0 à 360) et la valeur de la résolution minimale (1 degré ou moins ?, granularité ?), . Il faut aussi qu'il y ait une cohérence entre la valeur minimale et la valeur maximale (maximale > minimale + résolution)
après reflexion et mise au point, on peut proposer la spécification des entrées suivante :
* Valeur de résolution (1, 10, 30, 45 degrés).
* Valeur d'angle minimale (0 à 360 - (1 x résolution) degrés)
* Valeur d'angle maximale (minimale à 360 degrés).
1.3.2 Sorties
Les données résultant des calculs sont présenté à l'écran sous forme d'un tableau comprenant une ligne par ensemble de résultats. Chaque ligne comprend :
* La valeur de l'angle en degré
* La valeur de l'angle en radian
* La valeur du cosinus
* La valeur du sinus
* La valeur de la tangente
Les valeurs étant de type flottant, le nombre de décimales visibles est limité à 3. des dispositions sont prises pour que les valeurs soient correctement alignées (textes à gauche, valeurs numériques à droite). Chaque colonne a une largeur de 9 caractères et est séparé par une colonne de 1 caractère.
Exemple de résultat :
Code :
Degré Radian Cosinus Sinus Tangente 10 xx x.xxx x.xxx x.xxx 20 xx x.xxx x.xxx x.xxx 30 xx x.xxx x.xxx x.xxx
On pourrait envisager de faire une pause toutes les x lignes...
1.4 Comportement
Le programme invite l'utilisateur à saisir les données requises.
Après avoir vérifié la cohérence des données entrées, le programme exécute une série de calculs
* cos = COS(a)
* sin = SIN(a)
* tan = TAN(a)
avec a variant de minimum à maximum au pas de résolution et les affiche au fur et à mesure à l'écran au format requis.
Sauf erreurs ou omission (à vérifier avec le client) La spécification détaillée est terminée. On dispose normalement de tous les éléments nécessaires à la réalisation du projet. Il reste maintenant à concevoir, c'est à dire déterminer les moyens de le réaliser.
2 Conception
2.1 Algorithme textuel
Définition textuelle du comportement
2.2 Algorithme formel
Définition formelle du comportement en pseudo code. Découpage éventuel en blocs fonctionnels (branches) et en unité fonctionnelles (feuilles).
3 Codage et tests
Je vais peut être te laisser un peu travailler, non ?