Bonjour,
j'aimerai afficher les dix premiers carrés .
Cela est simple avec une boucle tant que mais est ce possible avec une boucle pour ?
la seule chose que j'arrive à faire c'est afficher le dernier carré :
pour j de 1 jusque 10 afficher j^2;
fpour
merci
boucle toute bête ...
Re: boucle toute bête ...
il manque les parenthèses:
afficher(j^2);
et aussi le faire
pour j de 1 jusque 10 faire
afficher( j^2);
fpour
L'absence de faire est repérée comme une erreur de syntaxe, mais pas pour afficher.malheureusement, car l'interpréteur considère qu'on effectue 2 instructions 'afficher'; et j^2; (qui n'ont aucun effet), comme on peut le voir en tapant
'pour j de 1 jusque 10 faire afficher j^2; fpour'
afficher(j^2);
et aussi le faire
pour j de 1 jusque 10 faire
afficher( j^2);
fpour
L'absence de faire est repérée comme une erreur de syntaxe, mais pas pour afficher.malheureusement, car l'interpréteur considère qu'on effectue 2 instructions 'afficher'; et j^2; (qui n'ont aucun effet), comme on peut le voir en tapant
'pour j de 1 jusque 10 faire afficher j^2; fpour'
Re: boucle toute bête ...
Merci beaucoup.
En fait les parenthèses servent à afficher tout les résultats 'intermédiaires' et non pas que le dernier résultat ?
En fait les parenthèses servent à afficher tout les résultats 'intermédiaires' et non pas que le dernier résultat ?
Re: boucle toute bête ...
En fait les parenthèses servent comme en maths, à préciser qui est l'antécédent de la fonction. En effet afficher est une fonction, qui retourne sans doute un nombre (on n'en a cure), et qui prend en "argument" (ou antécédent) un texte à afficher.seb7477 a écrit : En fait les parenthèses servent à afficher tout les résultats 'intermédiaires' et non pas que le dernier résultat ?
Quand on écrit afficher(x), le résultat est l'affichage de x. Et quand on écrit afficher x, le résultat est l'affichage d'un vide (puisqu'on appelle la fonction "afficher" sans lui fournir d'objet à afficher) suivi par un appel à la fonction "x" qui n'existe pas, et ne fait donc rien. L'erreur semble similaire à celle des élèves qui, en voyant f(x), croient qu'il s'agit du produit de f par x et non de l'image de x par f.
En ne mettant pas les parenthèses, sans doute que ce n'est même pas "afficher" qui est responsable de l'affichage final, mais la boucle elle-même, qui, lors de sa sortie, produit cet affichage automatique. En résumé, les parenthèses ne servent pas à afficher tous les résultats intermédiaires, mais à dire quoi afficher!
Re: boucle toute bête ...
plus précisément, affichage tout seul est interprété comme un objet de type fonction (on ne peut pas en faire grand chose ici, mais plus générallement on pourrait par exemple le composer avec @ pour faire une fonction composée), et en effet le 100 qui est envoyé dans ce cas (en noir) est le résultat de l'évaluation du dernier élément de la ligne de commande, à ne pas confondre avec les affichages intermédiaires en bleu.
Re: boucle toute bête ...
Merci beaucoup pour la précision de vos réponses.