InputStr("nom?",N)

Utilisation de Xcas

Modérateur : xcasadmin

Répondre
jmmeny
Messages : 36
Inscription : dim. févr. 03, 2008 8:41 pm

InputStr("nom?",N)

Message par jmmeny » mer. juin 03, 2009 7:19 pm

Cette commande InputStr("nom?",N) semble buguée, elle ne donne sur ma machine qu' un "calcul en cours" qui s'éternise (ma version de xcas doit être la 0.8.2 -- en passant on retrouve où ce numéro dans xcas ?)

parisse
Messages : 5881
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » jeu. juin 04, 2009 6:58 am

Sous linux, InputStr ne bloque pas, par contre il y a bien un bug car la valeur entree n'est pas affectee, je le corrige. Je pense faire un essai sous windows d'ici demain.
Pour le numero de version, il apparait si on choisit A propos du menu Fichier. Mais la date de telechargement contient plus d'informations, car le numero de version ne change pas souvent (ca demande trop de travail d'administration).

parisse
Messages : 5881
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » ven. juin 05, 2009 9:15 am

Voila, c'est corrige sous windows.

jmmeny
Messages : 36
Inscription : dim. févr. 03, 2008 8:41 pm

Message par jmmeny » ven. juin 05, 2009 9:58 am

ça fonctionne en ligne de commande.

Ca ne fonctionne pas dans une fonction.


Par exemple :

f():={
local rep;
InputStr("entrez m ou p",rep);
si (rep=="m") alors
return 5;
fsi;
si (rep=="p") alors
return 4;
fsi;
}
:;

f() renvoie toujours undef

parisse
Messages : 5881
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » ven. juin 05, 2009 10:33 am

Ca marche sous linux, avant que je reessaie sous win, juste une verification: vous avez bien tape m ou p sans les guillemets?
Si oui, pouvez-vous tester debug(f()) et voir ce que contient rep apres InputStr?

jmmeny
Messages : 36
Inscription : dim. févr. 03, 2008 8:41 pm

Message par jmmeny » ven. juin 05, 2009 11:04 am

pour "m" et m : j'avais essayé les deux pour être sûr, undef est renvoyé dans les deux cas.




Comme je ne m'étais jamais servi du debug, je ne suis pas certain d'avoir compris le fonctionnement.
Mais il semble que le contenu de rep soit 0.

En ajoutant une ligne :

f():={
local rep;
InputStr("entrez m ou p",rep);
si (rep=="m") alors
return 5;
fsi;
si (rep=="p") alors
return 4;
fsi;
return rep;
}
:;

j'ai la sortie 0
Dernière modification par jmmeny le ven. juin 05, 2009 11:14 am, modifié 2 fois.

parisse
Messages : 5881
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » ven. juin 05, 2009 11:10 am

Apres avoir lance debug(f()) vous cliquez sur sst, a chaque clic vous avancez d'une ligne dans l'execution du programme. Regardez alors, juste apres avoir entre m ou p quelle valeur il affiche pour la variable rep.

jmmeny
Messages : 36
Inscription : dim. févr. 03, 2008 8:41 pm

Message par jmmeny » ven. juin 05, 2009 11:14 am

j'ai réessayé avec :

f():={
local rep:="v";
InputStr("entrez m ou p",rep);
si (rep=="m") alors
return 5;
fsi;
si (rep=="p") alors
return 4;
fsi;
return rep;
}
:;

dans le debuggueur, rep reçoit v et pas de modif après -- avec "local rep;" il reçoit 0 et pas de modif après.

parisse
Messages : 5881
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » ven. juin 05, 2009 11:35 am

bon, ca semble un bug specifique a windows, j'essaierai de corriger ca en debut de semaine prochaine.

parisse
Messages : 5881
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Message par parisse » mar. juin 09, 2009 5:42 pm

j'ai fait une mise a jour windows hier, ca devrait marcher.

Répondre