Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Développement informatique
  3. Algorithmique
Extrait - Développement informatique Apprenez à concevoir avant de programmer
Extraits du livre
Développement informatique Apprenez à concevoir avant de programmer
3 avis
Revenir à la page d'achat du livre

Algorithmique - Présentation de la méthode

Objectifs du chapitre

  • Décomposer hiérarchiquement un ensemble de données.

  • À partir des décompositions des données écrites (données de sortie) et des données lues (données d’entrée) par le programme, établir l’organigramme structuré de la logique de l’application.

  • Écrire le programme à partir de l’organigramme.

Présentation de la méthode

1. Pourquoi une méthode de programmation ?

Dans un projet informatique, la première chose qu’exprime en général le futur utilisateur, c’est le résultat qu’il souhaite. "Je veux un programme pour gérer mon stock, je souhaite un site web pour présenter ma société...". Il faut alors regarder en quoi consiste le stock, quels sont les renseignements que le site web doit présenter ? Etc.

Enfin, ayant établi avec précision la liste des données disponibles, et l’ensemble des résultats à obtenir, le développeur programme la logique qui permet d’arriver au résultat voulu. On dit qu’il conçoit l’algorithme de la solution.

Une recette de cuisine est un algorithme. Quel est le plat que je veux réaliser ? Ai-je les ingrédients pour le réaliser ? Enfin, comment m’y prendre ? Quelle est la recette ?

L’art de l’informaticien est de découvrir la recette, l’algorithme à programmer.

Dans les chapitres précédents, nous avons réalisé des programmes sans utiliser de méthode. Un raisonnement logique, traduit convenablement en instructions structurées du langage (if, while...) suffit souvent pour résoudre les problèmes.

Quand la complexité...

Exemple : édition de factures

1. État de sortie à obtenir

images/01093a.png

Pour chaque client, on imprime des lignes "facture". Chacune d’entre elles contient un numéro de facture, le montant de la facture, et une remise de 10 % sur le montant de la facture si celui-ci dépasse 2.000 €.

2. Décomposition de l’état de sortie

Quand on examine l’état, on constate qu’il est organisé "client par client" :

images/01093c.png

Chaque sous-ensemble grisé est un ensemble de données concernant un client.

L’ensemble de l’état peut être décrit comme un ensemble de données concernant un client autant de fois qu’il y a de clients.

On peut le noter ainsi :

images/01093d.png

e.d.c.: abréviation pour « ensemble de données concernant ».

(c) : cardinalité répétitive pour : autant de fois qu’il y a de clients.

On s’intéresse maintenant à l’organisation des données d’un client, par exemple à celles du client 001 :

images/01093e.png

Chaque sous-ensemble grisé est un ensemble de données concernant une facture.

L’ensemble des données d’un client peut être décrit comme : un numéro de client (ncli) présent 1 fois, puis un ensemble de données concernant une facture autant de fois qu’il y a de factures.

On peut le noter ainsi :

images/01093f.png

On s’intéresse maintenant à l’organisation des données d’une facture :

images/01093g.png

Le sous-ensemble grisé correspond à une remise.

L’ensemble des données d’une facture peut être décrit comme : un numéro de facture (nfac) présent 1 fois, un montant de facture (mont) présent une fois et une remise présente 0 ou 1 fois.

Décomposition complète :

images/01093h.png

3. Le fichier des factures

Les informations nécessaires à l’édition des factures sont lues dans un fichier d’entrée dont les enregistrements ont la structure suivante :

images/01093b.PNG

Ce fichier séquentiel est trié sur le N° CLIENT. Il ne comporte qu’un enregistrement par facture.

Structure correspondante :


typedef struct 
{ 
    char  ncli[4]; 
    char  nfac[6]; 
    float mont; 
} FACTURE;
 

On considère que le fichier...

Travail pratique : statistique des ventes

1. Commentaire sur l’énoncé

L’énoncé du travail pratique est inspiré de dossiers professionnels.

Il fixe les noms des variables, que ce soit en édition ou en lecture. Ainsi, d’un programmeur à l’autre, le respect de l’énoncé et de la méthode conduit à des programmes semblables.

L’énoncé contient :

  • une brève description du but de l’application ;

  • un schéma de traitement ;

  • une description de l’état à obtenir, avec à droite, le nom de chacune des lignes ;

  • la description de chaque ligne ;

  • d’éventuelles caractéristiques particulières de l’état ;

  • une description des fichiers.

L’énoncé, l’organigramme, les résultats obtenus et le programme constituent un dossier de programmation assez complet.

2. Sujet

a. But du programme

Éditer une statistique des ventes, présentée par secteur, par représentant et par client.

b. Schéma du traitement

images/01094a.png

c. État de sortie à obtenir

Les lignes d’impression sont identifiées par un code : LE1, LE2, LE3, LD1, LT1, LT2, LT3.

images/etatP172.PNG

d. Lignes d’impression

images/01094c.png

e. Caractéristiques de l’état

  • Saut de page : une fois par secteur.

  • Toutes les informations d’un secteur tiennent sur une page.

  • Le total général est imprimé sur la même page que le dernier secteur.

f. Description du fichier : versements

Un enregistrement du fichier versements contient :

images/descriptionP174.PNG

Structure correspondante :


typedef struct 
{ 
    char   nosect[3]; 
    char   norep[4]; 
    char   nocli[5]; 
    char   nofac[6]; 
    double mont; 
    char   codpays[3]; 
} VERSEMENT;
 

Organisation du fichier : séquentielle

Critères de tri :

  • nosect (numéro de secteur),

  • norep (numéro de représentant),

  • nocli (numéro de client).

Ce fichier est fourni. Son chemin d’accès est : C:\C\fichiers\versements

Son contenu est le suivant :

images/01094e.png

3. Proposition de correction

a. Décomposition hiérarchique de l’état de sortie

images/01094f.png

L’état se présente comme un ensemble de données concernant un secteur, autant de fois qu’il y a de secteurs (ensembles grisés)....