Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
anthony.canu
Inscrit le: 22 Avr 2011 Messages: 16
|
Posté le: 29 Avr 2016 11:53 Sujet du message: Barre de progression lors de l'exécution d'une boucle for |
|
|
Bonjour,
Je viens de lancer l'exécution d'une grosse boucle for du type :
for i from 1 to 500000 do ...
Le soucis c'est que l'exécution à pris plus de 13h et pendant ces 13h, il était impossible de savoir ou en était la boucle en terme de progression.
Existe t il un moyen d'avoir un indicateur sur l'état de progression à l'instar des fameuses barres de téléchargement qui nous indiquent l'état de progression du téléchargement ?
Cordialement
Anthony |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 30 Avr 2016 8:06 Sujet du message: |
|
|
Bonjour,
Dans les composantes proposées dans la partie gauche de la feuille Maple 2015, point de barre de progression trouvée.
Tu peux afficher la valeur de i avec print(i) dans la boucle, si tu veux n'afficher par exemple que de 1000 en 1000 les valeurs de i, tu fais :
Code: |
for i from 1 to 500000 do
> if i mod 1000 =0 then print(i) fi:
> # votre code ici .....
> od;
|
@+ |
|
Revenir en haut de page |
|
 |
anthony.canu
Inscrit le: 22 Avr 2011 Messages: 16
|
Posté le: 30 Avr 2016 9:31 Sujet du message: |
|
|
ALS a écrit: |
Code: |
for i from 1 to 500000 do
> if i mod 1000 =0 then print(i) fi:
> # votre code ici .....
> od;
|
@+ |
Bonjour ALS,
Votre code marche du feu de dieu merci.
Après essais, il apparaît que le temps d'exécution de ma boucle dépend directement de la taille de Digits.
Je dois donc adapter la taille de Digits en fonction de la valeur de i de la façon suivante Digits :=100+floor(sqrt(i))
Le soucis c'est qu'en écrivant ceci, Maple print à chaque itération "Digits:=qqch" ce qui m'embête. Existe t il un moyen de ne pas printer ça une sorte de masque ?
Cordialement
Anthony |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 01 Mai 2016 7:38 Sujet du message: |
|
|
Bonjour,
Pour ne pas imprimer en cours d'exécution de la boucle, si celle-ci se termine par end do; ou od; remplacer par end do: ou od:
Donc en général on remplace ; par :
ALS |
|
Revenir en haut de page |
|
 |
anthony.canu
Inscrit le: 22 Avr 2011 Messages: 16
|
Posté le: 01 Mai 2016 9:53 Sujet du message: |
|
|
ALS a écrit: | Bonjour,
Pour ne pas imprimer en cours d'exécution de la boucle, si celle-ci se termine par end do; ou od; remplacer par end do: ou od:
Donc en général on remplace ; par :
ALS | merci ! |
|
Revenir en haut de page |
|
 |
|