π
<-
Chat plein-écran
[^]

TI-z80 Tuto saisie minuscules facile et universel, même 82 Advanced

Nouveau messagede critor » 03 Fév 2019, 12:29

Par défaut, ta
TI-82/83/84
ne te permet de saisir du texte qu'en majuscules.

Il existe toutefois des programmes assembleur ou applications permettant d'activer la saisie en lettres minuscules en tapant
alpha
alpha
.

On peut citer entre autres :
  • le programme assembleur pour
    TI-83 Premium CE
    /
    TI-84 Plus CE
  • l'application pour
    TI-82+/83+/84+

Sauf que, initialement, les
TI-82 Advanced
et
TI-84 Plus T
interdisaient d'exécuter des programmes assembleur ou de rajouter des applications.

Toutefois grâce au formidable travail de nous t'annoncions enfin dans un article précédent la possibilité d'installer les applications
TI-82+/83+/84+
de ton choix sur ta
TI-82 Advanced
, et donc par extension d'exécuter des programmes assembleur grâce aux applications de shell.

Mais voilà, à ce jour la
TI-84 Plus T
reste fermée à ces possibilités.

Et peut-être trouves-tu aussi que la manipulation pour installer l'application
OmniCalc
sur ta
TI-82 Advanced
est trop compliquée...

10223Mais heureusement, il existe une autre possibilité pour saisir du texte en minuscules sur ta calculatrice, possibilité qui est valable pour toutes les
TI-82+/83+/84+
, y compris les dernières
TI-82 Advanced
ou
TI-84 Plus T
.

Il te suffit simplement de faire appel en cours de saisie au catalogue avec
2nde
0
, puis de valider l'entrée
Caractères
que tu trouveras vers le début.
Attention, cette entrée n'est disponible que si ta calculatrice est réglée dans une autre langue que l'Anglais. :#non#:


A l'écran auquel tu accèdes alors, la combinaison
alpha
alpha
activera bien la saisie des minuscules ! :bj:

Cette méthode universelle vient justement de faire l'objet d'un tutoriel par . :)


Liens
:


Téléchargements
:

  • (pour
    TI-83 Premium CE
    et
    TI-84 Plus CE
    )
  • (pour
    TI-82 Plus
    ,
    TI-83 Plus
    ,
    TI-84 Pocket.fr
    et
    TI-84 Plus
    monochromes
    sauf
    TI-84 Plus T
    )
  • (pour
    TI-82 Advanced
    )
Lien vers le sujet sur le forum: Tuto saisie minuscules facile et universel, même 82 Advanced (Commentaires: 4)

TI-z80 Oiram CE : relève le défi du Big Bang !

Nouveau messagede critor » 02 Fév 2019, 22:13

7698Ce week-end te lance un défi avec
Big Bang
, son monde perso pour pour
Oiram CE
, le moteur de jeu
Mario-like
pour ta
TI-83 Premium CE
. :)

Seulement 4 niveaux, mais c'est du concentré si tu regardes bien ! :bat:


Seras-tu le ou la première à les terminer ? ;)


Pour fonctionner correctement,
Oiram CE
a besoin des bibliothèques C téléchargeables ci-dessous. Mais rien de bien compliqué, il suffit juste de les transférer.


Téléchargements
:
Lien vers le sujet sur le forum: Oiram CE : relève le défi du Big Bang ! (Commentaires: 9)

NumWorks Firmware 10.0.0 tiers orienté jeux Python (get_keys)

Nouveau messagede critor » 02 Fév 2019, 21:31

avait déjà travaillé à une modification du
firmware
NumWorks
afin d'étendre les possibilités graphiques du module
Python kandinsky
, lui rajoutant les fonctions :
  • draw_line(x1,y1,x2,y2,color) pour le tracer de lignes
  • fill_rect(x,y,w,h,color) pour le tracer de rectangles pleins
Dans les deux cas ces fonctions n'étaient pas connectées à la fonction Python setpixel(x,y,color) mais à du code C permettant donc des tracés optimaux, notamment pour le rafraichissement de
sprites
dans des jeux.

Aujourd'hui poursuit son chemin dans le but de nous permettre enfin de coder en
Python
des jeux graphiques jouables, en nous diffusant une nouvelle version de son
firmware
amélioré.

Voyons donc ensemble les dernières nouveautés


9895A première vue, bizarrement,pas de nouveauté
kandinsky
.

L'on note toujours comme seuls et uniques ajouts :
  • draw_line(x1,y1,x2,y2,color)
  • fill_rect(x,y,w,h,color)

