Page 1 sur 1

syntaxe while

Publié : sam. déc. 15, 2012 10:10 am
par Alek
Pas vraiment un bug, mais un comportement quelque peu piegeux de while : le programme suivant

Code : Tout sélectionner

y := 1;
while (y<10) do
  y := y+1;
  print y;
end do:;
ne s'arrête pas. Je pense que c'est à cause de mélange de deux syntaxes (C et maple). Plus concrètement,
while y<10 do ... end_do
(sans parenthèses) marche bien et
while (y<10) { ... }
marche bien aussi.

Cela étant, le mélange de deux syntaxes, je le vois assez souvent (d'autant plus que le bouton "boucle" d'assistant de programme propose "tantque.. ftanque" et rajouter alors des parenthèses me paraît pas scandaleux de la part d'utilisateur).

Serait -il possible de signaler une erreur comme pour
while y<10 {...}
ou bien accepter
while ( condition entre parenthèses ) do ... end_do ?

A.

Re: syntaxe while

Publié : sam. déc. 15, 2012 1:35 pm
par frederic han
oui j'ai remarque ca aussi, c'est d'autant plus traitre que les autres syntaxes maple fonctionnent aussi en mode xcas

if 1>0 then 1 else 0 fi

for j from 1 to 5 do print(j) od

Re: syntaxe while

Publié : sam. déc. 15, 2012 3:58 pm
par parisse
Je l'ai aussi observé avec des étudiants, mais je ne vois pas comment faire pour lever l'ambiguité en mode xcas. Le seul conseil que je peux vous donner c'est de faire utiliser les mots-clefs en français (ou les assistants), il n'y a alors pas d'ambiguité. Ca fait bizarre au début, mais finalement si on écrit en syntaxe "littéraire" et pas en syntaxe C écrire des programmes xcas avec les mots-clef en français c'est aussi bien qu'en anglais, c'est juste une question d'habitude.