Bonjour,
Tout d'abord, permettez moi de vous souhaitez une bonne et heureuse année 2009 !
Après avoir essayer de multiples combinaisons et réalisé différentes recherches ici et ailleurs, je n'arrive toujours pas à résoudre mon problème !
Je travail avec vb6 et une base de données Access 2003.
J'ai des produits (table produit) qui sont composé de plusieurs contenance (table contenance). Il s'agit en faite de rouleaux de tapisserie qui peuvent faire plusieurs taille (5, 10, 20 mètres par exemple).
Chaque rouleaux à un prix différent puisque ils ne font pas les mêmes tailles.
Je voudrais donc réalisé un algorithme qui permettrai de sélectionner le rouleaux qui couvre la plus grande surface, ajouter ce rouleau dans mon "panier" puis soustraire la surface que je viens de traiter à la surface total.
Voila ce que je fais actuellement :
Outre le fait que l'algorithme ne gère pas si nous sommes sur le dernier produit ou pas (pour gérer l'ensemble de la surface à tapisser), le problème qui me gène est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 surfaceRestante = surfaceTotal Pour <tous les rouleaux de la tapisserie X> | Si surfaceRestante > (rouleaux.longeur * rouleaux.largeur) | Alors | | // Ajout ce rouleau dans la liste (+1 unité) | | surfacerestante = surfaceRestante - (rouleaux.longeur * rouleaux.largeur) | FinSi | Rouleaux.Suivant FinPour
Si j'ai une surface de 24m² par exemple avec des rouleaux de 10m², 5m² et 2m².
L'algo me sort 2 rouleaux de 10m² et 4m² restant à gérer.
Un rouleaux de 5m² compléterai la surface restante avec 1m² de reste.
Le problème :
Il me sélectionne 2 rouleaux de 2m² et moi j'aimerai un seul de 5m². (car le prix prix est plus avantageux et je pars du principe tarifaire qu'il est plus avantageux d'avoir un peu de reste que d'acheter le compte juste)
Voila, j'espère avoir été le plus clair possible, et merci d'avance à ceux qui aurait des pistes, voir des solutions
Partager