Page 1 of 1

CP8 - Championnat des Pythons: erreur exécution + correction

Unread postPosted: 16 Jun 2018, 11:38
by critor
Championnat des Pythons 2018
Course des Pythons n°8
Erreur d'exécution + correction


Bienvenue au grand Championnat des Pythons 2018. Pour la rentrée 2018, trois modèles de calculatrices graphiques autorisées aux examens et concours proposent ou proposeront la programmation en langage Python :
  • NumWorks
  • HP Prime
  • Casio Graph 90+E

Aujourd'hui dans cette huitième Course des Pythons, voyons ensemble ce que valent ces différentes solutions autour des erreurs d'exécution et de leur corrction.

Sur la Casio Graph 90+E le message nous informant d'une erreur d'exécution nous indique un numéro de ligne. :)

Une fois de retour dans l'éditeur de script, il nous suffit alors :
  • soit de faire défiler les lignes une par une à partir de la première dans le cas de petits scripts, jusqu'à atteindre le numéro de ligne souhaité comme indiqué en haut à droite
  • soit d'utiliser les menus de bas d'écran JUMP puis LINE afin d'aller en un éclair au numéro de ligne de son choix pour les scripts plus longs ! :bj:

Sur la NumWorks on obtient de même le numéro de la ligne fautive. :)

L'éditeur nous numérote certes les lignes, mais hélas ici pas de raccourci de navigation verticale. Il n'y a donc pas d'autre choix que de défiler les lignes une par une à partir de la dernière. :(
Espérons que le script ne soit pas trop long...

Sur la HP Prime, pas de chance. Mettons de côté le fait que la machine ayant ici reçu le même script que les autres raconte visiblement n'importe quoi...

Le problème qui nous intéresse aujourd'hui est que les messages d'erreur d'exécution ne donnent visiblement aucune information sur la localisation de la ligne ayant déclenché une erreur d'exécution. :mj:
Bonne chance pour deviner...

Image

A bientôt pour une autre Course des Pythons ! ;)

Re: CP8 - Championnat des Pythons: erreur exécution + correc

Unread postPosted: 16 Jun 2018, 15:57
by parisse
Je ne vois pas le message d'erreur en entier sur la Prime. C'est quoi le script?
Je rappelle qu'on peut executer en pas a pas sur la Prime, ce qui est tres utile pour corriger des erreurs d'execution.

Re: CP8 - Championnat des Pythons: erreur exécution + correc

Unread postPosted: 16 Jun 2018, 16:02
by critor
Oui, le debug est un gros point fort qui est prévu. :)

Rien de nouveau je crois sinon pour les problèmes de scripts :
Code: Select all
def iamerror():
  l=[1,3,5,7,11,13]
  for i in range(13):
    print(l[i])
  return l

C'est donc le i minuscule très usuel pour les boucles qui est pris pour le nombre complexe.

Re: CP8 - Championnat des Pythons: erreur exécution + correc

Unread postPosted: 16 Jun 2018, 16:32
by parisse
Comme la version de Casio est une version de developpement, il me semble juste de comparer avec la version a jour de giac pour la Prime. Voici ce que ca donne dans Xcas pour Firefox
session Xcas
Observez les messages d'erreurs dans la console en bas, ils sont tres explicites. Sur la Prime, ces messages apparaissent dans le Terminal. Il n'y a pas de problemes pour utiliser i dans une boucle, le parser le detecte (mais evidemment on ne peut pas utiliser i simultanement pour sqrt(-1)).

Re: CP8 - Championnat des Pythons: erreur exécution + correc

Unread postPosted: 16 Jun 2018, 17:53
by critor
Effectivement. Toutefois, j'y vois une petite nuance qui peut avoir de grosses conséquences.

Avec Casio on a un logiciel de démo, et sauf accident nous aurons à la rentrée une mise à jour qui fera au moins aussi bien que le logiciel.

HP, il me semble que les fonctionnalités GIAC/XCAS ne sont pas toutes systématiquement intégrées dans la calculatrice à chaque mise à jour. Aussi, j'ignore la date de sortie du prochain firmware ainsi que son temps de validation interne, soit la date à partir de laquelle les nouveautés GIAC/XCAS ne comptent plus. Bref à la différence, je ne suis pas certain que ce que je peux voir sous GIAC/XCAS marchera tel quel sur calculatrice, surtout en ce qui concerne l'éditeur.

Si il y a eu des avancées significatives j'en suis très heureux, et en tiendrai compte dans les QCC, au moins en privé, si j'arrive bien sûr à avoir des infos d'ici-là sous une forme ou sous une autre. Si le firmware sort à nouveau fin août à début septembre et que je ne puis mettre la main sur rien avant, cela me sera difficile...

Re: CP8 - Championnat des Pythons: erreur exécution + correc

Unread postPosted: 16 Jun 2018, 18:19
by parisse
Je suis d'accord que vous ne pouvez pas savoir quelle version de giac sera integree dans le prochain firmware de HP (je ne le sais pas non plus exactement), neanmoins comme ca fait presque 1 mois que je travaille a temps plein sur le portage casio de giac, rien n'a change dans le code de compatibilite python depuis, il n'est pas difficile de conclure. C'est pour cela que je vous ai alerté quand vous avez commencé la série d'articles qu'il fallait tenir compte des evolutions de giac. En effet depuis le dernier firmware public et jusqu'au debut du portage casio, j'ai essentiellement travaille sur la compatibilite Python, qui est bien meilleure aujourd'hui.