π
<-
[^]

Enlever valeur absolue d'une expression

Programmation et implémentation d'algorithmes.

Enlever valeur absolue d'une expression

Unread postby azerty89 » 09 Feb 2012, 23:08

Bonjour à tous,

Je sollicite votre aide sur le programme que j'écris.

Pour faire court, je cherche une solution pour :

1) Soit effacer les termes absolus d'une expression.

Exemple : 2+abs(x) qui donnerait 2+x

2) Soit, cela se rapporte un peu au premier cas, pouvoir préciser que les valeurs non numériques contenues dans les variables sont systématiquement positives et non nulles.

Je séche sur la méthode, j'espère qu'il y en a une !!

Merci !
User avatar
azerty89
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 75%
 
Posts: 5
Joined: 09 Feb 2012, 23:01
Gender: Not specified
Calculator(s):

Re: Enlever valeur absolue d'une expression

Unread postby Persalteas » 10 Feb 2012, 12:57

les valeurs non numériques contenues dans les variables sont systématiquement positives et non nulles.


Là, il y a un truc que mon cerveau avale pas...

Une valeur non numérique positive ? C'est à dire ?
User avatar
PersalteasMODO
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 82.5%
 
Posts: 2216
Images: 102
Joined: 04 Feb 2010, 01:00
Location: Savoie 73 (France)
Gender: Male
Calculator(s):
Class: Bio Sup/Bio Spé, agro-véto

Re: Enlever valeur absolue d'une expression

Unread postby azerty89 » 10 Feb 2012, 13:39

Oui c'est pas très bien formulé :#roll#:

par exemple :

2*l+5 → calcul

Préciser que l ne peut avoir pour valeur que des valeurs positives, l apparient à R+*

