π
<-

Probleme expr(str1

Re: Probleme expr(str1

Messagede PiR » 16 Mar 2015, 23:06

Bisam a écrit:Bah, tu fais exprès ou quoi ?
Code: Tout sélectionner
Str5+Str4->Str5
évidemment !

AHHHH d'accord, il y a juste à inverser l'ordre
Ok, autant pour moi
Merci beaucoup
Mes programmes (tous en basic) sont ici
Avatar de l’utilisateur
PiR
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 46.9%
 
Messages: 45
Inscription: 25 Fév 2015, 18:33
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S-SI

Re: Probleme expr(str1

Messagede grosged » 17 Mar 2015, 17:00

Je me suis amusé à écrire une version sans LinReg :

Code: Tout sélectionner
"2345678910→Str0
"sub(Str0,1+int(X),randInt(1,1+(X≥8→Y1
Y1(rand9)+sub("+-*/",randInt(1,4),1)+Y1(rand9→Str1
Disp Str1,expr(Str1




Et maintenant, dans le détail:

Code: Tout sélectionner
"2345678910→Str0

On aura pu se contenter d'un "12345678910→Str1 mais j'optimise légèrement : on n'a pas besoin d'avoir deux fois le caractère "1" représenté, finalement.

Code: Tout sélectionner
"sub(Str0,1+int(X),randInt(1,1+(X≥8→Y1

Y1(x) a pour fonction (!) de piocher un caractère au hasard dans la chaîne Str0, à l'emplacement X ; et quand ça tombe sur "1" , cette fonction décide au hasard d'associer ou non le "0" voisin (ainsi, considérer "1" ou "10")
C'est vrai , qu'avec cette méthode , la TI a encore moins de chance de nous sortir un "10" (mais je pense que ce n'est pas trop grave : des calculs incluant "10" sont souvent moins intéressants car plus faciles à résoudre...)

Code: Tout sélectionner
Y1(rand9)+sub("+-*/",randInt(1,4),1)+Y1(rand9→Str1

rand9 nous "pondra" théoriquement des nombres entre 0 et 8.999999...(d'où le 1+int(X) dans le sub de la fonction Y1 )
Le sub("+-*/",randInt(1,4),1) nous donne au hasard l'une des 4 opérations.
Le tout stocké dans Str1.
(A noter qu'à ce stade, la TI traite donc le résultat de Y1 comme une chaîne)

Code: Tout sélectionner
Disp Str1,expr(Str1

Affichage du calcul , et de son résultat.
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.5%
 
Messages: 776
Images: 92
Inscription: 14 Sep 2011, 12:29
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Probleme expr(str1

Messagede PiR » 17 Mar 2015, 18:05

WOWOWOWOWOWOW (bon d'accord je m'emballe)
Merci Grosged ! :D
Mes programmes (tous en basic) sont ici
Avatar de l’utilisateur
PiR
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 46.9%
 
Messages: 45
Inscription: 25 Fév 2015, 18:33
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S-SI

Re: Probleme expr(str1

Messagede Bisam » 19 Mar 2015, 00:46

Bravo Grosged !
J'avoue que je ne me rappelle pas avoir déjà pensé à utiliser les fonctions Y1,...,Y99 comme véritables fonctions dans un programme. Bien des perspectives se réouvrent...
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5670
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Probleme expr(str1

Messagede Wistaro » 20 Mar 2015, 21:03

Bisam a écrit:Pour ce qui est du renvoi au mauvais endroit lors d'une erreur, c'est plus étrange, mais cela vient certainement là encore du fait que le programme se modifie lui-même au moment de l'exécution de l'instruction "expr".



Le programme se modifie lui-même ? C'est à dire?
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 88.5%
 
Messages: 3191
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: Probleme expr(str1

Messagede Bisam » 20 Mar 2015, 21:49

Il ne se modifie pas réellement, mais la version en RAM du programme utilisée lors de l'exécution est modifiée pour être remplacée par celle où "expr(..." est substitué par sa valeur. C'est ce qui fait l'intérêt d'un langage interprété par opposition à un langage compilé : il peut modifier son propre code au moment de l'exécution.
Avatar de l’utilisateur
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 69.6%
 
Messages: 5670
Inscription: 11 Mar 2008, 00:00
Localisation: Lyon
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Probleme expr(str1

Messagede Wistaro » 20 Mar 2015, 21:52

Ok, merci de l'info !
Nouveau sur le site, ClaudeBot [spider] ? Avant de poster sur le chat et sur le forum, n'oublie pas de lire les règles. En cas de problème, tu peux m'envoyer un message, je réponds rapidement.

Liens utiles:
Image
Découvre mes programmes et mon site!
Avatar de l’utilisateur
WistaroSuper Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 88.5%
 
Messages: 3191
Images: 37
Inscription: 25 Fév 2013, 16:21
Localisation: Toulouse
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Ingénieur en électronique
YouTube: Wistaro
Twitter/X: Wistaro
GitHub: Wistaro

Re: Probleme expr(str1

Messagede PiR » 22 Mar 2015, 11:47

Grosged, avec ta méthode, comment je fais pour avoir des chiffres>10 ?
Mes programmes (tous en basic) sont ici
Avatar de l’utilisateur
PiR
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 46.9%
 
Messages: 45
Inscription: 25 Fév 2015, 18:33
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S-SI

Re: Probleme expr(str1

Messagede grosged » 24 Mar 2015, 19:04

Au delà de 10 ?..
Hmm, pour cela, il va falloir revoir un peu ma "copie" ;) :

Code: Tout sélectionner
"0123456789→Str0
"sub(Str0,X+1,1→Y1

randInt(1,99→A
Y1(10fPart(.1A
If A>9:Y1(int(.1A))+Ans
Ans→Str1

randInt(1,99→B
Y1(10fPart(.1B
If B>9:Y1(int(.1B))+Ans

Str1+sub("+-*/",randInt(1,4),1)+Ans→Str1
Disp Str1,expr(Str1

On peut aussi mettre cette partie en sous-programme (avec ,en retour, le nombre contenu dans Ans ,sous forme de chaîne)
Code: Tout sélectionner
randInt(1,99→A
Y1(10fPart(.1A
If A>9:Y1(int(.1A))+Ans
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 32.5%
 
Messages: 776
Images: 92
Inscription: 14 Sep 2011, 12:29
Genre: Homme
Calculatrice(s):
MyCalcs profile

Re: Probleme expr(str1

Messagede PiR » 24 Mar 2015, 22:25

cool merci :D
Mes programmes (tous en basic) sont ici
Avatar de l’utilisateur
PiR
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 46.9%
 
Messages: 45
Inscription: 25 Fév 2015, 18:33
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Terminale S-SI

PrécédenteSuivante

Retourner vers TI-Basic

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 7 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
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 Calculatrices à acheter chez Calcuso
-
Stats.
2066 utilisateurs:
>2040 invités
>17 membres
>9 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
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)