Exécuter plusieurs commandes dans un script

Rousseau-Wallon shared this question 1 year ago
Needs Answer

Bonjour,

J'ai un script qui contient une ligne Répéter[n, Exécute (...)]

Il marche tout le temps lorsque la commande Exécute est complétée par le texte T1 seul, par le texte T2 seul, ou par le texte T3 seul.

Il marche pour n<4 lorsque je le complète par deux de ces trois textes.

Il marche pour n<3 seulement quand je fais Exécute ({"T1","T2","T3"}), autant dire qu'il plante.

Pourquoi ?

est-ce à cause de la longueurs des textes T (chacun fait environ 200 caractères) ?

vu qu'il marche séparément pour chacun des textes j'ai essayé de faire trois scripts mais ça plante aussi

Comments (7)

photo
1

Je ne comprends pas cette question. Et je ne pense pas être le seul.

photo
1

Dans mon script GeoGebra si j'écris :


Répéter[3, Exécute ({"T1"})] ça marche,

Répéter[17, Exécute ({"T2"})] ça marche,

Répéter[38, Exécute ({"T3"})] ou Répéter[223, Exécute ({"T3"})] ça marche


quand j'écris Répéter[3, Exécute ({"T1"}, {"T2"})] ça marche,

mais pas Répéter[4, Exécute ({"T1"}, {"T2"})],


quand j'écris Répéter[2, Exécute ({"T1"}, {"T2"}, {"T3"})] ça marche,

mais pas Répéter[3, Exécute ({"T1"}, {"T2"}, {"T3"})]


et il n'y a pas d'interférence entre les commandes T1, T2 et T3

photo
1

essayer

Exécute({"T1", "T2"}) or Exécute ({"T1", "T2", "T3"})

où T1, T2 et T3 sont des commandes de script valides en anglais

en cas d'échec, envoyez le fichier GGB

photo
1

J'ai essayé mille choses, soit ça plante lorsque le nombre n d'itérations dépasse 2 (!), soit la première commande koch0 seulement est exécutée

(avec Exécute(koch0) par exemple ça marche)

il faut que koch0, koch120 et koch240 soient exécutées une fois et une seule à chaque itération de Répéter.


voir le script GeoGebra nommé script


(et ce n'est pas un problème de taille de listes car si on fait dans le script:

SoitValeur(L0,{X,Y,Z,X})

puis exécute(koch0) ça marche (sauf que le flocon ne se referme pas à cause de la commande Unique qui empêche que le premeir élément de L0 soit aussi son dernier)


PS : SoitValeur(n-{old},n) doit être à la fin du script, erreur de manip lors de l'envoi

photo
1

Respect, très bon applet.

----------------------------------------


  • If(lnzoom>n_{old}, If(n>0, Repeat(n, SetValue(i,i+1), Execute(kochL0), Execute(kochL120), Execute(kochL240))))

"Execute" appelle seulement 1 liste (pas n listes) avec n commandes de script (sous forme de texte)

.

alternatif (1002):


  • If(lnzoom>n_{old}, If(n>0, Repeat(n, SetValue(i,i+1), Execute(Join(kochL0, kochL120, kochL240)))))

------------------------------------------------------------------------

script = Corner(2)

seulement "2" implémentent tous les changements de fenêtres

vérifier avec changer la taille de la fenêtre à gauche / droite et en bas / en haut

----------------------------------------------------------------------

Je pense que dans GGB 5.0, vous avez besoin d'un "timeOut" au "initial-time" de l'applet

-----------------------------------------------------------------------

Il est maintenant possible de trouver le reste des bugs, beaucoup de succès.

Tout le monde peut apprendre la programmation. L'art de la programmation commence par reconnaître et corriger les erreurs.

photo
1

OK pour corner2

Je ne sais pas si c'est à cause du timeOut qui fait défaut, mais pour moi votre fichier ne marche pas quand la profondeur dépasse 6 ou 7 : un message d'erreur concernant la fonction Est dans Région apparaît (c'était aussi souvent ce que j'avais avec mon fichier exécute).

J'ai (peut-être) trouvé une solution. Code pour Script :

SoitValeur(L0,{X,Y,Z,X})

puis exécute(kochL0) seulement

avec "If(Element(L0,1)==X, Append(L0,X)" ajouté à kochL0, ce qui permet de refermer le flocon


de plus il y un autre (petit) problème : mon minicadre panique quand on zoome trop fort..

photo
1

votre dernière version semble fonctionner dans mon environnement (Windows10, GGB 5.0.507)

sauf que:


  • Inital-Time (4 fois le message d'erreur: 0d7d0c90103df6f581f42b68a2bee9eddans GGB 5.0 est un problème dans le "initial-time" les fenêtres commencent avec la taille 0
  • If object "zoom" < 1 (mais est ok de 1,12 à plus de 10000)

mais je n"ai pas testé intensif

-

© 2020 International GeoGebra Institute