Après quelques tests, je ne vois pas beaucoup d'améliorations possibles.
La seule chose que je te suggèrerais serait de séparer les sous programmes "calc1" à"calc4" plutôt que de les réécrire à chaque fois. Cela devrait améliorer significativement le temps de calcul car une fois qu'ils sont écrits et utilisés une fois, les programmes sont plus efficaces. Si au contraire, tu les réécris à chaque fois, la calculette est obligée de les retokeniser et donc cela prend un peu de temps.
Ensuite, tu ne pourras pas compresser le temps de résolution (5 solve, ça prend quand même un peu de temps).
Donc il est normal de tomber sur un temps de 10 à 15 secondes, ce que je constate avec l'amélioration que je viens de citer.
On peut bien sûr trouver quelques détails supplémentaires pour améliorer la programmation, parmi lesquels, en vrac :
- passer les paramètres en arguments plutôt qu'en variables globales,
- effacer les variables globales utilisées,
- se placer dans le dossier "aero" systématiquement au début et revenir au dossier courant à la fin (pour éviter de laisser traîner des variables partout)
- remettre en l'état les paramètres de la calculatrice qui ont été modifiés,
- utiliser les structures "if... then... (elseif... elseif...) else...endif" plutôt que des branchements (Goto)
- utiliser les structures "request" plutôt que les popup pour les différents paramètres (cela évite en plus de donner 2 fois le même paramètre, chose qui n'est pas vérifiée)
Mais tout ça n'améliorera que peu le temps de calcul.
En revanche, le programme sera beaucoup plus propre et plus agréable pour l'utilisateur...
programme trop lent
33 posts
• Page 2 of 4 • 1, 2, 3, 4
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: programme trop lent
bonsoir,
merci pour le temps que tu a passé sur mon probléme surtout sachant que ça n'est pas la première fois que tu m'aide sur ce programme, cependant mon probléme reste entier mon programme est trop long à exécution environ 10s sur tiemu mais environ 30s sur la calculette! les programmes calc1 à 4 ne serait-il pas plus efficace en C et surtout est il possible de les traduire en C lisible par la 89 titanium?
Hermes
merci pour le temps que tu a passé sur mon probléme surtout sachant que ça n'est pas la première fois que tu m'aide sur ce programme, cependant mon probléme reste entier mon programme est trop long à exécution environ 10s sur tiemu mais environ 30s sur la calculette! les programmes calc1 à 4 ne serait-il pas plus efficace en C et surtout est il possible de les traduire en C lisible par la 89 titanium?
Hermes
-
hermes
Niveau 8: ER (Espèce Rare: nerd)- Posts: 73
- Joined: 06 Sep 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Maitrise à Montréal
Re: programme trop lent
les programmes calc1 à 4 ne serait-il pas plus efficace en C
Pas significativement, comme je l'ai écrit plus haut

Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
-
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)- Posts: 6869
- Joined: 23 Dec 2009, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: -
- GitHub: debrouxl
Re: programme trop lent
Le défi m'a plu alors j'ai réécrit presque tout le programme.
Je suis en train de tout essayer pour ne faire qu'un seul solve au lieu de 4.
Je te ferai savoir si ça marche.
De ton côté, essaie de virer les lignes faisant réécrire les programmes calc1 à 4 à chaque fois (en vérifiant d'abord qu'ils sont bien enregistrés quelque part). Tu constateras que le calcul est bien plus rapide. Je n'atteins jamais plus de 15 secondes.
Je suis en train de tout essayer pour ne faire qu'un seul solve au lieu de 4.
Je te ferai savoir si ça marche.
De ton côté, essaie de virer les lignes faisant réécrire les programmes calc1 à 4 à chaque fois (en vérifiant d'abord qu'ils sont bien enregistrés quelque part). Tu constateras que le calcul est bien plus rapide. Je n'atteins jamais plus de 15 secondes.
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: programme trop lent
Bon, voilà, j'en suis arrivé à un programme 2 fois plus petit, sans faute d'orthographe et plus ergonomique. Il ne laisse aucune trace (sauf le résultat dans la variable "air"), teste toutes les erreurs éventuelles de frappe, et surtout il met moins de 10 secondes.
Le seul calcul qui est vraiment long est en fait le calcul de "theta_h" (la température humide, je suppose) à la fin.
Il resterait à détailler les résultats... mais c'est facile à modifier.
Je l'ajoute à ce post :
Le seul calcul qui est vraiment long est en fait le calcul de "theta_h" (la température humide, je suppose) à la fin.
Il resterait à détailler les résultats... mais c'est facile à modifier.
Je l'ajoute à ce post :
You do not have the required permissions to view the files attached to this post.
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: programme trop lent
bonjour,
merci pour ce magnifique travail !!!
En effet beaucoup plus rapide.
Hermès
merci pour ce magnifique travail !!!
En effet beaucoup plus rapide.
Hermès
Last edited by hermes on 15 Feb 2012, 14:55, edited 1 time in total.
-
hermes
Niveau 8: ER (Espèce Rare: nerd)- Posts: 73
- Joined: 06 Sep 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Maitrise à Montréal
Re: programme trop lent
bonjour,
Après utilisation j'ai découvert un petit problème les données qui sont restitué dans "air" n'ont pas toute le même format certaine sont des valeurs d'autres des chaînes de caractère cela créé une autre erreur : si on met comme donné h et r on ne peut plus avoir les valeurs thêta h et thêta r en fin de programme ou puis je modifier le programme:
-au début : après la demande des inconnus
-a la fin : après la résolution des équations.
il y a certaine ligne que je ne comprend pas !!!
Hermès
Après utilisation j'ai découvert un petit problème les données qui sont restitué dans "air" n'ont pas toute le même format certaine sont des valeurs d'autres des chaînes de caractère cela créé une autre erreur : si on met comme donné h et r on ne peut plus avoir les valeurs thêta h et thêta r en fin de programme ou puis je modifier le programme:
-au début : après la demande des inconnus
-a la fin : après la résolution des équations.
il y a certaine ligne que je ne comprend pas !!!
Hermès
-
hermes
Niveau 8: ER (Espèce Rare: nerd)- Posts: 73
- Joined: 06 Sep 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Maitrise à Montréal
Re: programme trop lent
Ah oui, j'avais oublié de modifier cela, en pensant que le résultat n'était pas important.
Il suffit de peu de transformations mais c'est difficile à expliquer.
De toute façon, j'étais en train d'améliorer encore le programme.
Je te donne la nouvelle version sous peu.
Il suffit de peu de transformations mais c'est difficile à expliquer.
De toute façon, j'étais en train d'améliorer encore le programme.
Je te donne la nouvelle version sous peu.
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
Re: programme trop lent
bonjour,
les résultats on une certaine importance car je réutilise ce programme au sein d'autre programme. ex dimensionnement de batterie chaude froide etc
Hermès
les résultats on une certaine importance car je réutilise ce programme au sein d'autre programme. ex dimensionnement de batterie chaude froide etc
Hermès
-
hermes
Niveau 8: ER (Espèce Rare: nerd)- Posts: 73
- Joined: 06 Sep 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Maitrise à Montréal
Re: programme trop lent
En attendant, tu peux rajouter ces lignes à la fin du programme.
Ce n'est pas très propre, mais ça fonctionne.
Ce n'est pas très propre, mais ça fonctionne.
- Code: Select all
for i,1,6
air[i]->tmp
if gettype(tmp)="STR"
expr(air[i])->air[i]
endfor
-
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)- Posts: 5670
- Joined: 11 Mar 2008, 00:00
- Location: Lyon
- Gender:
- Calculator(s):→ MyCalcs profile
33 posts
• Page 2 of 4 • 1, 2, 3, 4
Who is online
Users browsing this forum: ClaudeBot [spider] and 0 guests