J'ai récupéré récemment une Sharp EL-9000 pour une bouchée de pain, intrigué par son langage de programmation qui m'avait l'air assez spécial (en lisant les commentaires de Marge et dprtl dans le
MPO n°97 
)

- Sharp_EL-9000.jpg (225.01 Kio) Consulté 474 fois
Effectivement, la prise en main de cette Sharp n'est pas facile, c'est pas du tout intuitif et le manuel est bienvenu (même si comme le disaient mes camarades il n'est pas super pédagogique) !
Que ce soit au niveau du langage et de la "philosophie" de programmation, ou même des intitulés des touches, rien à voir avec la facilité des Casio !
Par exemple, qui peut comprendre du 1er coup à quoi servent les touches
PB ou
TAB/MDF !?
Elle a plein de petites particularités déroutantes, parfois moins bien et parfois mieux que les concurrentes :
- Chaque programme peut avoir un titre allant jusqu'à 61 caractères, et qui peut contenir des espaces !

.
- Par contre chaque programme peut faire seulement 160 caractères : au-delà il faut le découper en sous-programmes (9 maxi par programme).
- Les programmes peuvent utiliser des variables locales (en minuscules), et des variables suffixées avec un chiffre de 1 à 9 (par exemple x1).
- Les seuls opérateurs de comparaison dont elle dispose sont >, ≥ et ≠
- Mais suite à l'évaluation d'un test, au lieu d'avoir un seul "GOTO" elle dispose d'un "GOTO si TRUE" et d'un "GOTO si FALSE".
- Pas de possibilité de debug (sauf en cas d'erreur, où on peut appuyer sur la touche PB pour voir l'opération fautive), en tout cas que je sache.
- En mode binaire, elle propose tous les opérateurs booléens, avec même un XNOR

- Malgré l'affichage sur 4 lignes de texte, les programmes sont entrés avec toutes les instructions à la suite, sans possibilité de saut à la ligne
- Pas possible d'afficher des messages en chaînes de caractères.
- Dans le mode Stats, on peut donner un titre aux ensembles de données qui sont stockés dans une matrice.
Et j'ai pas encore tout essayé
Avec tout ça, j'ai bien galéré pour arriver à coder un petit programme de parcours des nombres premiers en guise de test !
J'ai mis des heures à me rendre compte d'un truc qui n'est pas mentionné dans la doc (pas trouvé en tout cas) : chaque "goto" d'une boucle doit avoir son propre "label" correspondant ! C-à-d qu'on ne peut pas avoir ceci par exemple, comme chez Casio :
qui en fait s'écrirait comme ça sur la Sharp, avec des caractères spéciaux pour indiquer le début (└>) et la fin (<┐) d'une boucle :
Ça ne plante pas, mais ça donne un résultat inattendu.
La bonne syntaxe est donc :
Bref il doit y avoir autant de └> que de <┐ .
Du coup, voici par exemple mon programme de
parcours des nombres premiers (avec demande de saisie du nombre de départ) :
Code : Tout sélectionner
M: D=3 └>└>└> D^2>n ■Y►[n,❶<┐] FRAC(n/D)≠0 ■N►[❶<┐] D=D+2 <┐
1: n=n+2 ˽ D=3
Qques explications :
- Le M: au début de la 1ère ligne indique qu'il s'agit du programme principal (M pour Main je suppose).
- Le 1: au début de la 2ème ligne indique qu'il s'agit du sous-programme n°1. Il est appelé par les ❶ (chiffre 1 sur fond noir) dans le programme principal.
- La variable n représente les nombres à tester : comme elle est en minuscules c'est une variable locale, et comme elle n'est pas initialisée le programme affiche un "prompt" pour demander sa valeur au départ.
- Le ■Y►[...] est un "goto si vrai" (en fait un Y (pour Yes) traversé par une flèche, mais ça rend mieux sur la machine

).
- J'ai mis des espaces pour améliorer la lisibilité, mais en réalité il n'y a aucun espace à part ceux représentés par le caractère ˽ , qui servent à séparer les expressions.
Bref, une petite machine bien sympathique
Le manuel est dispo chez Rémy ici :
http://pockemul.free.fr/Documents/9000.pdf