Mais histoire d'être sûr, explorons le module
kandinsky
à l'aide du script suivant :
Code: Tout sélectionner
#platforms:
#0: MicroPython / TI-Nspire
#1: MicroPython / NumWorks
#2: MicroPython / G90+E
#3: MicroPython / G35+E/USB / G75/85/95
#4: CircuitPython / TI-Python / 83PCE
#5: Xcas / HP Prime
#6: KhiCAS / Graph 90+E
def getplatform():
  id=-1
  try:
    import sys
    try:
      if sys.platform=='nspire':id=0
      if sys.platform=='TI-Python Adapter':id=4
    except:id=3
  except:
    try:
      import kandinsky
      id=1
    except:
      try:
        if chr(256)==chr(0):id=5+(not ("HP" in version()))
      except:
        id=2
  return id
 
platform=getplatform()
#lines shown on screen
plines=[29,12,  7, 9,11,0,0]
#max chars per line
#(error or new line if exceeded)
pcols =[53,99,509,32,32,0,0]

nlines=plines[platform]
ncols=pcols[platform]
curline=0

def mprint(*ls):
  global curline
  st=""
  for s in ls:
    if not(isinstance(s,str)):
      s=str(s)
    st=st+s
  stlines=1+int(len(st)/ncols)
  if curline+stlines>=nlines:
    input("Input to continue:")
    curline=0
  print(st)
  curline+=stlines

def sstr(obj):
  try:
    s=obj.__name__
  except:
    s=str(obj)
    a=s.find("'")
    b=s.rfind("'")
    if a>=0 and b!=a:
      s=s[a+1:b]
  return s

def isExplorable(obj):
  s=str(obj)
  return s.startswith("<module '") or s.startswith("<class '")

def explmod(pitm,pitmsl=[],reset=True):
  global curline
  if(reset):
    curline=0
    pitmsl=[sstr(pitm)]
  hd="."*(len(pitmsl)-1)
  spath=".".join(pitmsl)
  c=0
  for itms in sorted(dir(pitm)):
    c=c+1
    try:
      itm=eval(spath+"."+itms)
      mprint(hd+itms+"="+str(itm))
      if isExplorable(itm):
        pitmsl2=pitmsl.copy()
        pitmsl2.append(itms)
        c=c+explmod(itm,pitmsl2,False)
    except:
      mprint(hd+itms)
  if c>0:
    mprint(hd+"Total: "+str(c)+" item(s)")
  return c

Et bingo, oh que oui il y a des choses, simplement elles ne sont pas listées dans la boîte à outils.

10220Déjà après les sorties graphiques, Jean-Baptise s'attaque maintenant aux entrées clavier en définissant des codes pour l'ensemble des touches du clavier et rajoutant la fonction get_keys() pour connaître la ou les touches pressées ! :bj:
10216102171021810219


10221Mais ce n'est pas tout, nous avons également de nouvelles fonctions de sorties graphiques :
  • get_pixels(x,y,width,data)
  • set_pixels(x,y,width,data)
  • wait_vblank()

10222
Alors, mission remplie ou pas avec tout ça ? Peut-on enfin coder un
Mario
pour la calculatrice
NumWorks
?

Nous te proposons d'aller juger par toi-même en testant la fluidité du jeu
PONG
codé par Jean-Baptiste en exploitant ces nouvelles fonctionnalités, premier jeu
Python
contrôlable au clavier ! :bj:

Attention au fait que le firmware diffusé par Jean-Baptiste dans ce contexte est basé sur l'état actuel du code source public de la calculatrice
NumWorks
, et que celui-ci est actuellement en phase bêta de la future version
10.0.0
. Des problèmes peuvent donc apparaître même en dehors des points évoqués; il t'est déconseillé de l'installer si tu as de prochains rendez-vous importants
(DS, examens, concours...)
. :#non#:


Téléchargement
:
firmware
1.10.0 bêta
précompilé avec ces améliorations
(installable facilement via webdfu_numworks )

Code
:
https://github.com/numworks/epsilon/pull/746
Source
:
viewtopic.php?t=22284&p=239388#p239388
Lien vers le sujet sur le forum: Firmware 10.0.0 tiers orienté jeux Python (get_keys) (Commentaires: 4)

TI-z80 Omnicalc, pour des possibilités TI-82 Advanced étendues !

Nouveau messagede critor » 02 Fév 2019, 18:25

10185La
TI-82 Advanced
est techniquement une
TI-84 Plus
, mais a été bridée pour empêcher l'ajout d'applications.

Toutefois dans un article précédent, nous t'annoncions enfin la possibilité d'installer les applications
TI-82+/83+/84+
de ton choix sur ta
TI-82 Advanced
, grâce au formidable travail de . :bj:

Dans un article précédent, nous traitions de l'ajout de la superbe application
Symbolic
, et pour qu'elle fonctionne correctement tu avais besoin de l'application
Omnicalc
.

Il existe toutefois de grandes différences internes entre la version système
5.0.0.0028
du
20 janvier 2015
pour
TI-82 Advanced
et la dernière version
2.55MP
du
19 octobre 2010
pour
TI-84 Plus
.

