Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda sobre operadores y variables!!! (https://www.clubdelphi.com/foros/showthread.php?t=25278)

rob1 18-09-2005 02:01:46

Ayuda sobre operadores y variables!!!
 
Antes q nada perdon por postear aca no sabia donde hacerlo, mi pregunta es la siguiente :¿puedo guardar un operador como + o * en una variable y despues usarlo? por favor contesten

dec 18-09-2005 02:13:57

Hola,

Si hablamos de lo que se conoce como "sobrecarga de Operadores" creo no equivocarme si digo que Delphi no la contempla. Si nos ponemos a guardar en una variable de tipo "Char" (creo que podría ser lo suyo, a bote pronto) un caracter como "+" no tendremos problemas para hacerlo.

Código Delphi [-]
 var
   c: Char;
 begin
   c := '+';
   case c of
     '-': ShowMessage('Conque menos...');
     '+': ShowMessage('Más, hombre, más...');
   end;
 end;

rob1 18-09-2005 02:19:24

va de nuevo
 
hola, gracias, muy rapida la respuesta pero no responde mi inquietud, quiza se deba a mi sintetica pregunta pero:
ej:
si yo tengo:
Código Delphi [-]
 var
   n1,n2:integer;
   s1:char;
 begin
   n1:=1;
   n2:=3;
   s1:='+'
   //como puedo hacer el calculo.
GRACIAS

dec 18-09-2005 02:38:30

Hola,

A mí se me ocurre una forma, pero, desde luego, no sé hasta qué punto puede resultar apropiada o las complicaciones que podrían darse haciendo uso de algo como lo que propondré. Acaso estés más bien interesado en lo que se conoce como "intérpretes" (dicho mal) o "evaluadores de expresiones" (dicho mal también, probablemente).

Código Delphi [-]
function Calculo(const n1: integer; const operador:
   Char; const n2: integer) : integer;
 resourcestring
   rsErrorOperador = 'El operador no está contemplado.';
 begin
   case operador of
     '+': Result := n1 + n2;
     '-': Result := n1 - n2;
     '*': Result := n1 * n2;
     '/': Result := n1 div n2;
   else
     raise Exception.Create(rsErrorOperador);
   end;
 end;
Puedes utilizar el buscador de estos Foros para tratar de localizar información sobre "parser", "evaluadores", "expresiones matemáticas", etc., etc.


La franja horaria es GMT +2. Ahora son las 16:41:26.

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