Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-09-2004
AMC AMC is offline
Registrado
 
Registrado: jun 2003
Posts: 4
Poder: 0
AMC Va por buen camino
Calculo con un String

Hola a todos.

Alguien sabe si existe en delphi una instruccion para el calculo del
contenido de un string.
El motivo de que sea un string, es porque dicho string es la concatenacion
de otras variables.

por ejemplo :

procedure
var
s : string;
begin
s := '((15*3) + 8 - (5*2))';

¿ como se puede calcular el valos de 's' ?

Gracias a todos.
Responder Con Cita
  #2  
Antiguo 08-09-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Lo que buscas es un evaluador de expresiones matematicas, igual buscando por "parser" en los forso encuentras algo. Yo he buscado por evaluar expresiones y he obtenido este resultado en los foros.

evaluar expresiones

Saludos y Espero te ayude.
Responder Con Cita
  #3  
Antiguo 08-09-2004
CHiCoLiTa CHiCoLiTa is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 21
CHiCoLiTa Va por buen camino
Tal y como lo tienes puesto, te va a devolver exactamente lo mismo que tienes.
Si por el contrario quieres que lo que te aparezca es el resultado de la operacion matematica en una variable de tipo String podria poner algo como esto:
Código:
s := IntToStr((15*3) + 8 - (5*2));
Responder Con Cita
  #4  
Antiguo 08-09-2004
Avatar de Odnanref
Odnanref Odnanref is offline
Miembro
 
Registrado: jul 2003
Ubicación: Aguascalientes, Ags. México
Posts: 11
Poder: 0
Odnanref Va por buen camino
Igual que chicolita

Hola

Mira la idea anterior es la mas viable solo queria complementar con esta otra instrucción en el caso de que realices diviciones no te serviria InttoStr entonces utiliza FloatToStr.

Espero que te sirva.

Saludos desde Aguascalientes México
__________________
Tec. Fernando M. Flores M.
Aguascalientes Ags. México
Email: odnanrefleugim@hotmail.com,
fernandomiguelf02@yahoo.com.mx
Responder Con Cita
  #5  
Antiguo 08-09-2004
Avatar de Odnanref
Odnanref Odnanref is offline
Miembro
 
Registrado: jul 2003
Ubicación: Aguascalientes, Ags. México
Posts: 11
Poder: 0
Odnanref Va por buen camino
Disculpa por mi respuesta anterior

Hola

Disculpa me deje llevar por lo que pensaba en ese momento y no analice bien tu pregunta.

Dices que tienes una variable con informacion de una ecuación como

s:='5*3/(6+7)'

entonces el hecho de que manejes caracteres como: " / ", " * ", " + ", " - " , " ( "; te impide hacer la conversion directa de string a a numero.

Tendrias que hacer un barrido de tu variable en busqueda de esos caracteres para poder identificar que operación realizaras.

Si me explicaras cual es la finalidad de tu programa tal vez te pueda ayudar mejor.

Saludos desde Aguascalientes, México.
__________________
Tec. Fernando M. Flores M.
Aguascalientes Ags. México
Email: odnanrefleugim@hotmail.com,
fernandomiguelf02@yahoo.com.mx
Responder Con Cita
  #6  
Antiguo 09-09-2004
AMC AMC is offline
Registrado
 
Registrado: jun 2003
Posts: 4
Poder: 0
AMC Va por buen camino
El motivo que dentro del string existan los operadores "+,-.*,/" asi como "(" y ")"
es porque dicho string se va componiendo segun unas formulas que como resultado
da otra formula a su vez que se deposita en un string.
¿ como se calcula la formula del string ?
Por Ejemplo : S := '((12*3) + 5 -(5*2))';
Responder Con Cita
  #7  
Antiguo 09-09-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Este tema es regularmente parte de un curso de autómatas y compiladores, y las soluciones robustas se basan en el uso de árboles, además de un analizador sintactico/semántico para evaluar las expresiones.

Te han recomendado ya un hilo en el que se dan algunas alternativas de componentes ya hechos que evaluan las expresiones. ¿no te sirve alguno de ellos?

hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 14-09-2004
soul6301 soul6301 is offline
Miembro
 
Registrado: may 2004
Posts: 77
Poder: 20
soul6301 Va por buen camino
Yo buscaba lo mismo cuando recién ingresé al club, pero no exista tal cosa (hasta donde sé) que exista un evaluador de código como el que tú quieres. Si deseas evaluar expresiones matemátcias, debes usar un evaluador matemático, al cual le das un función (de tipo string) y devuelve un resultado (de tipo extended). Existe un componente que hace eso, pero el que obtuve es muy limitado en sus funciones. Yo hice el mío, propio, si quieres puedo darte un ejemplo o enseñarte a desarrollar uno.

Suerte.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:18:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi