Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   calculadora Convergente de numero (https://www.clubdelphi.com/foros/showthread.php?t=76810)

Cartel 28-11-2011 21:35:13

calculadora Convergente de numero
 
Hola amigos tengo una peuqueña ayudita

quiro hacer una calculadora convergente osea que yo meta 2 digitos y me arroje un resultado que yo kiero por ejemplo

pongo 3 edit y 1 boton

El edit 1 es el valor que yo kiero x ejemplo 12

el edit 2 es un valor del 1 al 9 pero 1 = 0,2 2 = 0.4 y si sucesivamente

y el edit 3 sea el resultado

el procedimeiento seria

edit1 =12 * edit2 =1 pero con valor(0.2) = edit3=2.4

la ayuda que necesito es como aria yo para que cuando ponga en el edit2 un 1 el programa me tome ese 1 como 0.2 para la multiplicacion

Ojala y me ayuden ^^

olbeup 28-11-2011 21:44:27

Que tal esto:
Código Delphi [-]
...
var
  E1: Integer;
  E2, E3: Extended;
begin
  E1 := StrToInt(Edit1.Text);
  E2 := (StrToInt(Edit2.Text) * 0.2);
  E3 := (E1 * E2);
  Edit3.Text := FormatFloat('0.00', E3);
end;
Un saludo.

Cartel 28-11-2011 22:07:08

Cita:

Empezado por olbeup (Mensaje 419769)
Que tal esto:
Código Delphi [-]
...
var
  E1: Integer;
  E2, E3: Extended;
begin
  E1 := StrToInt(Edit1.Text);
  E2 := (StrToInt(Edit2.Text) * 0.2);
  E3 := (E1 * E2);
  Edit3.Text := FormatFloat('0.00', E3);
end;
Un saludo.

se esa seria buna pero toy en lo mismo ya q si el 1 = 0.2 el 2 = 0.4 y el 3= 2.4 como se aria ya q si coloco el 3 me va a no me daria la multiplicacion x 2.4 sino x 0.6

Casimiro Noteví 28-11-2011 22:24:51

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.

ecfisa 28-11-2011 22:53:24

Cita:

Empezado por Cartel (Mensaje 419771)
se esa seria buna pero toy en lo mismo ya q si el 1 = 0.2 el 2 = 0.4 y el 3= 2.4 como se aria ya q si coloco el 3 me va a no me daria la multiplicacion x 2.4 sino x 0.6

No entiendo... :confused:

Según tu primer mensaje:
Cita:

el edit 2 es un valor del 1 al 9 pero 1 = 0,2 2 = 0.4 y si sucesivamente
Por lo tanto: 1 -> 0.2, 2 -> 0.4, 3 -> 0.6, ...


¿ De donde sale el valor 2.4 ? :confused:

Saludos.

Cartel 28-11-2011 23:03:19

Cita:

Empezado por ecfisa (Mensaje 419786)
No entiendo... :confused:

Según tu primer mensaje:


Por lo tanto: 1 -> 0.2, 2 -> 0.4, 3 -> 0.6, ...


¿ De donde sale el valor 2.4 ? :confused:

Saludos.

osea no son numeros consecutivo arriba me iso fatal pero asea lo que quiero es que cuando yo en el edit2 escriba 2 la plicacion no lo teme como 2 sino como 0.4 y cuando escriba 3 no me lo tome como 3 sino como 2.4

olbeup 28-11-2011 23:09:58

Cómo multiplicas tú, 12 * 0.2 = 2.4, 3 * 0.2 = 0.6, creo que te has confundido, y el ejemplo que te he puesto, es válido.

Creo que la clase de matemática te la fumastes.

Un saludo.

Cartel 28-11-2011 23:13:59

Cita:

Empezado por olbeup (Mensaje 419791)
Cómo multiplicas tú, 12 * 0.2 = 2.4, 3 * 0.2 = 0.6, creo que te has confundido, y el ejemplo que te he puesto, es válido.

Creo que la clase de matemática te la fumastes.

Un saludo.

NO comentes si no entiendes xD

yo lo que quiero es que cuando en el edit 2 escriba 1 ese 1 la aplicacion lo tome con sierto valor como x ejemplo 0.5

y cuando escriba el 2 lo tome con otro sierto valor como x ejemplo 10 y asi sucesivamente

olbeup 28-11-2011 23:23:59

Ahora si que yo ni nadie te entiende, y partimos desde tu primer mensaje, te recuerdo:
Cita:

1 = 0.2, 2 = 0.4, 3 = 0.6, 4 = 0.8, 5 = 1, 6 = 1.2, 7 = 1.4, 8 = 1.6 y 9 = 1.8
¿Esto son los valores que tiene que tomar?, ¿entonces cual es error que hemos cometido según tú?, ¿cual de los número del 1..9 esta mal?

Cita:

NO comentes si no entiendes xD
Perdona, pero si enriqueces tu pregunta con algún ejemplo, la respuesta sería sabrosa y abundante
Cita:

yo lo que quiero es que cuando en el edit 2 escriba 1 ese 1 la aplicacion lo tome con sierto valor como x ejemplo 0.5
Resulta ahora que el Edit2 si escribes 1 sale 0.5, pues no vale 0.2 ó si escribes 2 sale 10, pues no vale 0.4, según datos proporcionados por tí, lo que has puesto, eso si es erronero

Un saludo.

Cartel 28-11-2011 23:48:31

Cita:

Empezado por olbeup (Mensaje 419793)
Ahora si que yo ni nadie te entiende, y partimos desde tu primer mensaje, te recuerdo:

¿Esto son los valores que tiene que tomar?, ¿entonces cual es error que hemos cometido según tú?, ¿cual de los número del 1..9 esta mal?



Perdona, pero si enriqueces tu pregunta con algún ejemplo, la respuesta sería sabrosa y abundante

Resulta ahora que el Edit2 si escribes 1 sale 0.5, pues no vale 0.2 ó si escribes 2 sale 10, pues no vale 0.4, según datos proporcionados por tí, lo que has puesto, eso si es erronero

Un saludo.

jajaja es q es dificil de explicar pero bueno aqui va

en el idit 2 solo voy a usar los numeros 1, 2, 3, 4, 5, 6, 7, 8, 9

pero quiero que ese 1 = 1.0625
el 2 = 1.375
3 = 1.875
4 = 2.625

eso son los valeros los del 5 al 9 son otros pero para no ponerlos todos

tonces cuando yo ponga en el edit2 el 1 no me este mutiplicando el edit x el 1 sino me este multiplicanco el edit 1 con 1.0625

y cuando ponga el 2 no me este mutiplicando el edit x el 2 sino me este multiplicanco el edit 1 con 1.375

eso es lo que necesito y si me dicen pero xq no colocas el 1.0625 en ves del 1 xD es xq asi no me serviria de nada la aplicacion y pa eso usaria una calculadora

ecfisa 29-11-2011 00:07:37

Cita:

pero quiero que ese 1 = 1.0625
el 2 = 1.375
3 = 1.875
4 = 2.625
Hola.

Entonces según entiendo, la función del valor de Edit2 sería la de un índice para acceder a otro valor.

Podrías hacer algo así:
Código Delphi [-]
...
implentation
var
  TS: TStrings;

procedure TForm1.FormCreate(Sender: TObject);
begin
  TS:= TStringList.Create;
  TS.Add('1,0625');  
  TS.Add('1,375');
  TS.Add('1,875');
  TS.Add('2,625'); 
  // el resto de los valores
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit3.Text:= FloatToStr(StrToFloat(Edit1.Text)*StrToFloat(TS[StrToInt(Edit2.Text)-1]));
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  TS.Free;
end;

Saludos.

olbeup 29-11-2011 10:12:26

Espero que esto se lo que estas buscando
Código Delphi [-]
...
var
  EQ: Extended;     // Valor Equivalente 1..9
  E1, E2: Integer;  // Edit, 1..2
  E3: Extended;     // Edit3
begin
  E1 := StrToInt(Edit1.Text);
  E2 := StrToInt(Edit2.Text);
  case E2 of
    1: EQ := 1.0625;
    2: EQ := 1.375;
    3: EQ := 1.875;
    4: EQ := 2.625;
    5: EQ := 3.625;
    6: EQ := 4.875;
    7: EQ := 6.375;
    8: EQ := 8.125;
    9: EQ := 10.125;
  end;

  E3 := (E1 * EQ);

  Edit3.Text := FormatFloat('0.0000', E3);
end;
Un saludo.


La franja horaria es GMT +2. Ahora son las 08:46:41.

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