bon celui la il a l'air de marcher.
J'ai pas verifier l'algo de firetox
J'ai essayé avec 4780 : c'est bon
avec 4781 : c'est pas bon.
notez le temps mis pour dire que c'est pas bon pour les gros nombres.
ET la le tableau ne fait que trois elements.
Notez aussi la compacite du code grace a une ecriture recursive plutot
qu'iterative...
---------------- code du bouton pour tester la fonction ------------
tb_a_tester est un tableau de 3 entiers
nb_a_tester est un entier
tb_a_tester[1]@
tb_a_tester[2]%
tb_a_tester[3]
nb_a_tester=Saisie1
SI tester_condi_recursif(tb_a_tester,3,nb_a_tester) ALORS
Info("c'est bon");
SINON
Info("c'est pas bon");
FIN
idx est un entier
POUR idx = 1 A 100000
SI tester_condi_recursif(tb_a_tester,3,idx) ALORS
Info(idx+" convient");
FIN
FIN
------------------ CODE INTERESSANT (a priori) ---------------
FONCTION tester_condi_recursif(tb_a_tester,taille_tb,nb_a_tester)
SI nb_a_tester = 0 ALORS RENVOYER Vrai
SI taille_tb = 1 ALORS
SI modulo(nb_a_tester,tb_a_tester[1]) = 0 ALORS
RENVOYER Vrai
SINON
RENVOYER Faux
FIN
FIN
idx est un entier
nb_occur est un entier = nb_a_tester / tb_a_tester[taille_tb]
SI tester_condi_recursif(tb_a_tester,taille_tb-1,nb_a_tester) ALORS
Vrai
POUR idx=nb_occur A 1 PAS -1
SI
ille_tb]) ALORS
RENVOYER Vrai
FIN
FIN
RENVOYER Faux
--
Fabrice Burghgraeve
Computer & Services
suivez ce lien pour me repondre en prive :
http://cerbermail.com/?I3GMPRuXDD
bon celui la il a l'air de marcher.
J'ai pas verifier l'algo de firetox
J'ai essayé avec 4780 : c'est bon
avec 4781 : c'est pas bon.
notez le temps mis pour dire que c'est pas bon pour les gros nombres.
ET la le tableau ne fait que trois elements.
Notez aussi la compacite du code grace a une ecriture recursive plutot
qu'iterative...
---------------- code du bouton pour tester la fonction ------------
tb_a_tester est un tableau de 3 entiers
nb_a_tester est un entier
tb_a_tester[1]@
tb_a_tester[2]%
tb_a_tester[3]
nb_a_tester=Saisie1
SI tester_condi_recursif(tb_a_tester,3,nb_a_tester) ALORS
Info("c'est bon");
SINON
Info("c'est pas bon");
FIN
idx est un entier
POUR idx = 1 A 100000
SI tester_condi_recursif(tb_a_tester,3,idx) ALORS
Info(idx+" convient");
FIN
FIN
------------------ CODE INTERESSANT (a priori) ---------------
FONCTION tester_condi_recursif(tb_a_tester,taille_tb,nb_a_tester)
SI nb_a_tester = 0 ALORS RENVOYER Vrai
SI taille_tb = 1 ALORS
SI modulo(nb_a_tester,tb_a_tester[1]) = 0 ALORS
RENVOYER Vrai
SINON
RENVOYER Faux
FIN
FIN
idx est un entier
nb_occur est un entier = nb_a_tester / tb_a_tester[taille_tb]
SI tester_condi_recursif(tb_a_tester,taille_tb-1,nb_a_tester) ALORS
Vrai
POUR idx=nb_occur A 1 PAS -1
SI
ille_tb]) ALORS
RENVOYER Vrai
FIN
FIN
RENVOYER Faux
--
Fabrice Burghgraeve
Computer & Services
suivez ce lien pour me repondre en prive :
http://cerbermail.com/?I3GMPRuXDD
bon celui la il a l'air de marcher.
J'ai pas verifier l'algo de firetox
J'ai essayé avec 4780 : c'est bon
avec 4781 : c'est pas bon.
notez le temps mis pour dire que c'est pas bon pour les gros nombres.
ET la le tableau ne fait que trois elements.
Notez aussi la compacite du code grace a une ecriture recursive plutot
qu'iterative...
---------------- code du bouton pour tester la fonction ------------
tb_a_tester est un tableau de 3 entiers
nb_a_tester est un entier
tb_a_tester[1]@
tb_a_tester[2]%
tb_a_tester[3]
nb_a_tester=Saisie1
SI tester_condi_recursif(tb_a_tester,3,nb_a_tester) ALORS
Info("c'est bon");
SINON
Info("c'est pas bon");
FIN
idx est un entier
POUR idx = 1 A 100000
SI tester_condi_recursif(tb_a_tester,3,idx) ALORS
Info(idx+" convient");
FIN
FIN
------------------ CODE INTERESSANT (a priori) ---------------
FONCTION tester_condi_recursif(tb_a_tester,taille_tb,nb_a_tester)
SI nb_a_tester = 0 ALORS RENVOYER Vrai
SI taille_tb = 1 ALORS
SI modulo(nb_a_tester,tb_a_tester[1]) = 0 ALORS
RENVOYER Vrai
SINON
RENVOYER Faux
FIN
FIN
idx est un entier
nb_occur est un entier = nb_a_tester / tb_a_tester[taille_tb]
SI tester_condi_recursif(tb_a_tester,taille_tb-1,nb_a_tester) ALORS
Vrai
POUR idx=nb_occur A 1 PAS -1
SI
ille_tb]) ALORS
RENVOYER Vrai
FIN
FIN
RENVOYER Faux
--
Fabrice Burghgraeve
Computer & Services
suivez ce lien pour me repondre en prive :
http://cerbermail.com/?I3GMPRuXDD
Oui c'est joli
mais le code de Bob lamar a ete donne
depuis longtemps, mais la on avance pas.
bon d'accord sur le fait que ca dise OK ou pas OK mais je suis alle plus
loin
et c'est la que ca coince : donnez la solution retenue pour dire oui
et la ca commence a devenir chaud : renvoyez le nombre de C1 de C2 et C3
voila
car ca fait longtemps que je sais repondre oui ou non mais faire revenir
solution
c'est plus difficile , comment choisir les cartons
en partant du principe qu'on veut le plus dans les plus gros et ansi de
suite.
je suis coince sur le fait que dans 110 il n'y a pas de fois 25 dans la
solution
donc ma procedure dit que c'est pas possible
a suivre
Oui c'est joli
mais le code de Bob lamar a ete donne
depuis longtemps, mais la on avance pas.
bon d'accord sur le fait que ca dise OK ou pas OK mais je suis alle plus
loin
et c'est la que ca coince : donnez la solution retenue pour dire oui
et la ca commence a devenir chaud : renvoyez le nombre de C1 de C2 et C3
voila
car ca fait longtemps que je sais repondre oui ou non mais faire revenir
solution
c'est plus difficile , comment choisir les cartons
en partant du principe qu'on veut le plus dans les plus gros et ansi de
suite.
je suis coince sur le fait que dans 110 il n'y a pas de fois 25 dans la
solution
donc ma procedure dit que c'est pas possible
a suivre
Oui c'est joli
mais le code de Bob lamar a ete donne
depuis longtemps, mais la on avance pas.
bon d'accord sur le fait que ca dise OK ou pas OK mais je suis alle plus
loin
et c'est la que ca coince : donnez la solution retenue pour dire oui
et la ca commence a devenir chaud : renvoyez le nombre de C1 de C2 et C3
voila
car ca fait longtemps que je sais repondre oui ou non mais faire revenir
solution
c'est plus difficile , comment choisir les cartons
en partant du principe qu'on veut le plus dans les plus gros et ansi de
suite.
je suis coince sur le fait que dans 110 il n'y a pas de fois 25 dans la
solution
donc ma procedure dit que c'est pas possible
a suivre
Bonjour,
Essayez ça :
// C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
// Attention il faut C3 > C2 > C1
// Q est la quantité commandée
mReste est un entier
Q1 est un entier // Nombre de C1
Q2 est un entier // Nombre de C2
Q3 est un entier // Nombre de C3
mReste = Q
CestBon est un booleen
CestBon = faux
BOUCLE
// Calcul du nombre de C3 possible
si mReste >= C3
// Max de C3 possible
Q3 = partieentiere(mReste / C3)
mReste = mReste - (Q3 * C3)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
// mReste < C3
si mReste >= C2
// Max de C2 possible
Q2 = partieentiere(mReste / C2)
mReste = mReste - (Q2 * C2)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si mReste >= C1
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si Q3 + Q2 = 0
bip
erreur("Conditionnement impossible.")
RETOUR
sinon
SORTIR
FIN
FIN
FIN
FIn
FIN
si CestBon = faux
BOUCLE
si Q2 > 0
Q2 = Q2 - 1
mReste = Q - Q3*C3 - Q2*C2
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si Q3 > 0
Q3 = Q3 - 1
mReste = Q - Q3*C3
// Max de C2
Q2 = partieentiere(mReste / C2)
mReste = mReste - (Q2 * C2)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
FIN
FIN
FIN
FIN
SI CestBon = Vrai
bip
info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
sinon
bip
erreur("Impossible à conditionner.")
FIN
@+ Laurent
Bonjour,
Essayez ça :
// C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
// Attention il faut C3 > C2 > C1
// Q est la quantité commandée
mReste est un entier
Q1 est un entier // Nombre de C1
Q2 est un entier // Nombre de C2
Q3 est un entier // Nombre de C3
mReste = Q
CestBon est un booleen
CestBon = faux
BOUCLE
// Calcul du nombre de C3 possible
si mReste >= C3
// Max de C3 possible
Q3 = partieentiere(mReste / C3)
mReste = mReste - (Q3 * C3)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
// mReste < C3
si mReste >= C2
// Max de C2 possible
Q2 = partieentiere(mReste / C2)
mReste = mReste - (Q2 * C2)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si mReste >= C1
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si Q3 + Q2 = 0
bip
erreur("Conditionnement impossible.")
RETOUR
sinon
SORTIR
FIN
FIN
FIN
FIn
FIN
si CestBon = faux
BOUCLE
si Q2 > 0
Q2 = Q2 - 1
mReste = Q - Q3*C3 - Q2*C2
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si Q3 > 0
Q3 = Q3 - 1
mReste = Q - Q3*C3
// Max de C2
Q2 = partieentiere(mReste / C2)
mReste = mReste - (Q2 * C2)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
FIN
FIN
FIN
FIN
SI CestBon = Vrai
bip
info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
sinon
bip
erreur("Impossible à conditionner.")
FIN
@+ Laurent
Bonjour,
Essayez ça :
// C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
// Attention il faut C3 > C2 > C1
// Q est la quantité commandée
mReste est un entier
Q1 est un entier // Nombre de C1
Q2 est un entier // Nombre de C2
Q3 est un entier // Nombre de C3
mReste = Q
CestBon est un booleen
CestBon = faux
BOUCLE
// Calcul du nombre de C3 possible
si mReste >= C3
// Max de C3 possible
Q3 = partieentiere(mReste / C3)
mReste = mReste - (Q3 * C3)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
// mReste < C3
si mReste >= C2
// Max de C2 possible
Q2 = partieentiere(mReste / C2)
mReste = mReste - (Q2 * C2)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si mReste >= C1
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si Q3 + Q2 = 0
bip
erreur("Conditionnement impossible.")
RETOUR
sinon
SORTIR
FIN
FIN
FIN
FIn
FIN
si CestBon = faux
BOUCLE
si Q2 > 0
Q2 = Q2 - 1
mReste = Q - Q3*C3 - Q2*C2
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si Q3 > 0
Q3 = Q3 - 1
mReste = Q - Q3*C3
// Max de C2
Q2 = partieentiere(mReste / C2)
mReste = mReste - (Q2 * C2)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
FIN
FIN
FIN
FIN
SI CestBon = Vrai
bip
info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
sinon
bip
erreur("Impossible à conditionner.")
FIN
@+ Laurent
Attention, si Q à une valeur comme par exemple 26, ton code boucle sans
Discret wrote:
> Bonjour,
>
> Essayez ça :
>
> // C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
> // Attention il faut C3 > C2 > C1
> // Q est la quantité commandée
>
> mReste est un entier
>
> Q1 est un entier // Nombre de C1
> Q2 est un entier // Nombre de C2
> Q3 est un entier // Nombre de C3
>
> mReste = Q
>
> CestBon est un booleen
> CestBon = faux
>
> BOUCLE
> // Calcul du nombre de C3 possible
> si mReste >= C3
> // Max de C3 possible
> Q3 = partieentiere(mReste / C3)
> mReste = mReste - (Q3 * C3)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> // mReste < C3
> si mReste >= C2
> // Max de C2 possible
> Q2 = partieentiere(mReste / C2)
> mReste = mReste - (Q2 * C2)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> si mReste >= C1
> // Max de C1
> Q1 = partieentiere(mReste / C1)
> mReste = mReste - (Q1 * C1)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> si Q3 + Q2 = 0
> bip
> erreur("Conditionnement impossible.")
> RETOUR
> sinon
> SORTIR
> FIN
> FIN
> FIN
> FIn
> FIN
>
> si CestBon = faux
> BOUCLE
> si Q2 > 0
> Q2 = Q2 - 1
> mReste = Q - Q3*C3 - Q2*C2
> // Max de C1
> Q1 = partieentiere(mReste / C1)
> mReste = mReste - (Q1 * C1)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> si Q3 > 0
> Q3 = Q3 - 1
> mReste = Q - Q3*C3
> // Max de C2
> Q2 = partieentiere(mReste / C2)
> mReste = mReste - (Q2 * C2)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> // Max de C1
> Q1 = partieentiere(mReste / C1)
> mReste = mReste - (Q1 * C1)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> Q1 = partieentiere(mReste / C1)
> mReste = mReste - (Q1 * C1)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> FIN
> FIN
> FIN
> FIN
>
> SI CestBon = Vrai
> bip
> info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
> sinon
> bip
> erreur("Impossible à conditionner.")
> FIN
>
> @+ Laurent
Attention, si Q à une valeur comme par exemple 26, ton code boucle sans
Discret wrote:
> Bonjour,
>
> Essayez ça :
>
> // C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
> // Attention il faut C3 > C2 > C1
> // Q est la quantité commandée
>
> mReste est un entier
>
> Q1 est un entier // Nombre de C1
> Q2 est un entier // Nombre de C2
> Q3 est un entier // Nombre de C3
>
> mReste = Q
>
> CestBon est un booleen
> CestBon = faux
>
> BOUCLE
> // Calcul du nombre de C3 possible
> si mReste >= C3
> // Max de C3 possible
> Q3 = partieentiere(mReste / C3)
> mReste = mReste - (Q3 * C3)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> // mReste < C3
> si mReste >= C2
> // Max de C2 possible
> Q2 = partieentiere(mReste / C2)
> mReste = mReste - (Q2 * C2)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> si mReste >= C1
> // Max de C1
> Q1 = partieentiere(mReste / C1)
> mReste = mReste - (Q1 * C1)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> si Q3 + Q2 = 0
> bip
> erreur("Conditionnement impossible.")
> RETOUR
> sinon
> SORTIR
> FIN
> FIN
> FIN
> FIn
> FIN
>
> si CestBon = faux
> BOUCLE
> si Q2 > 0
> Q2 = Q2 - 1
> mReste = Q - Q3*C3 - Q2*C2
> // Max de C1
> Q1 = partieentiere(mReste / C1)
> mReste = mReste - (Q1 * C1)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> si Q3 > 0
> Q3 = Q3 - 1
> mReste = Q - Q3*C3
> // Max de C2
> Q2 = partieentiere(mReste / C2)
> mReste = mReste - (Q2 * C2)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> // Max de C1
> Q1 = partieentiere(mReste / C1)
> mReste = mReste - (Q1 * C1)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> Q1 = partieentiere(mReste / C1)
> mReste = mReste - (Q1 * C1)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> FIN
> FIN
> FIN
> FIN
>
> SI CestBon = Vrai
> bip
> info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
> sinon
> bip
> erreur("Impossible à conditionner.")
> FIN
>
> @+ Laurent
Attention, si Q à une valeur comme par exemple 26, ton code boucle sans
Discret wrote:
> Bonjour,
>
> Essayez ça :
>
> // C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
> // Attention il faut C3 > C2 > C1
> // Q est la quantité commandée
>
> mReste est un entier
>
> Q1 est un entier // Nombre de C1
> Q2 est un entier // Nombre de C2
> Q3 est un entier // Nombre de C3
>
> mReste = Q
>
> CestBon est un booleen
> CestBon = faux
>
> BOUCLE
> // Calcul du nombre de C3 possible
> si mReste >= C3
> // Max de C3 possible
> Q3 = partieentiere(mReste / C3)
> mReste = mReste - (Q3 * C3)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> // mReste < C3
> si mReste >= C2
> // Max de C2 possible
> Q2 = partieentiere(mReste / C2)
> mReste = mReste - (Q2 * C2)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> si mReste >= C1
> // Max de C1
> Q1 = partieentiere(mReste / C1)
> mReste = mReste - (Q1 * C1)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> si Q3 + Q2 = 0
> bip
> erreur("Conditionnement impossible.")
> RETOUR
> sinon
> SORTIR
> FIN
> FIN
> FIN
> FIn
> FIN
>
> si CestBon = faux
> BOUCLE
> si Q2 > 0
> Q2 = Q2 - 1
> mReste = Q - Q3*C3 - Q2*C2
> // Max de C1
> Q1 = partieentiere(mReste / C1)
> mReste = mReste - (Q1 * C1)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> si Q3 > 0
> Q3 = Q3 - 1
> mReste = Q - Q3*C3
> // Max de C2
> Q2 = partieentiere(mReste / C2)
> mReste = mReste - (Q2 * C2)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> // Max de C1
> Q1 = partieentiere(mReste / C1)
> mReste = mReste - (Q1 * C1)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> sinon
> Q1 = partieentiere(mReste / C1)
> mReste = mReste - (Q1 * C1)
> si mReste = 0
> CestBon = Vrai
> SORTIR
> FIN
> FIN
> FIN
> FIN
> FIN
>
> SI CestBon = Vrai
> bip
> info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
> sinon
> bip
> erreur("Impossible à conditionner.")
> FIN
>
> @+ Laurent
salut.
"Firetox" a écrit dans le message de
news:bpdai2$5mf$
> Oui c'est joli
>
> mais le code de Bob lamar a ete donne
> depuis longtemps, mais la on avance pas.
desole j'ai pas vu j'ai du le rater dans tout le thread...
>
> bon d'accord sur le fait que ca dise OK ou pas OK mais je suis alle plus
> loin
> et c'est la que ca coince : donnez la solution retenue pour dire oui
> et la ca commence a devenir chaud : renvoyez le nombre de C1 de C2 et C3
bof. j'te fais ca tout de suite (disons dans 10 minutes)
comme je le disais, le probleme est le meme...
salut.
"Firetox" <emprin.frederic@freesbee.fr> a écrit dans le message de
news:bpdai2$5mf$1@s1.read.news.oleane.net...
> Oui c'est joli
>
> mais le code de Bob lamar a ete donne
> depuis longtemps, mais la on avance pas.
desole j'ai pas vu j'ai du le rater dans tout le thread...
>
> bon d'accord sur le fait que ca dise OK ou pas OK mais je suis alle plus
> loin
> et c'est la que ca coince : donnez la solution retenue pour dire oui
> et la ca commence a devenir chaud : renvoyez le nombre de C1 de C2 et C3
bof. j'te fais ca tout de suite (disons dans 10 minutes)
comme je le disais, le probleme est le meme...
salut.
"Firetox" a écrit dans le message de
news:bpdai2$5mf$
> Oui c'est joli
>
> mais le code de Bob lamar a ete donne
> depuis longtemps, mais la on avance pas.
desole j'ai pas vu j'ai du le rater dans tout le thread...
>
> bon d'accord sur le fait que ca dise OK ou pas OK mais je suis alle plus
> loin
> et c'est la que ca coince : donnez la solution retenue pour dire oui
> et la ca commence a devenir chaud : renvoyez le nombre de C1 de C2 et C3
bof. j'te fais ca tout de suite (disons dans 10 minutes)
comme je le disais, le probleme est le meme...
Fort Juste !
Petite modif sur la fin :
// C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
// Attention il faut C3 > C2 > C1
// Q est la quantité commandée
mReste est un entier
Q1 est un entier // Nombre de C1
Q2 est un entier // Nombre de C2
Q3 est un entier // Nombre de C3
mReste = Q
CestBon est un booleen
CestBon = faux
stop
BOUCLE
// Calcul du nombre de C3 possible
si mReste >= C3
// Max de C3 possible
Q3 = partieentiere(mReste / C3)
mReste = mReste - (Q3 * C3)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
// mReste < C3
si mReste >= C2
// Max de C2 possible
Q2 = partieentiere(mReste / C2)
mReste = mReste - (Q2 * C2)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si mReste >= C1
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si Q3 + Q2 = 0
bip
erreur("Conditionnement impossible.")
RETOUR
sinon
SORTIR
FIN
FIN
FIN
FIn
FIN
si CestBon = faux
BOUCLE
si Q2 > 0
Q2 = Q2 - 1
mReste = Q - Q3*C3 - Q2*C2
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si Q3 > 0
Q3 = Q3 - 1
mReste = Q - Q3*C3
// Max de C2
Q2 = partieentiere(mReste / C2)
mReste = mReste - (Q2 * C2)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
si Q3 + Q2 = 0
SORTIR
FIN
FIN
FIN
FIN
FIN
SI CestBon = Vrai
bip
info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
sinon
bip
erreur("Impossible à conditionner.")
FIN
Fort Juste !
Petite modif sur la fin :
// C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
// Attention il faut C3 > C2 > C1
// Q est la quantité commandée
mReste est un entier
Q1 est un entier // Nombre de C1
Q2 est un entier // Nombre de C2
Q3 est un entier // Nombre de C3
mReste = Q
CestBon est un booleen
CestBon = faux
stop
BOUCLE
// Calcul du nombre de C3 possible
si mReste >= C3
// Max de C3 possible
Q3 = partieentiere(mReste / C3)
mReste = mReste - (Q3 * C3)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
// mReste < C3
si mReste >= C2
// Max de C2 possible
Q2 = partieentiere(mReste / C2)
mReste = mReste - (Q2 * C2)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si mReste >= C1
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si Q3 + Q2 = 0
bip
erreur("Conditionnement impossible.")
RETOUR
sinon
SORTIR
FIN
FIN
FIN
FIn
FIN
si CestBon = faux
BOUCLE
si Q2 > 0
Q2 = Q2 - 1
mReste = Q - Q3*C3 - Q2*C2
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si Q3 > 0
Q3 = Q3 - 1
mReste = Q - Q3*C3
// Max de C2
Q2 = partieentiere(mReste / C2)
mReste = mReste - (Q2 * C2)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
si Q3 + Q2 = 0
SORTIR
FIN
FIN
FIN
FIN
FIN
SI CestBon = Vrai
bip
info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
sinon
bip
erreur("Impossible à conditionner.")
FIN
Fort Juste !
Petite modif sur la fin :
// C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
// Attention il faut C3 > C2 > C1
// Q est la quantité commandée
mReste est un entier
Q1 est un entier // Nombre de C1
Q2 est un entier // Nombre de C2
Q3 est un entier // Nombre de C3
mReste = Q
CestBon est un booleen
CestBon = faux
stop
BOUCLE
// Calcul du nombre de C3 possible
si mReste >= C3
// Max de C3 possible
Q3 = partieentiere(mReste / C3)
mReste = mReste - (Q3 * C3)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
// mReste < C3
si mReste >= C2
// Max de C2 possible
Q2 = partieentiere(mReste / C2)
mReste = mReste - (Q2 * C2)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si mReste >= C1
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si Q3 + Q2 = 0
bip
erreur("Conditionnement impossible.")
RETOUR
sinon
SORTIR
FIN
FIN
FIN
FIn
FIN
si CestBon = faux
BOUCLE
si Q2 > 0
Q2 = Q2 - 1
mReste = Q - Q3*C3 - Q2*C2
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
si Q3 > 0
Q3 = Q3 - 1
mReste = Q - Q3*C3
// Max de C2
Q2 = partieentiere(mReste / C2)
mReste = mReste - (Q2 * C2)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
// Max de C1
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
sinon
Q1 = partieentiere(mReste / C1)
mReste = mReste - (Q1 * C1)
si mReste = 0
CestBon = Vrai
SORTIR
FIN
si Q3 + Q2 = 0
SORTIR
FIN
FIN
FIN
FIN
FIN
SI CestBon = Vrai
bip
info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
sinon
bip
erreur("Impossible à conditionner.")
FIN
C'est nickel chrome.
Bravo !
Peux-tu aussi donner l'age du capitaine ?
C'est nickel chrome.
Bravo !
Peux-tu aussi donner l'age du capitaine ?
C'est nickel chrome.
Bravo !
Peux-tu aussi donner l'age du capitaine ?
C'est nickel chrome.
Bravo !
Peux-tu aussi donner l'age du capitaine ?
Discret wrote:
> Fort Juste !
>
> Petite modif sur la fin :
>
> // C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
> // Attention il faut C3 > C2 > C1
> // Q est la quantité commandée
>
> mReste est un entier
>
> Q1 est un entier // Nombre de C1
> Q2 est un entier // Nombre de C2
> Q3 est un entier // Nombre de C3
>
> mReste = Q
>
> CestBon est un booleen
> CestBon = faux
> SORTIR
> FIN
> FIN
> FIN
> FIN
> FIN
>
> SI CestBon = Vrai
> bip
> info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
> sinon
> bip
> erreur("Impossible à conditionner.")
> FIN
C'est nickel chrome.
Bravo !
Peux-tu aussi donner l'age du capitaine ?
Discret wrote:
> Fort Juste !
>
> Petite modif sur la fin :
>
> // C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
> // Attention il faut C3 > C2 > C1
> // Q est la quantité commandée
>
> mReste est un entier
>
> Q1 est un entier // Nombre de C1
> Q2 est un entier // Nombre de C2
> Q3 est un entier // Nombre de C3
>
> mReste = Q
>
> CestBon est un booleen
> CestBon = faux
> SORTIR
> FIN
> FIN
> FIN
> FIN
> FIN
>
> SI CestBon = Vrai
> bip
> info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
> sinon
> bip
> erreur("Impossible à conditionner.")
> FIN
C'est nickel chrome.
Bravo !
Peux-tu aussi donner l'age du capitaine ?
Discret wrote:
> Fort Juste !
>
> Petite modif sur la fin :
>
> // C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
> // Attention il faut C3 > C2 > C1
> // Q est la quantité commandée
>
> mReste est un entier
>
> Q1 est un entier // Nombre de C1
> Q2 est un entier // Nombre de C2
> Q3 est un entier // Nombre de C3
>
> mReste = Q
>
> CestBon est un booleen
> CestBon = faux
> SORTIR
> FIN
> FIN
> FIN
> FIN
> FIN
>
> SI CestBon = Vrai
> bip
> info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
> sinon
> bip
> erreur("Impossible à conditionner.")
> FIN
Bonsoir à tous,
Petit casse-tête entre amis...
Je voudrais dans une appli obliger de choisir une quantité qui doit être
combinaison d'emballages possibles.
Comme chacun sait qu'un bon exemple vaut tous les discours...
J'ai des assiettes que je peux conditionner par 15, 25, 40. Dans une
rubrique texte, on met alors
25/15/40 pour dire que 25 sera la quantité par défaut et les autres des
alternatives.
On peut bien évidemment mélanger plusieurs emballages...
Quels quantités sont valides ?
10 non... ne correspond à aucun conditionnement
15 oui facile
20 non, 1 x 15 puis ???
30 oui, 2 x 15
45 oui, 3 x 15
48 non
50 oui, 2 x 25
55 oui, 2 x 15 + 1 x 25
60 oui, 4 x 15
65, oui 1 x 40 + 1 x 25 ou 2 x 25 + 1 x 15
69, non
... Et ainsi de suite
Comment feriez vous une fonction qui me renverrait Vrai/Faux en lui
2 paramètres : "Quantité" (60) et "chaine de conditionnement" (25/15/40)
salut.
"Eric LAURENT" a écrit dans le message de
news:bpdft8$m9k$
> C'est nickel chrome.
> Bravo !
>
> Peux-tu aussi donner l'age du capitaine ?
>
euh j'ai des problemes de synchro, donc je perds completment le fil
(jeu de mot pourri avec thread sans le faire expres :-p )
Je vois meme pas le rapport avec le fil que j'ai initie...
C'est nickel chrome cette methode ?
J'avais cru comprendre que le nombre de conditionnement pouvait etre
variable.
(mais j'ai mem pas le post initial alors j'ai peut-etre mal compris)
Cette methode ne marche pas si il y a 5 conditionnements.
On peut l'étendre, mais ca fait une tartine pas possible.
et en plus apres il peut y avoir 6 conditionnements...
avec le bout de code que j'ai donne, tu passes un tableau de taille de
conditionnement de la taille que tu veux, ca marche...
Juste ce que j'ai pas fait, c'est de transformer la chaine 25/15/40 en
tableau d'entiers mais c'est pas la le probleme...
>
> Discret wrote:
> > Fort Juste !
> >
> > Petite modif sur la fin :
> >
> > // C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
> > // Attention il faut C3 > C2 > C1
> > // Q est la quantité commandée
> >
> > mReste est un entier
> >
> > Q1 est un entier // Nombre de C1
> > Q2 est un entier // Nombre de C2
> > Q3 est un entier // Nombre de C3
> >
> > mReste = Q
> >
> > CestBon est un booleen
> > CestBon = faux
(...)
> > SORTIR
> > FIN
> > FIN
> > FIN
> > FIN
> > FIN
> >
> > SI CestBon = Vrai
> > bip
> > info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
> > sinon
> > bip
> > erreur("Impossible à conditionner.")
> > FIN
--
Fabrice Burghgraeve
Computer & Services
suivez ce lien pour me repondre en prive :
http://cerbermail.com/?I3GMPRuXDD
Bonsoir à tous,
Petit casse-tête entre amis...
Je voudrais dans une appli obliger de choisir une quantité qui doit être
combinaison d'emballages possibles.
Comme chacun sait qu'un bon exemple vaut tous les discours...
J'ai des assiettes que je peux conditionner par 15, 25, 40. Dans une
rubrique texte, on met alors
25/15/40 pour dire que 25 sera la quantité par défaut et les autres des
alternatives.
On peut bien évidemment mélanger plusieurs emballages...
Quels quantités sont valides ?
10 non... ne correspond à aucun conditionnement
15 oui facile
20 non, 1 x 15 puis ???
30 oui, 2 x 15
45 oui, 3 x 15
48 non
50 oui, 2 x 25
55 oui, 2 x 15 + 1 x 25
60 oui, 4 x 15
65, oui 1 x 40 + 1 x 25 ou 2 x 25 + 1 x 15
69, non
... Et ainsi de suite
Comment feriez vous une fonction qui me renverrait Vrai/Faux en lui
2 paramètres : "Quantité" (60) et "chaine de conditionnement" (25/15/40)
salut.
"Eric LAURENT" <laurent.systel@wanadoo.fr> a écrit dans le message de
news:bpdft8$m9k$1@news-reader4.wanadoo.fr...
> C'est nickel chrome.
> Bravo !
>
> Peux-tu aussi donner l'age du capitaine ?
>
euh j'ai des problemes de synchro, donc je perds completment le fil
(jeu de mot pourri avec thread sans le faire expres :-p )
Je vois meme pas le rapport avec le fil que j'ai initie...
C'est nickel chrome cette methode ?
J'avais cru comprendre que le nombre de conditionnement pouvait etre
variable.
(mais j'ai mem pas le post initial alors j'ai peut-etre mal compris)
Cette methode ne marche pas si il y a 5 conditionnements.
On peut l'étendre, mais ca fait une tartine pas possible.
et en plus apres il peut y avoir 6 conditionnements...
avec le bout de code que j'ai donne, tu passes un tableau de taille de
conditionnement de la taille que tu veux, ca marche...
Juste ce que j'ai pas fait, c'est de transformer la chaine 25/15/40 en
tableau d'entiers mais c'est pas la le probleme...
>
> Discret wrote:
> > Fort Juste !
> >
> > Petite modif sur la fin :
> >
> > // C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
> > // Attention il faut C3 > C2 > C1
> > // Q est la quantité commandée
> >
> > mReste est un entier
> >
> > Q1 est un entier // Nombre de C1
> > Q2 est un entier // Nombre de C2
> > Q3 est un entier // Nombre de C3
> >
> > mReste = Q
> >
> > CestBon est un booleen
> > CestBon = faux
(...)
> > SORTIR
> > FIN
> > FIN
> > FIN
> > FIN
> > FIN
> >
> > SI CestBon = Vrai
> > bip
> > info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
> > sinon
> > bip
> > erreur("Impossible à conditionner.")
> > FIN
--
Fabrice Burghgraeve
Computer & Services
suivez ce lien pour me repondre en prive :
http://cerbermail.com/?I3GMPRuXDD
Bonsoir à tous,
Petit casse-tête entre amis...
Je voudrais dans une appli obliger de choisir une quantité qui doit être
combinaison d'emballages possibles.
Comme chacun sait qu'un bon exemple vaut tous les discours...
J'ai des assiettes que je peux conditionner par 15, 25, 40. Dans une
rubrique texte, on met alors
25/15/40 pour dire que 25 sera la quantité par défaut et les autres des
alternatives.
On peut bien évidemment mélanger plusieurs emballages...
Quels quantités sont valides ?
10 non... ne correspond à aucun conditionnement
15 oui facile
20 non, 1 x 15 puis ???
30 oui, 2 x 15
45 oui, 3 x 15
48 non
50 oui, 2 x 25
55 oui, 2 x 15 + 1 x 25
60 oui, 4 x 15
65, oui 1 x 40 + 1 x 25 ou 2 x 25 + 1 x 15
69, non
... Et ainsi de suite
Comment feriez vous une fonction qui me renverrait Vrai/Faux en lui
2 paramètres : "Quantité" (60) et "chaine de conditionnement" (25/15/40)
salut.
"Eric LAURENT" a écrit dans le message de
news:bpdft8$m9k$
> C'est nickel chrome.
> Bravo !
>
> Peux-tu aussi donner l'age du capitaine ?
>
euh j'ai des problemes de synchro, donc je perds completment le fil
(jeu de mot pourri avec thread sans le faire expres :-p )
Je vois meme pas le rapport avec le fil que j'ai initie...
C'est nickel chrome cette methode ?
J'avais cru comprendre que le nombre de conditionnement pouvait etre
variable.
(mais j'ai mem pas le post initial alors j'ai peut-etre mal compris)
Cette methode ne marche pas si il y a 5 conditionnements.
On peut l'étendre, mais ca fait une tartine pas possible.
et en plus apres il peut y avoir 6 conditionnements...
avec le bout de code que j'ai donne, tu passes un tableau de taille de
conditionnement de la taille que tu veux, ca marche...
Juste ce que j'ai pas fait, c'est de transformer la chaine 25/15/40 en
tableau d'entiers mais c'est pas la le probleme...
>
> Discret wrote:
> > Fort Juste !
> >
> > Petite modif sur la fin :
> >
> > // C1 C2 et C3sont les conditionnements (15 25 40 par exemple)
> > // Attention il faut C3 > C2 > C1
> > // Q est la quantité commandée
> >
> > mReste est un entier
> >
> > Q1 est un entier // Nombre de C1
> > Q2 est un entier // Nombre de C2
> > Q3 est un entier // Nombre de C3
> >
> > mReste = Q
> >
> > CestBon est un booleen
> > CestBon = faux
(...)
> > SORTIR
> > FIN
> > FIN
> > FIN
> > FIN
> > FIN
> >
> > SI CestBon = Vrai
> > bip
> > info(Q3 + "*" + C3 + " + " + Q2 + "*" + C2 + " + " + Q1 + "*" + C1)
> > sinon
> > bip
> > erreur("Impossible à conditionner.")
> > FIN
--
Fabrice Burghgraeve
Computer & Services
suivez ce lien pour me repondre en prive :
http://cerbermail.com/?I3GMPRuXDD