Si bien que les applications
TI-84 Plus
ne fonctionnent pas toujours correctement ou entièrement sur
TI-82 Advanced
.

C'est notamment le cas de celles qui ont à voir avec le fonctionnement du système ou de l'écran de calcul, et
Omnicalc
tout comme
Symbolic
fait justement partie de ces dernières.

Voyons donc aujourd'hui quelles fonctionnalités de
Omnicalc
sont utilisables sur
TI-82 Advanced
.

Une fois l'application
Omnicalc
lancée
(et installée)
, tu disposes dans son menu de configuration de plusieurs options destinées à modifier le comportement de l'écran de calcul et du système.

10186Plusieurs options ne sont pas fonctionnelles : :'(
  • Parentheses Assistant
    , censé faire clignoter la parenthèse ouvrante correspondant lorsque l'on ferme une parenthèse lors d'une saisie sur l'écran de calcul, et qui ici non seulement ne marche pas mais en plus bloque la saisie des parenthèses fermantes !
  • Entries Menu
    , censé afficher sur
    2nde
    entrée
    un menu permettant de choisir parmi les saisies précédentes, et qui ici affiche bien un menu mais propose n'importe quoi dedans et finit par planter !
  • RAM Recovery
    , censé sauvegarder la mémoire à chaque extinction de la calculatrice, pour pouvoir la restaurer immédiatement après un plantage. Ne fait rien de mal, mais en pratique la commande de restauration traitée plus bas semble inutilisable.
  • Virtual Calculators
    , censé permettre de basculer entre et utiliser deux états mémoire différents de la calculatrice, avec le raccourci
    on
    mode
    . Tu as donc deux calculatrices dans une seule, de quoi mettre les choses pour les maths dans l'une et les choses pour les sciences dans l'autre. Ne fait rien de mal, en pratique le raccourci ne marche tout simplement pas.


Mais d'autres marchent encore à la perfection : :bj:
  • Memory Protection
    , bloque empêche ton prof/surveillant/voisin d'effacer tes données. Bloque aussi bien l'effacement des variables que le menu de réinitialisation.
  • Base Conversions
    , permet de convertir les résultats à l'écran de calcul de la base décimale
    (10)
    vers n'importe quelle autre base de 2 à 36. La base de destination se choisit via le raccourci
    on
    log
    et est à saisir sur 2 chiffres
    (donc 02 pour le binaire par exemple)
    .
  • Lowercase Letters
    , permet de saisir des lettres minuscules via le raccourci
    alpha
    alpha
    .


10187
En deuxième page c'est encore mieux, tout marche : :bj:
  • Thousands Separators
    , rajoute des séparateurs de milliers aux résultats dans l'écran de calcul.
  • Quick APPS
    , est permet de lister les applications plus rapidement, l'affichage du menu avec nos 12 applications étant maintenant instantané au lieu de prendre une fraction de seconde.
    Mais il y a un autre avantage beaucoup plus important. Si tu as rajouté des applications sur ta
    TI-82 Advanced
    , dans le menu
    apps
    si tu tapes
    pour aller en fin de liste, tu as pu remarqué un bug de décalage entre l'affichage de l'application sélectionnée, et l'application effectivement lancée à la validation. Sans doute que TI a tenu compte du nombre d'application préchargées quelque part...
    Une fois l'option
    Quick APPS
    activée, plus de problème ! :bj:
  • Hide Finance app
    , lorsque l'option
    Quick APPS
    est activée, permet de masquer l'application intégrée
    Finance
    du menu
    apps
    , application qui ne sert pas à grand monde dans le contexte du lycée.


