Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #29  
Antiguo 27-02-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 28
Delphius Va camino a la fama
Bueno si hay algo que no me gusta es que yo quede como el "malo de la película".

Viendo que no hubo nada nuevo por aquí decidí arrojar un poco de luz sobre rauros para ver si con ello se ilumina y entiende por donde van las cosas.

Hice un pequeña función, algo simple, que recibe una ecuación elemental en notación polaca inversa (string) y calcula el resultado (float).

Creería que con este simple ejemplo rauros, y cualquier otro interesado en el tema, podría comprender de como proceder. Bueno... no más rollo aquí va el código:
Código Delphi [-]
function TForm1.CalcularEcuacion(Ecuacion: string): real;
// CalcularEcuacion es una funcion que realiza cálculos de ecuaciones
// simples del tipo: Operando1#Operando2Operador
// Por ejemplo: 21#12+, es equivalente a hacer 21 + 12.
// Los operadores permitidos son: +,-,*,/

// La función puede trabajar con números reales.
// NOTA: no tiene demasiados controles, es sólo una demostración.
const
  FLAG = '#'; // nuestra bandera!
var i,len: integer;
    op1,op2: real; //operandos
    res: real; //resultado
    pos_flag: integer;

    aux: string;
    oper: char;
begin
    res := 0;

    len := Length(Ecuacion);  // calculamos el "tamaño"
    pos_flag := Pos(FLAG,Ecuacion); // obtenemos la posicion de bandera

    // Obtenemos operando 1
    for i := 1 to (pos_flag - 1) do
      Aux := Aux + Ecuacion[i];

    op1 := StrToFloat(Aux);

    //preventiva..
    Aux := '';

    // Obtenemos operando 2
    for i := (pos_flag + 1) to (len - 1) do
       Aux := Aux + Ecuacion[i];

    Op2 :=  StrTofloat(Aux);

   // obtenemos el operador
   oper := Ecuacion[len];

   //calculamos según el operador
   case oper of
   '+': res := Op1 + op2;
   '-': res := op1 - op2;
   '*': res := op1 * op2;
   '/': if op2 <> 0.0
           then res := op1 / op2;
   end; // fin case

   result := res;
end;

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Expresiones en QuickReport (Delphi 7) Carlos A Ortega Impresión 5 12-06-2007 11:55:09
expresiones regulares en sql jonmendi SQL 1 24-12-2004 15:28:39
Expresiones en QReport StartKill Impresión 4 31-05-2004 23:20:29
Expresiones matemáticas Pandre Varios 0 04-09-2003 01:43:49
Expresiones regulares roman Varios 1 18-08-2003 17:08:37


La franja horaria es GMT +2. Ahora son las 15:12:09.


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