Cela pour éviter que des calculs (de norme, car il s'agit en pratique de composantes de vecteurs) entrainent des abs() dans le résultat...
User avatar
azerty89
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 75%
 
Posts: 5
Joined: 09 Feb 2012, 23:01
Gender: Not specified
Calculator(s):

Re: Enlever valeur absolue d'une expression

Unread postby Persalteas » 10 Feb 2012, 14:24

Euh, pourquoi ne pas tout simplement le préciser au moment ou la valeur l est choisie ?

ça dépend de ce que tu veux faire exactement.

Ou sinon, mets une condition pour que le calcul ne soit fait que si l est positif-non-nul et sinon ignoré.
User avatar
PersalteasMODO
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 82.5%
 
Posts: 2216
Images: 102
Joined: 04 Feb 2010, 01:00
Location: Savoie 73 (France)
Gender: Male
Calculator(s):
Class: Bio Sup/Bio Spé, agro-véto

Re: Enlever valeur absolue d'une expression

Unread postby azerty89 » 10 Feb 2012, 19:41

Le problème c'est que l n'est jamais choisi. Le programme permet de calculer une expression, il ne fait pas de calcul avec des valeurs fixées....
User avatar
azerty89
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 75%
 
Posts: 5
Joined: 09 Feb 2012, 23:01
Gender: Not specified
Calculator(s):

Re: Enlever valeur absolue d'une expression

Unread postby Persalteas » 10 Feb 2012, 19:44

mais alors, imaginons que l aie une mauvaise valeur, tu veux qu'il se passe quoi ?

-le calcul soit fait avec la valeur positive ? (j'imagine que ce n'est pas ça)
-le calcul soit ignoré ?
-le calcul soit fait, mais on rajoute un deuxième calcul derrière pour corriger ?
User avatar
PersalteasMODO
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 82.5%
 
Posts: 2216
Images: 102
Joined: 04 Feb 2010, 01:00
Location: Savoie 73 (France)
Gender: Male
Calculator(s):
Class: Bio Sup/Bio Spé, agro-véto

Re: Enlever valeur absolue d'une expression

Unread postby azerty89 » 10 Feb 2012, 20:27

Ben en fait il ne peux pas vraiment y avoir de mauvaise valeur ^^

Le programme en question permet de calculer l'expression du torseur cohésion (pour des calculs de résistance de matériaux) le long de n'importe quelle poutre en 2D. L'utilisateur rentre les coordonnées de la poutre, les efforts excercés, et le programme sort tout les termes du torseur de cohésion.

Les coordonnées de la poutre sont stockés sous forme de matrice, et pour les calculs à effectuer, il me faut des distances entre des points. Je fais appel à norme(), et vu que les coordonnées ne sont pas forcément des valeurs numériques fixées, norme() renvoie des abs().... Mathématiquement correct, mais inutile ici, vu qu'il s'agit de longueurs, qui ne peuvent pas être négative, ni être nulle, ca n'aurait pas de sens...

Au final, "l'algorithme" fonctionne, l'expression calculée correspond principalement à des sommes et des produits de termes.... mais les résultats ne sont pas simplifiés du tout...

Par exemple, je viens de faire un essai sur un cas très simple, le résultat obtenu est :

f*( x+|l|- l ), ce serait parfait si cette valeur absolue pouvait partir, la calcu pourrait faire la simplification pour n'obtenir que f*x.

Du coup face au desespoir (!!), je réfléchis à faire une fonction qui, en convertissant en string, chercherait les abs() de l'expression, recopierait l'expression en contournant cette fonction, pour en suite reconvertir en expression... Mais je trouve ca lourd....

Merci de t'interesser à mon problème !
User avatar
azerty89
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 75%
 
Posts: 5
Joined: 09 Feb 2012, 23:01
Gender: Not specified
Calculator(s):

Re: Enlever valeur absolue d'une expression

Unread postby Persalteas » 10 Feb 2012, 21:37

AAAAHHhhHhhhhh.....


ça y est j'ai compris. Comme quoi en expliquant tout d'un coup, ça marche mieux.

C'est donc la TI qui te renvoie une valeur en abs(valeur).


je ne l'avais pas compris comme ça, moi je n'ai pas de TI 89 et sur la 83 que j'ai, toute valeur en abs(valeur) est automatiquement transformée en la valeur seule.

Il te faut donc un calcul qui élimine le abs.
ça y est j'ai compris.

J'imagine que faire
Code: Select all
abs(l)/1
te renvoie quand même abs(l) et non pas l ?

dans ce cas, je viens de demander aux hautes autorités de ce forum qui m'ont dit que:
Code: Select all
abs(x)|x>0


renverrait X au lieu de abs(x), | voulant dire "tant que".
User avatar
PersalteasMODO
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 82.5%
 
Posts: 2216
Images: 102
Joined: 04 Feb 2010, 01:00
Location: Savoie 73 (France)
Gender: Male
Calculator(s):
Class: Bio Sup/Bio Spé, agro-véto

Re: Enlever valeur absolue d'une expression

Unread postby azerty89 » 11 Feb 2012, 00:13

Inserer une contrainte avec "|" marche bien dans l'écran de calcl, mais dans un programme je n'ai pas réussi à faire fonctionner.

Si quelqu'un connait la syntaxe, je n'ai pas trouvé...

J'ai par contre fait une fonction qui eneleve les valeurs absolues d'une expression. Ca a l'air de fonctionner, mais j'aimerais que ca reste provisoire.... C'est un peu du bricolage !!

Je mets le code, pour info ^^
Code: Select all
(datain)
Func
local unabs, unabst, pos, dimen, car, par
string(datain)»unabs
Loop
    0»par
    inString(unabs,"abs(")»pos
    If pos=0 Then
        expr(unabs)»unabs
        Return unabs
    EndIf
    dim(unabs)»dimen
    left(unabs,pos-1)»unabst
    pos+4»pos
    While posœdimen
        mid(unabs,pos,1)»car
        If car="(" Then
            par+1»par
            ElseIf car=")" Then
            par-1»par
        EndIf
        If par=ª1 Then
            0»par
            Else
            unabst&car»unabst
        EndIf
        pos+1»pos
    EndWhile
unabst»unabs
EndLoop
EndFunc


Désolé pour les noms de variables particuliers ^^
User avatar
azerty89
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Level up: 75%
 
Posts: 5
Joined: 09 Feb 2012, 23:01
Gender: Not specified
Calculator(s):

Re: Enlever valeur absolue d'une expression

Unread postby Persalteas » 11 Feb 2012, 00:16

Aie... Là, je ne peux plus t'aider, ça sort de mon domaine...

comme je t'ai dit je n'ai pas de 89, je comprends mal leurs codes.

je redemanderai aux connaisseurs comment faire dans un programme.
User avatar
PersalteasMODO
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 82.5%
 
Posts: 2216
Images: 102
Joined: 04 Feb 2010, 01:00
Location: Savoie 73 (France)
Gender: Male
Calculator(s):
Class: Bio Sup/Bio Spé, agro-véto

Next

Return to Programmation

Who is online

Users browsing this forum: No registered users and 1 guest

-
Search
Calc :
-
Featured topics
10€ remboursés pour tout achat d'une TI-83 Plus.fr USB jusqu'au 30 septembre !
Convert your images and PDF documents for TI-Nspire and HP-Prime !
Jailbreak your TI-Nspire for the best of gaming and modding !
Promo Jarrety/TI-Planet: la TI-Nspire CX CAS à seulement 142€ TTC port inclus!
Offre Jarrety/TI-Planet: la TI-84 Plus C Silver Edition (couleur) à seulement 109€ TTC port inclus!
Transforme ta TI-Nspire CX en console de jeux Nintendo Game Boy Advance!
123456
-
Donations
For more contests, more prizes, helping us pay the server and domains...
PayPal : paiement en ligne sécurisé - secure online payments
Discover the the advantages of a donor account !JoinRejoignez the donors and/or premium !les donateurs et/ou premium !

Partner and ad
Notre partenaire Jarrety 
-
Stats.
90 utilisateurs:
>83 invités
>2 membres
>5 robots
Record simultané (sur 6 mois):
2546 utilisateurs
 (18/06/2014)
-
Affiliates
Texas Instruments France
education.ti.com/france
 (français)
Banque de programmes TI
ticalc.org
 (anglais)
La communauté TI-82
tout82.free.fr
 (français)