Mais ce n'est pas tout car avec le raccourci
prgm
prgm
, on a accès à de toutes nouvelles fonctions.
Dans l'onglet
MISC
, les fonctions suivantes ne marchent pas : :(
  • Les fonctions de communication linkGet( et linkSend( ne marchent pas, renvoyant systématiquement -1 pour indiquer une erreur. Elles sont destinées à écrire/lire un octete sur le port de communication de la calculatrice, très probablement non pas le port mini-USB mais le port série mini-Jack 2.5 qui n'existe plus sur
    TI-82 Advanced
    .
  • La fonction RestoreMem( destinée à restaurer la mémoire après un plantage. C'est la seule fonction qui selon sa documentation ne prend pas de paramètre. Mais lors de la saisie sur
    TI-82 Advanced
    elle se transforme en réel(32,, qui donne une erreur de syntaxe si validé sans paramètre, et une erreur de donnée si on rajoute un nombre.


Par contre, la fonction Rom>Dec(, permet de convertir un nombre écrit en chiffres romains, est fonctionnelle ! :bj:


Dans l'onglet
MATH
, absolument tout est fonctionnel ! :bj:
  • La fonction !n( pour la fonction sous-factorielle.
  • La fonction baseInput( qui complète la fonctionnalité vue plus haut, en permettant cette fois-ci de convertir en base décimale une saisie effectuée dans n'importe quelle base 2 à 36.
  • La fonction const( qui permet de rappeler les valeurs de plusieurs constantes physiques :
    • NA, pour le nombre d'Avogadro
      (sans unité)
    • K, pour la constante de Boltzman
      $mathjax$\left(J\cdot K^{-1}\right)$mathjax$
    • CC
    • EC, pour la charge élémentaire
      (C)
    • RC, pour la constante universelle des gaz parfaits
      $mathjax$\left(J\cdot mol^{-1}\cdot K^{-1}\right)$mathjax$
    • GC, pour la constante gravitationnelle
      $mathjax$\left(N\cdot m^2\cdot kg^{-2}\right)$mathjax$
    • G, pour l'accélération de la pesanteur à la surface de la Terre
      $mathjax$\left(m\cdot s^{-2}\right)$mathjax$
    • ME, pour la masse de l'électron
      (kg)
    • MP, pour la masse du proton
      (kg)
    • MN, pour la masse du neutron
      (kg)
    • H, pour la constante de Planck
      (J∙s)
    • C, pour la vitesse de la lumière dans le vide
      $mathjax$m\cdot s^{-1}$mathjax$
    • U, pour l'unité de masse atomique unifiée
      (kg)
  • La fonction factor( pour décomposer un nombre en facteurs premiers.
  • La fonction gamma(.
  • La fonction mod( pour calculer le reste d'une division euclidienne.
    Certes, la fonction remainder( existe déjà à cette fin dans ta
    TI-82 Advanced
    , mais ici à la différence la fonction marchera même avec les nombres décimaux et les grands nombres ! :bj:
  • La fonction simp√( pour simplifier les racines carrées.

Enfin dans l'onglet
PRGM
, nous avons les fonctions suivantes qui marchent : :bj:
  • La fonction sprite( pour afficher non pas une variable image en entier, mais un rectangle découpé dans une des variables images de la calculatrice, fort pratique pour programmer des jeux.
  • La fonction ExecAsm( pour exécuter directement du code machine.

Et puis, il reste cette fonction play(, censée jouer des partitions de musique sur un haut parleur à brancher sur le port mini-Jack 2.5 de la calculatrice, partitions à retranscrire dans une chaîne de caractères au format suivant :
  • P... : joue un silence
    (1, 2, 4, 8, 16, 32, 64)
  • A-G : joue les notes la, si, do, ré, mi, fa , sol
  • + : augmente la hauteur de la note précédente d'un demi-ton
    (dièse)
  • - : baisse la hauteur de la note précédente d'un demi-ton
    (bémol)
  • . : augmente la durée de la note ou pause précédente de moitié
  • T... : règle le tempo
    (32-255, par défaut 120)
  • L... : règle la longueur des notes suivantes
    (1, 2, 4, 8, 16, 32, 64, par défaut 4)
  • O... : règle l'octave
    (0-6, par défaut 2)
  • < : baisse d'un octave
  • > : augmente d'un octave
  • MN : les prochaines notes se termineront par un silence faisant 1/8 de leur durée
  • MS : les prochaines notes se termineront par un silence faisant 1/4 de leur durée
  • ML : les prochaines notes se termineront sans silence

Or, le port mini-Jack 2.5 est inexistant sur
TI-82 Advanced
. Mais ce n'est pas parce que ça ne peut pas marcher que ça ne fait rien...

Nous avions déjà vu que c'était en fait la diode examen qui avait pris la place du port mini-Jack 2.5 sur
TI-82 Advanced
. Alors à ton avis, ça fait quoi ? ;)

Réponse ci-dessous :

10212Et oui, pas de musique, mais à la place ça allume la diode examen ! :o

Mais ne t'embête pas à chercher la partition de la mélodie du mode examen, car cela n'a aucun intérêt pour frauder en 2020.

Certes, TI s'est bien embêté à interdire les applis et l'assembleur sur
TI-82 Advanced
, très probablement pour empêcher ce genre de chose.
Mais ils ont régulièrement tendance à être extrêmes dans leurs protections, et à embêter à bloquer des choses inutilement.

En effet, si tu fais clignoter ta diode avec en mettant par exemple la bonne commande play( dans une boucle, oui tu pourras faire croire que tu es en mode examen alors que tes données n'ont pas été effacées.

Mais, tant que ta calculatrice exécutera la boucle, elle sera inutilisable car n'acceptant aucune entrée. Il faudra bien à un moment où à un autre que tu interrompes la boucle pour pouvoir te servir de ta calculatrice. A ce moment-là la diode cessera de clignoter et les surveillants le verront. :#non#:

Maintenant étendue avec
Omnicalc
, ta
TI-82
mérite enfin d'être qualifiée de
Advanced
! :bj:

Téléchargements
:
Liens
:

Lien vers le sujet sur le forum: Omnicalc, pour des possibilités TI-82 Advanced étendues ! (Commentaires: 4)

Examens Mise à jour CAPESOS 2019b; CAPES de Maths 2019 avec NumWorks

Nouveau messagede critor » 01 Fév 2019, 15:10

CAPESOS
, le système d'exploitation
Linux
embarqué sur clé USB pour les candidats invités aux épreuves orales du concours du
CAPES de Mathématiques
, est sorti en novembre dernier en version
2019a
.

Il vient aujourd'hui d'être mis à jour en version
2019b
.

Le changement essentiel est l'inclusion dans les ressources des textes des nouveaux programmes de à la rentrée 2019 :

Les logiciels utilisables pour présenter l'oral restent les mêmes, sans mise à jour :

Sont également disponibles pour la préparation de l'oral :
  • Firefox 52.5.0
  • Atril Document Viewer 1.12.2
  • Calculatrice Gnome

L'émulateur de calcualtrices
NumWorks
peut être très pertinent pour la deuxième épreuve orale, l'épreuve sur dossier, pour présenter quelque chose du point de vue élève / utilisation en classe, notamment dans le cadre de sa superbe application de
Probabilités
et
Calculs
qui respectent le langage et les notations mathématiques ! :bj:

Mais fais attention à son application
Python
. En effet, cet émulateur ne permet pas de sauvegarder un état. Si tu y saisis des scripts conséquents pendant ta préparation, ils seront perdus lorsque tu débrancheras la clé USB pour l'emporter devant le jury. :#non#:

Nous ne te conseillerions le
Python NumWorks
que pour l'utilisation interactive de la console, ou bien pour des scripts extrêmement courts que tu auras donc à saisir devant le jury. Au-delà, nous te conseillerions de basculer sur l'une des autres solutions proposées.

Fais attention aussi au fait que l'émulateur reste en version
1.7.0
, et ne bénéficie donc pas des dernières grandes nouveautés sur la gestion des variables et le module time en Python.

Tous les téléchargements pour te préparer avec une
NumWorks
dans les conditions exactes de l'épreuve suivent.

Téléchargements
:

Lien vers le sujet sur le forum: Mise à jour CAPESOS 2019b; CAPES de Maths 2019 avec NumWorks (Commentaires: 0)

Divers Le classement des Pythonnettes : la récursivité

Nouveau messagede critor » 31 Jan 2019, 21:56

A la rentrée 2019 le
Python
sera le seul langage de programmation préconisé pour l'enseignement de l'algorithmique au lycée en Seconde et Première.

Plusieurs calculatrices graphiques intègrent déjà une implémentation
Python
officielle dans leur dernière mise à jour, plus ou moins complète, fidèle et réussie selon le cas :
  • NumWorks
    avec
    MicroPython 1.9.4
  • Casio Graph 90+E
    avec
    MicroPython 1.9.4
  • HP Prime
    avec l'écriture
    Python
    de
    Xcas
  • le module externe
    TI-Python
    pour
    TI-83 Premium CE
    avec
    CircuitPython
    (dérivé de MicroPython)
À côté de cela nous avons aussi plusieurs implémentations communautaires, qui à la différence ne fonctionneront pas en mode examen en 2020 :

Ces diverses implémentations ne sont toutefois pas équivalentes.

C'est notamment le cas pour les fonctions récursives
(fonctions qui se rappellent dans leur propre code)
, où certaines
"Pythonnettes"
nous avaient paru assez mauvaises.

Aujourd'hui, creusons donc les possibilités de nos
Pythonnettes
en récursivité à l'aide du script suivant :
Code: Tout sélectionner
def prodr(n):
  if n<=0:
    return 1
  else:
    return n*prodr(n-1)

def maxr(fct):
  n=0
  try:
    while True:
      fct(n)
      n=n+1
  except Exception as ex:
    print(ex)
  return n

La fonction prodr(n) effectue ici récursivement le produits des facteurs 1 à
n
, c'est la fonction factorielle.

La fonction maxr(fct) va appeler fct(n) avec des valeurs de
n
croissantes jusqu'à déclenchement d'une erreur, et nous indiquer alors la description de l'erreur et la profondeur de récursion atteinte.

Sur
TI-Nspire
l'appel maxr(prodr) atteint une profondeur de
130
avant de nous renvoyer l'erreur
"maximum recursion depth exceeded"
. La profondeur maximum spécifiée lors de la compilation de l'interpréteur
Python
a donc ici été atteinte, impossible d'aller plus loin.

10209La calculatrice
NumWorks
quant à elle déclenche la même erreur à seulement
27
niveaux de profondeur.

Mais sur la version
web
de la calculatrice
NumWorks
ce n'est particulièrement pas joyeux, avec une limite à seulement
10
niveaux de récursion.

Sur
Casio Graph 90+E
, le script atteint une profondeur de
82
mais en renvoyant une erreur différente,
"pystack exhausted"
, et la limitation n'a donc pas la même raison technique.

Avec l'application
KhiCAS
, la
Graph 90+E
fait un peu mieux avec une profondeur de
98
. Mais ici la gestion de l'instruction except semble apparemment incomplète puisque la variable
ex
n'est pas affectée avec le message d'erreur.

La
HP Prime
qui utilise elle aussi un portage de
GIAC
, cœur du logiciel
Xcas
, atteint également une profondeur de récursivité de
98
. Nuance toutefois, ici elle continue au-delà mais nous avertissant avec le message
"Exécution en mode d'évaluation non récursive"
. Il semble donc que la calculatrice optimise le code en convertissant les appels récursifs en itératif au-delà de 98 niveaux de profondeur.

Si cela n'a pas été corrigé depuis octobre dernier, le module externe
TI-Python
pour
TI-83 Premium CE
que les types de base, soit les flottants uniquement en simple précision, et également les entiers uniquement courts, soit jusqu’à
$mathjax$2^{30}-1=1073741823$mathjax$
. La fonction factorielle produisant rapidement de longs entiers, l'appel maxr(prodr) devrait nous renvoyer :
TI-Python a écrit:>>> from recur import *
>>> maxr(prodr)
small int overflow
13
>>>

Mais ici la limite n'a donc rien à voir avec le fonctionnement de la récursivité. Afin de mieux évaluée ce dernier, contentons-nous donc plutôt de la somme récursive des termes de 0 à n :
Code: Tout sélectionner
def sumr(n):
  if n<=0:
    return 0
  else:
    return n+sumr(n-1)

L'appel maxr(sumr) devrait alors nous renvoyer :
TI-Python a écrit:>>> from recur import *
>>> maxr(sumr)
max recursion depth exceeded
21
>>>

L'application
CasioPython
sur
Graph 35+E/75+E
et anciens modèles
Graph 35+USB/75/95
à processeur
SH4
nous atteint des sommets avec l'appel maxr(prodr), plus exactement
674
de profondeur ! L’ascension est ici avortée par l'erreur
"memory allocation failed, allocating 672 bytes"
.

Mais là encore, si c'est une limite de mémoire cela n'a rien à voir spécifiquement avec la récursivité. Passons donc à l'autre fonction qui mettra beaucoup plus de temps avant d'arriver sur des entiers longs, et consommera donc beaucoup moins de mémoire.

Extraordinaire, l'appel maxr(sumr) atteint maintenant une profondeur de
5351
. Le message d'erreur
"maximum recursion depth exceeded"
nous confirme bien cette fois-ci qu'il s'agit de la limite finale.

Toutefois, si l'on installe l'application
CasioPython
sur les premières
Casio Graph 35+USB/75/95
à processeur
SH3
ainsi que sur les
Graph 85
, les résultats sont différents. maxr(prodr) n'atteint que
213
de profondeur avec l'erreur
"memory allocation failed, allocating 170 bytes"
.

Et avec maxr(sumr) l'erreur
"maximum recursion depth exceeded"
se déclenche à seulement
644
de profondeur.

L'explication de la différence en est simple. Depuis la version
1.6
,
CasioPython
dispose d'un nouveau code d'allocation mémoire lui permettant d'exploiter
256Kio
au lieu de
32Kio
. Mais hélas, pour le moment ce code n'est activé que sur les machines à processeur
SH4
, alors que les anciennes calculatrices à processeur
SH3
disposaient pourtant déjà de ces mêmes
256Kio
.

Petit classement donc de nos
Pythonnettes
basée sur la profondeur maximale de récursion :
  1. application
    CasioPython
    sur
    Casio Graph 35+E/75+E
    et
    Graph 35+USB/75/95
    à processeur
    SH4
    avec
    5351
  2. application
    CasioPython
    sur
    Casio Graph 35+USB/75/95
    à processeur
    SH3
    et
    Graph 85
    avec
    644
  3. avec
    130
  4. HP Prime
    avec
    98
    (conversion automatique en itératif au-delà)
  5. application
    KhiCAS
    sur
    Casio Graph 90+E
    avec
    98
  6. Casio Graph 90+E
    avec
    82
  7. NumWorks
    avec
    27
  8. module externe
    TI-Python
    pour
    TI-83 Premium CE
    avec
    21
  9. NumWorks
    pour navigateur avec
    10
Lien vers le sujet sur le forum: Le classement des Pythonnettes : la récursivité (Commentaires: 9)

TI-z80 TI-Python : handshake et autres modules spécifiques

Nouveau messagede critor » 30 Jan 2019, 18:07

A la rentrée 2019 le
Python
sera le seul langage de programmation préconisé pour l'enseignement de l'algorithmique au lycée en Seconde et Première.

Plusieurs calculatrices graphiques intègrent déjà une implémentation
Python
officielle dans leur dernière mise à jour, plus ou moins complète, fidèle et réussie selon le cas :
  • NumWorks
    avec
    MicroPython 1.9.4
  • Casio Graph 90+E
    avec
    MicroPython 1.9.4
  • HP Prime
    avec l'écriture
    Python
    de
    Xcas
  • le module externe
    TI-Python
    pour
    TI-83 Premium CE
    avec
    CircuitPython
    (dérivé de MicroPython)
À côté de cela nous avons aussi plusieurs implémentations communautaires, qui à la différence ne fonctionneront pas en mode examen en 2020 :

Ces diverses implémentations ne sont pas équivalentes et diffèrent dans l'éventail de modules qu'elles proposent.

Aussi comme nous l'avons déjà vu, ces implémentations diffèrent également par le contenu proposé dans chaque module.
Nous avons en effet déjà comparé les modules , , , , ,
sys
,
array
,
collections
et
gc
.

Voici un petit récapitulatif des modules disponibles sur chaque implémentation avec le nombre d'entrées offertes à chaque fois :
NumWorks
Casio
Graph 90+E
module externe
TI-Python
pour
TI-83 Premium CE
builtins218188175204190
array444
collections2
cmath121212
gc777
math4141254128
random8888
sys151215
time34
spécifique
?
(nsp)
?
(kandinsky)
?
(handshake)
Modules
7
6
3
7
9
Éléments
297+
252+
208
288
258+


D'où à date le classement suivant :
  1. avec
    7
    modules et plus de
    297
    entrées
  2. avec
    7
    modules et
    288
    entrées
  3. module externe
    TI-Python
    pour
    TI-83 Premium CE
    avec
    9
    modules et plus de
    258
    entrées
  4. NumWorks
    avec
    6
    modules et plus de
    252
    entrées
  5. Casio Graph 90+E
    avec
    3
    modules et
    208
    entrées

Un classement bien évidemment non final, puisque basé sur la comparaison d'une partie des modules.

Aujourd'hui poursuivons avec la comparaison des modules
Python
spécifiques à certains implémentations:
  • kandinsky
    pour le dessin sur
    NumWorks
  • nsp
    pour le dessin et le clavier sur
    TI-Nspire
  • et le mystérieux
    handshake
    sur le module externe
    TI-Python

Pour cela, utilisons le script suivant :
Code: Tout sélectionner
#platforms:
#0: MicroPython / TI-Nspire
#1: MicroPython / NumWorks
#2: MicroPython / G90+E
#3: MicroPython / G35+E/USB / G75/85/95
#4: CircuitPython / TI-Python / 83PCE
#5: Xcas / HP Prime
#6: KhiCAS / Graph 90+E
def getplatform():
  id=-1
  try:
    import sys
    try:
      if sys.platform=='nspire':id=0
      if sys.platform=='TI-Python Adapter':id=4
    except:id=3
  except:
    try:
      import kandinsky
      id=1
    except:
      try:
        if chr(256)==chr(0):id=5+(not ("HP" in version()))
      except:
        id=2
  return id
 
platform=getplatform()
#lines shown on screen
plines=[29,12,  7, 9,11,0,0]
#max chars per line
#(error or new line if exceeded)
pcols =[53,99,509,32,32,0,0]

nlines=plines[platform]
ncols=pcols[platform]
curline=0

def mprint(*ls):
  global curline
  st=""
  for s in ls:
    if not(isinstance(s,str)):
      s=str(s)
    st=st+s
  stlines=1+int(len(st)/ncols)
  if curline+stlines>=nlines:
    input("Input to continue:")
    curline=0
  print(st)
  curline+=stlines

def sstr(obj):
  try:
    s=obj.__name__
  except:
    s=str(obj)
    a=s.find("'")
    b=s.rfind("'")
    if a>=0 and b!=a:
      s=s[a+1:b]
  return s

def isExplorable(obj):
  s=str(obj)
  return s.startswith("<module '") or s.startswith("<class '")

def explmod(pitm,pitmsl=[],reset=True):
  global curline
  if(reset):
    curline=0
    pitmsl=[sstr(pitm)]
  hd="."*(len(pitmsl)-1)
  spath=".".join(pitmsl)
  c=0
  for itms in sorted(dir(pitm)):
    c=c+1
    try:
      itm=eval(spath+"."+itms)
      mprint(hd+itms+"="+str(itm))
      if isExplorable(itm):
        pitmsl2=pitmsl.copy()
        pitmsl2.append(itms)
        c=c+explmod(itm,pitmsl2,False)
    except:
      mprint(hd+itms)
  if c>0:
    mprint(hd+"Total: "+str(c)+" item(s)")
  return c

Le module
nsp
spécifique aux
TI-Nspire
nous révèle
10
éléments.

Le module
kandinsky
spécifique à la
NumWorks
nous révèle
5
éléments.

Enfin, voici ci-dessous une reconstitution de ce que le module externe
TI-Python
devrait afficher à partir de nos observations d'octobre dernier :
TI-Python a écrit:>>> from EXPLMOD import *
>>> import handshake
>>> explmod(handshake)
__file__=handshake.py
__name__=handshake
_print=<function>
print=<function>
Total: 4 item(s)
4


Il semble donc s'agir d'un module redéfinissant la fonction print(), peut-être pour que son affichage se produise bien sur l'écran de la calculatrice
TI-83 Premium CE
qui, rappelons-le, n'est techniquement pas la machine exécutant les scripts puisque c'est le processeur du module externe
TI-Python
qui s'en charge.
Il sera intéressant d'en consulter le code, ce que nous n'avons pas pu faire la dernière fois. ;)

Suite à cela, mettons à jour notre petit récapitulatif :
NumWorks
Casio
Graph 90+E
module externe
TI-Python
pour
TI-83 Premium CE
builtins218188175204190
array444
collections2
cmath121212
gc777
math4141254128
random8888
sys151215
time34
spécifique
10
(nsp)
5
(kandinsky)
4
(handshake)
Modules
7
6
3
7
9
Éléments
307
257
208
288
262


Voici donc enfin le classement final de la richesse des différentes implémentations
Python
sur calculatrices: :bj:
  1. avec
    7
    modules et
    307
    entrées
  2. avec
    7
    modules et
    288
    entrées
  3. module externe
    TI-Python
    pour
    TI-83 Premium CE
    avec
    9
    modules et
    262
    entrées
  4. NumWorks
    avec
    6
    modules et
    257
    entrées
  5. Casio Graph 90+E
    avec
    3
    modules et
    208
    entrées
Enfin final jusqu'à-ce que l'un ou l'autre des constructeurs se décide à nous rajouter de nouveaux modules. ;)
Lien vers le sujet sur le forum: TI-Python : handshake et autres modules spécifiques (Commentaires: 0)

Casio Prix Tangente Bernard-Novelli, programme un jeu !

Nouveau messagede critor » 30 Jan 2019, 14:47

Les éditions POLE qui publient les excellents magazines
Tangente
, organisent un concours de programmation intitulé
Prix Bernard-Novelli
, agrégé de Mathématiques nous ayant quitté en 2011, qui créa divers jeux de réflexion et anima dans ce cadre durant plus de 15 ans des ateliers ludiques sur le raisonnement à destination des collégiens.

Le concours est ouvert aux collégiens et lycéens, et il s'agit cette année de programmer un jeu, dans le langage de ton choix. :bj:

Plus précisément, il t'est possible de participer :
  • En candidat libre, c'est-à-dire seul ou en groupe jusqu'à cinq personnes.
    Dans ce cas, le thème est imposé : ton jeu doit porter sur les
    grilles logiques
    , thème sur lequel a justement travaillé Bernard. Quelques ressources à ce sujet suivront ci-dessous, histoire de te faire bien voir du jury. ;)
    Il te suffit juste de te préinscrire en ligne d'ici le
    28 février 2019
    .
    10206
  • Via ton collège/lycée. Dans ce cas le thème du jeu à programmer est laissé au libre choix de l'établissement, et c'est également l'établissement qui décide du langage de programmation.
    Les préinscriptions s'effectuent ici par courriel à
    tropheestangente@yahoo.fr
    .
    Parles-en à un de tes enseignants de Maths/Sciences sympa. ;)
    Afin de t'aider à préparer le concours dans ton établissement,
    Casio
    enverra en prime une calculatrice
    Graph 90+E
    aux 10 premiers établissements inscrits ayant fait le choix du langage
    Python
    ! :bj:

A gagner entre autres pour les lauréats une superbe calculatrice
Casio
haut de gamme ! :D



Lien
:
http://www.tropheestangente.com/inscription.php

Ressources
:


Crédits photos
:
Bernard Novelli
dans les locaux de
Tangente
Lien vers le sujet sur le forum: Prix Tangente Bernard-Novelli, programme un jeu ! (Commentaires: 20)

Campagne de dons
Pour nous aider à financer nos déplacements sur les salons/congrès qui vous donnent du contenu exclusif

Vous aurez droit aux avantages VIP et des goodies !
2%
-
Rechercher
-
Sujets à la une
Avantages VIP et goodies pour les donateurs !
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
1234
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...

Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety 
-
Stats.
403 utilisateurs:
>368 invités
>30 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)