Ver la Versión Completa : 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
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.
var
c: Char;
begin
c := '+';
case c of
'-': ShowMessage('Conque menos...');
'+': ShowMessage('Más, hombre, más...');
end;
end;
hola, gracias, muy rapida la respuesta pero no responde mi inquietud, quiza se deba a mi sintetica pregunta pero:
ej:
si yo tengo:
var
n1,n2:integer;
s1:char;
begin
n1:=1;
n2:=3;
s1:='+'
//como puedo hacer el calculo.
GRACIAS
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).
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 (http://www.clubdelphi.com/foros/search.php?) de estos Foros para tratar de localizar información sobre "parser", "evaluadores", "expresiones matemáticas", etc., etc.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.