Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-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
Cita:
Empezado por rauros Ver Mensaje
Okey, pero sigo teniendo una duda. Como puedo hacer que hayan variables llamadas operaciones como tantas "banderas" hayan?
¿A que viene esta pregunta?

Creo que no me expliqué adecuadamente. el simbolo que se usa de "bandera", "flag" o como le quieras llamar es algo ficticio. Algo que se usa a modo de control.

En este caso se lo emplea para separar un operando de otro. No existe más de un tipo de bandera. Una manera de definirla es esta:

Código Delphi [-]
const
BANDERA = '#';

Y puedes hacer una comprobación así:

Código Delphi [-]
if Edit1.Text[i] = BANDERA
  then begin
           ShowMessage('Oye! En la posición i del edit se ha encontrado la bandera');
         end;

Cuando dije conjunto de operaciones, me refería a algo como:

Código Delphi [-]
Operaciones = ['+','-','*','/'];

Sugiero que para recibir ayuda, debemos conocer tus avances. A ciegas y sin saber como vás con tu código no te podemos ser de utilidad.
Lamento decirtelo pero los códigos que habías puesto antes no dicen nada de como avanzaste.
¡Te estás ahogando en un vaso con agua! Tranquilo... respira y cuentanos exactamente como estás avanzando.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #2  
Antiguo 24-02-2008
rauros rauros is offline
Miembro
 
Registrado: feb 2008
Ubicación: Alicante - Sax / Sax - Alicante
Posts: 235
Poder: 19
rauros Va por buen camino
Exactamente lo que tengo es poco. Ya que hay errores, y los pongo en comentarios para probar lo poco que tengo ... Tengo :

Código Delphi [-]
program calculadoraalgebra;

uses
  Forms,
  calculadora_de_algebra in 'calculadora_de_algebra.pas' {Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

Código Delphi [-]
unit calculadora_de_algebra;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  incognita: integer;
  partizq: integer;
  partder: integer;
  x: integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Picture.LoadFromFile('fondo.bmp');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
label4.caption:='';
partizq := StrToInt(edit1.text);
partder := StrToInt(edit2.text);
for x := 1 to 100 do
if partizq = partder then begin
label4.caption := IntToStr(x);
end
end;
end.

Código Delphi [-]
object Form1: TForm1
  Left = 284
  Top = 177
  Width = 387
  Height = 268
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object Image1: TImage
    Left = 0
    Top = 0
    Width = 377
    Height = 233
  end
  object Label1: TLabel
    Left = 128
    Top = 64
    Width = 119
    Height = 13
    Caption = 'La incógnita siempre es x'
  end
  object Label2: TLabel
    Left = 176
    Top = 32
    Width = 6
    Height = 13
    Caption = '='
  end
  object Label3: TLabel
    Left = 40
    Top = 96
    Width = 51
    Height = 13
    Caption = 'Resultado:'
  end
  object Label4: TLabel
    Left = 96
    Top = 96
    Width = 3
    Height = 13
  end
  object Edit1: TEdit
    Left = 40
    Top = 32
    Width = 121
    Height = 21
    TabOrder = 0
  end
  object Edit2: TEdit
    Left = 200
    Top = 32
    Width = 121
    Height = 21
    TabOrder = 1
  end
  object Button1: TButton
    Left = 152
    Top = 112
    Width = 75
    Height = 25
    Caption = 'Calcular'
    TabOrder = 2
    OnClick = Button1Click
  end
end
Responder Con Cita
  #3  
Antiguo 24-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
Rauros,
Sigo sin ver donde estás poniendo en práctica todo lo que se vino comentando en el hilo, ni siquiera que estuviera entre comentarios.

Dices que te da errores, ¿Cuáles?¿Donde?

Porque sigues insistiendo en ese código que nada ayuda. ¿Que es ese x?¿Qué es ese 100? ¿Porqué ese for?

Te he dicho que comencemos por acotar el problema. Por empezar en ecuaciones con una incognita.

La pregunta que debes hacerte es ¿Como se resuelve mentalmente esto? Aplicando los principios: si resto de un miembro, debo adicionarlo en el otro, si multiplico, en el otro divido.

Te hemos dados las pistas para que avances... no veo práctica de ellas.
Dime la verdad: ¿Deseas el código?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #4  
Antiguo 25-02-2008
rauros rauros is offline
Miembro
 
Registrado: feb 2008
Ubicación: Alicante - Sax / Sax - Alicante
Posts: 235
Poder: 19
rauros Va por buen camino
No no lo deseo, no me lo deis. A ver el for lo he puesto porque mi idea es probar si la x=1 y si no probar si x=2 así hasta el 100 o hasta un número que me recomendéis vosotros que no llegue a colapsar una maquina. Luego de lo otro es que como no me vea un ejemplo no voy a saber ponerlo en practica. Sorry ... Y la x pensaba que si yo digo que x=1 luego al escribir en el edit 1+x saldría 2... Ese es uno de los errores que os digo que tengo.

Última edición por rauros fecha: 25-02-2008 a las 16:55:02. Razón: añadir datos
Responder Con Cita
  #5  
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
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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:14:45.


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