Bonjour,
j'ai un exercice de maths pour un DM.
"Un propriétaire de camping désire aménager son terrain avec des bungalows et des mobile-homes. La taille de son terrain lui impose un maximum de 50 installations. Il peut loger 6 personnes par bungalow et 4 par mobile-home. L'infrastructure du camping ne l'autorise pas à dépasser 240 clients. Enfin, un bungalow se loue 500 $ la semaine et un mobile-home 400$. On cherche à déterminer le nombre x de bungalows et le nombre y de mobile-homes que le propriétaire doit installer afin d'obtenir, lorsque le camping est complet, un bénéfice maximal."
Je dois faire un algorithme permettant de passer en revue tous les couples (x;y) répondant aux contraintes du pb et déterminer LE couple (xsol;ysol) assurant un bénéfice B maximal.
Dans la partie d'avant j'ai traité les contraintes, et j'ai trouvé, pour le nombre d'installations : x+y <= 50
Et pour le nombre de clients 6x+4y<=240.
Enfin, le bénéfice, j'ai trouvé, s'exprime ainsi : B=500x+400y
J'ai fourni mon algorithme en pièce jointe.
On nous dit qu'on peut par exemple utiliser deux boucles POUR et une instruction SI. Et là je bloque complètement, je ne vois pas vraiment ce qui ne va pas. Mais je trouve étrange que je n'utilise pas le 6x+4y<=240.
Si vous pouviez m'aider ça serait sympa ! Merci
Bonsoir,
Tu pourrais commencer par:
Pour x variant de 0 à 50
Pour y variant de 0 à 50-x
Si 6x+4y <=240 alors
.......
Bonsoir je joins mon algorithme qui ne fonctionne pas et je ne comprend pas pourquoi. Si vous pouviez m'aider ça serait super car c'est pour demain
Il ne faut pas faire
y prends la valeur 50-x
mais
pour y allant de 0 à 50-x
Car pour certaines valeurs de x, y ne pourra pas aller jusqu'a 50-x.
Après, il faut mémoriser le résultat de x, de y et B si 6x+4y est acceptable et B supérieur à la valeur mémorisée précédente de B.
Les boucles "pour" doivent être imbriquées.
Ça doit donner quelque chose comme ça.
Bmem=0
Pour x allant de 0 à 50
Pour y allant de 0 à 50-x
Si 6x+4y <=240
B=500x+400y
Si B>Bmem alors
Bmem=B
xmem=x
Ymem=y
Fin si
Fin pour
Fin pour
Afficher xmem, ymem et Bmem.
J'ai suivi les conseils et j'arrive à ça. Le problème est que l'algorithme m'affiche "dépassement de la capacité autorisée pour les boucles" comment je peux faire ?
Je viens d'essayer mais ça met ***Algorithme lancé***
***Algorithme interrompu ligne 24 : dépassement de la capacité autorisée pour les boucles***
y allant de 0 à 50-x
Pas de 0-x à 50-x.
Ce n'est pas "tant que", mais "si"
Puis, les mémorisation doivent se faire au milieu de la boucle. Juste après "b prend la valeur....."
A la fin tu ne fais que l'affichage.
Tu mémorises Bmax à chaque fois que B dépasse Bmax.
Au même moment, tu mémorises les valeurs de x et y correspondantes.
J'obtient xsol = 40, ysol =0 et bmax = 0 alors qu'on doit tomber sur xsol = 30, ysol = 20 et bmax = 22000 ...
Mémoriser, c'est ici affecter les vars de x , y, et b dans xmax, ymax et bmax. Les variables "max" sont les "memoires".
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :