Banque de problèmes LARP

Problème 11.5

 

Titre :

Programme d’inventaire

Date :

27 avril 2006

Référence :

Tools for Structured Design – An introduction to programming logic, 5th Edition

M.Bohl & M. Rynn

1989, Prentice-Hall

P. 273 (Exercise 15)

Solutions :

Philippe Turcotte

 

Description du problème

 

Concevoir un algorithme capable de gérer les commandes d’une compagnie offrant 10 types d’articles. L’algorithme doit traiter les commandes selon la manière suivante :

 

 

Pour déterminer si l’article se trouve dans l’inventaire, l’algorithme doit utiliser une recherche binaire. Une recherche binaire s’effectue de la façon suivante :

 

                  à début = 0

                  à fin = nbÉlément – 1

 

                  à milieu = (int)( (début + fin) / 2 )

 

                  Si la valeur recherchée est < que le milieu :

                             à début = ne change pas

                             à fin = milieu – 1

 

                  Si la valeur recherchée est > que le milieu :

                             à début = milieu + 1

                             à fin = ne change pas

 

 

L'algorithme doit lire, d’un tampon ou d’un fichier (pour Java), le numéro d’article, la quantité en inventaire et le prix unitaire et il doit les stocker dans des tableaux différents.

Ensuite, il doit lire les commandes à traitées d’un autre tampon / fichier et tant qu’il y en a, il doit traiter chacune d’entre elles.

Puis, l’algorithme affiche le résultat du traitement, comme mentionné ci haut.

De plus, il affiche les articles qui nécessitent un réapprovisionnement, c’est-à-dire qui ont une quantité plus petite que 40. Il affiche aussi la quantité nécessaire afin que la quantité en inventaire revienne à 40.

Finalement, l’algorithme effectue une mise à jour de l’inventaire en inscrivant le numéro d’article, la nouvelle quantité en inventaire et le prix unitaire de chaque article dans un nouveau fichier.

 

***Attention : On suppose que le tampon / fichier contient exactement 30 données. ( 10 articles * 3 données / articles )

                     On suppose aussi que les numéros d’articles dans le tampon / fichier sont déjà en ordre croissant.

 

Solutions du problème

 

Cet algorithme doit avoir au moins un module auxiliaire. Celui-ci doit détermine, à l’aide de la rechercher binaire, si l’article recherché figure dans l’inventaire. Il retourne l’index de l’article si celui-ci est trouvé, sinon il retourne une valeur négative.

 

D’abord, on initialise le tableau avec les données du tampon / fichier. Puis, on traite chaque commandes qui figurent dans l’autre tampon / fichier. Finalement, on affiche la moyenne et l’écart-type.

 

Solution organigramme LARP :

BohlRynn_P273_Exer15_Org.larp

Solution pseudo-code LARP :

BohlRynn_P273_Exer15_Pseudo.larp

Solution Java :

BohlRynn_P273_Exer15.java, BohlRynn_P273_Exer15_donnees1.txt, BohlRynn_P273_Exer15_transactions.txt

 

Note : L'accès aux fichiers de projet LARP ci-dessus est réservé aux détenteurs d'une clé de débridage pour LARP afin d'en assurer l'exclusivité aux enseignants. Tous ont cependant accès à la solution Java proposée.