retour sommaire des sujets logo ULP

DESS TSI - Première session 2004

Option Mécanique et Matériaux

Informatique Appliquée à la Mécanique

Usine de fabrication de parpaings

Durée : 2h, documents personnels et calculatrice autorisés. Les documents sont tirés du concours PLP2 Génie électrique session 2003. Ce sujet comporte trois pages de texte, plus une figure. En cas d'informations insuffisantes, vous pouvez faire toute supposition qui vous arrange (et ne contredise pas le sujet), à condition de le préciser.

Présentation du dispositif général (voir fig.1) :

La chaîne de fabrication analysée ici est capable de produire des blocs manufacturés, en béton, type parpaings ou hourdis. Elle est constituée de sept parties principales :

Le service qualité cherche à améliorer les produits et en particulier à maîtriser la régularité des caractéristiques des blocs produits. Pour cela, ils effectuent différents essais (destructifs ou non) sur des produits prélevés de la production, ainsi que des mesures en continu, grâce à de nombreux capteurs, dont les données sont centralisées sur un ordinateur qui les analyse.

Au niveau de la fabrication du béton, on mesure la densité et l'humidité du béton produit à chaque gâchée. Ces deux paramètres doivent varier le moins possible. On peut reporter sur un graphe les différents points de mesure, comme ci-contre. L'idéal serait que tous les points de mesure soient au même endroit. Ou du moins qu'ils soient tous regroupés dans une zone suffisamment petite. Pour cela, nous allons rechercher l'enveloppe de ces points (c'est un polygone). Les programmes seront tous écrits en C++.

Question 1 :

Chaque point (un par mesure) est un couple de deux flottants (humidité, densité). Définissez l'objet « point », sachant que les seules actions que l'on désire effectuer sur ces points sont de définir les deux valeurs (par mesure des capteurs) par une méthode nommée « mesurer » (que vous ne détaillerez pas ici), et de pouvoir récupérer (mais pas modifier) ces deux valeurs grâce à deux méthodes (que vous détaillerez ici) nommées « humidité » et « densité » qui retournent chacune le flottant correspondant.

Question 2 :

L'ensemble des points de mesure sont regroupés en un objet dont voici une partie de la déclaration :

#define DIM 100
class ensemble
  {private: 
    int nb; //nombre de points, inférieur à DIM.
    point tableau[DIM];
   public:
    void initialiser(void);
    void afficher(void);
    float humidité(int);
    float densité(int);
        etc...
  };

Ecrivez en C++ la méthode « afficher » qui affiche toutes les valeurs des nb points d'un ensemble. On suppose (sans le vérifier) qu'on ne demandera jamais l'affichage sans que l'initialisation (c'est à dire l'appel des nb mesures) n'ait été demandée auparavant. Ecrivez également les deux méthodes nommées « humidité » et « densité » qui reçoivent en argument un entier (un numéro de point, entre 0 et nb-1), et retournent chacune la valeur correspondante (si E est un ensemble, E.humidité(0) retourne l'humidité du premier point de mesure).

Question 3 :

Vous allez rechercher la courbe enveloppe de ces points. C'est un polygone convexe, que l'on définira par ses sommets.

Il existe un plusieurs méthodes pour déterminer le polygone convexe englobant tous les points. Je vous propose d'utiliser la suivante : on analyse tous les couples de points possibles. Pour chacun de ces couples, on détermine la droite passant par ces deux points, et l'on teste la position de tous les autres points. S'ils sont tous du même côté, et uniquement dans ce cas, le couple forme un segment de la frontière.

Par exemple, le segment AB fait partie de l'enveloppe car tous les autres points sont du même côté de la droite AB, mais le segment AC n'en fait pas partie car B et D sont de part et d'autre de la droite AC.

Bien que vous sachiez tous comment vérifier de quel côté d'une droite est un point, je vais vous en rappeler une méthode : tous les points (de coordonnées X,Y) situés du même côté d'une droite AB (coordonnées du point A : XA,YA, de B : XB,YB) génèrent tous une valeur VAL= (XA-X)(YB-YA) - (YA-Y)(XB-XA) du même signe. (On pourrait le démontrer par un simple produit vectoriel).

Question 3-1 :

ajoutez à la classe « ensemble » une méthode nommée « signe_coté » qui :

Question 3-2 :

ajoutez à la classe « ensemble » une méthode nommée est_frontiere qui reçoit en argument d'entrée deux entiers : les indices, dans l'ensemble des mesures, de deux points (A et B) définissant un segment; et retourne un entier valant 1 si tous les autres points sont du même côté du segment AB (donc ont une valeur VAL de même signe), et valant 0 dans le cas contraire. Rappel : deux réels sont de même signe si leur produit est positif.

Question 3-3 :

Il faudrait maintenant créer l'objet « frontière », en calculer la surface pour vérifier qu'elle n'est pas trop importante, mais cela ferait trop de questions pour le temps imparti, surtout que ce n'est pas encore terminé.

Question 4 :

L'ordinateur faisant les analyses des mesures et leurs statistiques est relié au réseau de l'entreprise (utilisant TCP/IP). Son nom (local) est « statistiques », il tourne sous Unix. Expliquez en quelques lignes ce qu'il faut faire pour récupérer un fichier de données de cet ordinateur depuis un autre poste de l'entreprise. Le réseau de l'entreprise étant connecté à internet, que faut-il faire pour récupérer ce fichier depuis un PC personnel, connecté par exemple au réseau « wanadoo.fr » ?

Remarques : si vous avez du mal avec les objets, supposez que l'on utilise des variables simples. Si vous avez du mal avec les méthodes et leurs arguments, notez simplement les instructions en C qui effectuent la tâche demandée, en supposant que toutes les variables nécessaires sont connues. Dans ce sujet, on ne vous demande pas le programme principal qui utilise les différents objets et méthodes demandés (entre autres), c'est tant mieux car il est compliqué. On ne vous demande pas non plus de créer des méthodes supplémentaires, comme la saisie ou l'affichage des données, sauf si c'est explicitement demandé. Le serveur web de l'entreprise est supposé être à l'adresse http://www.superbeton.fr.


pour quelques pistes de solution, cliquez ici, pour retourner au sommaire des sujets d'examen, cliquez


retour sommaire des sujetsPatrick TRAU, ULP - IPST mars 04