Boucles while et for

Tout ce qui concerne le langage Asymptote. Ce langage est utilisable sur le forum via les balises asy.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Boucles while et for

Message non lu par maurice »

Bonsoir, les deux codes suivants sont censés donner le même résultat. Je préfèrerais la version avec while, mais je en sais pas ou est le problème !
Pourrez vous m'éclairer ?

Version avec for :
ea139bf4150ad67ee8c575980d6238ceb55ca957.svg
Version avec while :
57b8215d9a8ff64b1de88a723a31cfacf8658eb0.svg

C'est sans doute une erreur de débutant programmeur mais bon !
Merci

Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
OG
Modérateur spécialisé
Modérateur spécialisé
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Re: Boucles while et for

Message non lu par OG »

8c80844185e40f70ea72d60b1d724335a8d5ce2c.svg

O.G.
Tunaki
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 660
Inscription : mardi 12 décembre 2006, 18:03

Re: Boucles while et for

Message non lu par Tunaki »

Bonjour,

Je ne connais pas Asymptote mais je passais par là donc j'en profite pour te répondre. Le problème vient de ta condition pour rester dans le while. Après le premier tour de ta boucle sur $j$, tu as forcément $r\ne -1$ et donc tu ne peux plus entrer dans ta boucle "while" (tout du moins, une seule fois puisque tu utilises do...while, mais tu ne boucleras pas).
Tu devrais plutôt faire

Code : Tout sélectionner

do{k++;}while(!substr(clef, j, 1)==substr(alphabet, k, 1));
ent[j]=k;
Comme ça, en plus, tu n'as plus besoin de variable temporaire $r$.
maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Re: Boucles while et for

Message non lu par maurice »

Tunaki a écrit : Le problème vient de ta condition pour rester dans le while. Après le premier tour de ta boucle sur $j$, tu as forcément $r\ne -1$ et donc tu ne peux plus entrer dans ta boucle "while" (tout du moins, une seule fois puisque tu utilises do...while, mais tu ne boucleras pas).
Bon sang !!! Mais c'est bien sur !!!
Tunaki a écrit :Tu devrais plutôt faire

Code : Tout sélectionner

do{k++;}while(!substr(clef, j, 1)==substr(alphabet, k, 1));
ent[j]=k;
Comme ça, en plus, tu n'as plus besoin de variable temporaire $r$.
Merci beaucoup à Tunaki pour son explication et à OG pour avoir exhibé l'erreur de mon code !!!

On ne s'improvise pas programmeur !

maurice
Dernière modification par maurice le mardi 29 mars 2011, 22:25, modifié 1 fois.
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2042
Inscription : lundi 01 octobre 2007, 10:20

Re: Boucles while et for

Message non lu par GMaths »

Il me semble que ceci est .... ..... (il suffit de décoder pour le savoir :-))
42aee65369177f52620686dc7d98c5de6cff289a.svg
maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Re: Boucles while et for

Message non lu par maurice »

GMaths a écrit :Il me semble que ceci est .... ..... (il suffit de décoder pour le savoir :-))
Oui, mais je veux pouvoir réutiliser cette liste plus tard d'où le int[]. Je n'avais pas pensé à utiliser find, c'est à creuser ....

Merci

Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2042
Inscription : lundi 01 octobre 2007, 10:20

Re: Boucles while et for

Message non lu par GMaths »

maurice a écrit :Oui, mais je veux pouvoir réutiliser cette liste plus tard d'où le int[]. Je n'avais pas pensé à utiliser find, c'est à creuser ....
Il suffit de demander :
89e2b92b085b465d30a3e908c1abeb16ea378230.svg
maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Re: Boucles while et for

Message non lu par maurice »

Bonsoir et merci !

Efficacité, sobriété !!!
Je crois que ca m'être utile !
encore merci

Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
Répondre