Page 1 sur 1

InputStr("nom?",N)

Publié : mer. juin 03, 2009 7:19 pm
par jmmeny
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 ?)

Publié : jeu. juin 04, 2009 6:58 am
par parisse
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).

Publié : ven. juin 05, 2009 9:15 am
par parisse
Voila, c'est corrige sous windows.

Publié : ven. juin 05, 2009 9:58 am
par jmmeny
ç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

Publié : ven. juin 05, 2009 10:33 am
par parisse
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?

Publié : ven. juin 05, 2009 11:04 am
par jmmeny
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

Publié : ven. juin 05, 2009 11:10 am
par parisse
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.

Publié : ven. juin 05, 2009 11:14 am
par jmmeny
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.

Publié : ven. juin 05, 2009 11:35 am
par parisse
bon, ca semble un bug specifique a windows, j'essaierai de corriger ca en debut de semaine prochaine.

Publié : mar. juin 09, 2009 5:42 pm
par parisse
j'ai fait une mise a jour windows hier, ca devrait marcher.