|
Auteur | Message |
---|
ProgVal modérateur
Nombre de messages : 4107 Age : 173 Localisation : In da cloud items : o Personalized field : Réputation : -4 Points : 6726 Date d'inscription : 09/08/2007
Profil TI: V200 - NSpire TO: 120 [2352 - 2%] Spécialité: Programmation web
| Sujet: Découper une expression Mar 21 Aoû 2007, 11:01 | |
| Bonjour, Je recherche un algorithme permettant de découpe une expression, pour un programme de calcul partagé.
Merci d'avance, ProgVal |
|
| |
tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9445 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: Découper une expression Mar 21 Aoû 2007, 13:11 | |
| de découper une expression ? par exemple 4(3x+9) =>( 3 * x + 9 ) * 4
il faudrait trouver les différents opérateurs, leur donner une priorité (les * sont prioritaires par rapport aux + par exemple) les regrouper selon les parenthèses ça serait un peu compliqué à faire |
|
| |
AdRiWeB amis
Nombre de messages : 3655 Age : 31 Localisation : Juste sous mes cheveux Loisirs : Internet, programmation, TI, musique, tennis-de-table ... Humeur : ^^ items : o Personalized field : Réputation : 0 Points : 6286 Date d'inscription : 12/08/2007
Profil TI: TI-84 Plus, nspire CAS TO: 2429 {2} Spécialité: Basic z80
| Sujet: Re: Découper une expression Mer 22 Aoû 2007, 11:53 | |
| ou alors, faudrait quelqu'un assez fort en asm ... |
|
| |
ProgVal modérateur
Nombre de messages : 4107 Age : 173 Localisation : In da cloud items : o Personalized field : Réputation : -4 Points : 6726 Date d'inscription : 09/08/2007
Profil TI: V200 - NSpire TO: 120 [2352 - 2%] Spécialité: Programmation web
| Sujet: Re: Découper une expression Mer 22 Aoû 2007, 12:35 | |
| En gros: 6*5+3/6+9 = ((6*5)+(3/6))+9 |
|
| |
tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9445 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: Découper une expression Mer 22 Aoû 2007, 13:49 | |
| |
|
| |
ProgVal modérateur
Nombre de messages : 4107 Age : 173 Localisation : In da cloud items : o Personalized field : Réputation : -4 Points : 6726 Date d'inscription : 09/08/2007
Profil TI: V200 - NSpire TO: 120 [2352 - 2%] Spécialité: Programmation web
| Sujet: Re: Découper une expression Lun 27 Aoû 2007, 10:35 | |
| Ce que je veux dire, c'est que, en sortie, je n'ai plus besoin d'utiliser la règle des priorités, j'ai juste à analyser les parenthèses. |
|
| |
AdRiWeB amis
Nombre de messages : 3655 Age : 31 Localisation : Juste sous mes cheveux Loisirs : Internet, programmation, TI, musique, tennis-de-table ... Humeur : ^^ items : o Personalized field : Réputation : 0 Points : 6286 Date d'inscription : 12/08/2007
Profil TI: TI-84 Plus, nspire CAS TO: 2429 {2} Spécialité: Basic z80
| Sujet: Re: Découper une expression Lun 27 Aoû 2007, 10:54 | |
| si tu veux un truc qui soit plus rapide, autant que tu te mettes au RPL, ta plus qu'a analyser l'ordre ^^ |
|
| |
tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9445 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: Découper une expression Lun 27 Aoû 2007, 13:51 | |
| c'est plutôt regrouper alors? d'abord dans ton exemple faut trouver les "+" donc d'abord tu convertis ton expression en chaine de caractères, tu parcoure la chaine pour trouver les "+" tu stocke leur position dans une liste, par exemple la liste plus, qui contient au départ {0,dim( chaine)} dans ton cas 6*5 +3/6 +9 la liste plus contient alors {0,4,8,9} puis ensuite tu traites séparément les différentes parties de l'expression(la partie 6*5 (0->4), 3/6 (4-> et 9 (9) |
|
| |
ProgVal modérateur
Nombre de messages : 4107 Age : 173 Localisation : In da cloud items : o Personalized field : Réputation : -4 Points : 6726 Date d'inscription : 09/08/2007
Profil TI: V200 - NSpire TO: 120 [2352 - 2%] Spécialité: Programmation web
| Sujet: Re: Découper une expression Lun 27 Aoû 2007, 19:19 | |
| - tama a écrit:
- {0,4,8,9}
Ils viennent d'où le 0 et le 9? |
|
| |
tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9445 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: Découper une expression Lun 27 Aoû 2007, 20:46 | |
| le début et la fin c'est pour éviter des erreur dimension |
|
| |
ProgVal modérateur
Nombre de messages : 4107 Age : 173 Localisation : In da cloud items : o Personalized field : Réputation : -4 Points : 6726 Date d'inscription : 09/08/2007
Profil TI: V200 - NSpire TO: 120 [2352 - 2%] Spécialité: Programmation web
| Sujet: Re: Découper une expression Mar 28 Aoû 2007, 10:10 | |
| - tama a écrit:
- le début et la fin c'est pour éviter des erreur dimension
Inutile: fonction dim(plus) |
|
| |
tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9445 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: Découper une expression Mar 28 Aoû 2007, 13:48 | |
| nan mais tu peux utiliser une boucle comme ça - Code:
-
For i,1,dim(plus)-1 mid(e,plus[i],plus[i+1]-plus[i]) //trouve ce qu'il y a entre 2 "+" ... End
|
|
| |
ProgVal modérateur
Nombre de messages : 4107 Age : 173 Localisation : In da cloud items : o Personalized field : Réputation : -4 Points : 6726 Date d'inscription : 09/08/2007
Profil TI: V200 - NSpire TO: 120 [2352 - 2%] Spécialité: Programmation web
| Sujet: Re: Découper une expression Mer 29 Aoû 2007, 12:46 | |
| Ouais, mais c'est pas bien rapide, surtout que si je veux faire du calcul partagé, c'est un long calcul, donc autant n'utiliser qu'une seule calto. |
|
| |
tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9445 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: Découper une expression Mer 29 Aoû 2007, 13:05 | |
| |
|
| |
ibi membre
Nombre de messages : 35 Age : 31 items : o Personalized field : Réputation : 0 Points : 5925 Date d'inscription : 26/05/2008
Profil TI: 84 et 89 Titanium TO: 600 Spécialité: Basic 68k
| Sujet: Re: Découper une expression Dim 08 Juin 2008, 16:11 | |
| Ben le truc c'est qu'en tant que calculatrice formelle les calculs s'effectuent directement sous la forme la plus simple d'une expression. Donc même le meilleur programme C ou ASM (ou Pascal ...) ne pourra pas effectuer un tel découpage puisque les programmes tels qu'ils soient feront effectuer leurs calcul par l'AMS de la machine. Celui ci n'étant pas prévu pour effectuer d'autres modes de calcul c'est impossible.
Une autre solution pourrait consister à effectuer des opérations sur les chaines de caractère. Le problème persistant serait le fait que les calculs ne s'effectuent plus sur les chaines.
Avec des programmes type inStrAdv (je crois) et Flib il est sans aucun doute possible de trouver les opérations implicites qui ont lieu dans le string. Ensuite avec la fonction Setbyte de flib il est aisé de modifier la chaine.
Bonne continuation ... |
|
| |
ProgVal modérateur
Nombre de messages : 4107 Age : 173 Localisation : In da cloud items : o Personalized field : Réputation : -4 Points : 6726 Date d'inscription : 09/08/2007
Profil TI: V200 - NSpire TO: 120 [2352 - 2%] Spécialité: Programmation web
| Sujet: Re: Découper une expression Dim 08 Juin 2008, 16:22 | |
| On peut facilement faire des convertions expression-chaîne: expr et string |
|
| |
ibi membre
Nombre de messages : 35 Age : 31 items : o Personalized field : Réputation : 0 Points : 5925 Date d'inscription : 26/05/2008
Profil TI: 84 et 89 Titanium TO: 600 Spécialité: Basic 68k
| Sujet: Re: Découper une expression Dim 08 Juin 2008, 17:04 | |
| oui mais dès que tu convertit en Expr() la machine simplifie l'expression |
|
| |
ProgVal modérateur
Nombre de messages : 4107 Age : 173 Localisation : In da cloud items : o Personalized field : Réputation : -4 Points : 6726 Date d'inscription : 09/08/2007
Profil TI: V200 - NSpire TO: 120 [2352 - 2%] Spécialité: Programmation web
| Sujet: Re: Découper une expression Dim 08 Juin 2008, 17:11 | |
| oui, je ne vois pas ce que ça complique |
|
| |
tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9445 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: Découper une expression Dim 08 Juin 2008, 21:23 | |
| sinon y a la fonction part() qui peut t'être utile |
|
| |
Contenu sponsorisé
| Sujet: Re: Découper une expression | |
| |
|
| |
|