Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Calcular cuanto hay de plata segun billetes y monedas (https://www.clubdelphi.com/foros/showthread.php?t=71961)

ingabraham 20-01-2011 21:18:59

Calcular cuanto hay de plata segun billetes y monedas
 
villetes de 50. = b1
villetes de 20. = b2
villetes de 10. = b3
villetes de 5. = b4
villetes de 2. = b5
villetes de 1. = b6

monedas de 500. = b7
monedas de 200. = b8
monedas de 100. = b9
monedas de 50. = b10

respuesta
tienes $ = ej; 57.350 de plata


necesito que me de cuanto hay de plata contando todo esto?

Chris 20-01-2011 22:02:47

:confused: :confused: :confused: :confused: :confused: :confused: :confused:
Creo que no es un gran problema el que tienes. Sin ánimo de ofender, talvez debes estar un poco cansado porque tu respuesta se resuelve con matemática básica.

Si tienes 5 billetes de 50, entonces multiplica 50x5=250. Si además tienes 6 billetes de 20, multiplica 20x6=120. Con esa simple multiplicación vas con cada tipo de billete y al mismo tiempo ve sumando los totales de las multiplicaciones: 250+120=370. En total tendrás 370.

Saludos,
Chris

Caral 20-01-2011 22:16:18

Hola
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
b1,b2,b3,b4,b5,b6 :Real;
m1,m2,m3,m4: Real;
begin
b1:= StrToFloat(Edit1.Text) * 50;
b2:= StrToFloat(Edit2.Text) * 20;
b3:= StrToFloat(Edit3.Text) * 10;
b4:= StrToFloat(Edit4.Text) * 5;
b5:= StrToFloat(Edit5.Text) * 2;
b6:= StrToFloat(Edit6.Text) * 1;
m1:= StrToFloat(Edit7.Text) * 500;
m2:= StrToFloat(Edit8.Text) * 200;
m3:= StrToFloat(Edit9.Text) * 100;
m4:= StrToFloat(Edit10.Text) * 50;
Edit11.Text:= FloatToStr(b1 + b2 + b3 + b4 + b5 + b6 + m1 + m2 + m3 + m4);
Hay que acordarse de colocar 0 en cada edit por si alguno no contiene nada (ningun valor)
Saludos

Delphius 21-01-2011 01:26:17

Código Delphi [-]
total := 0.0;
for i := 1 to CANT_DENOMINACIONES do
total := total + (Denominaciones[i].Valor * Denominaciones[i].Cantidad);

Estoy con Chris, eso es tarea para un chico de primaria. No veo donde está el problema... Si te explicaras mejor y nos describieras el problema y el contexto en el que estás evaluando quizá podríamos descubrir en donde está fallando la lógica.
¿La denominaciones y la cantidades son fijas? ¿La extraes de una base de datos? ¿Desde un archivo?

En términos abstractos el código que expuse es suficiente para ilustrar el procedimiento a aplicar. Ahora hay que bajar eso a tierra y aplicarlo a tu caso.

Saludos,

ingabraham 21-01-2011 16:24:16

gracias x las 3 respuestas

pero no me gusto el comentario de la ultima
pienso que atodos les sirvira si distribuyen software de caracteristicas contables debido a que en todo negocio este modulo le servira de muchisisisisima ayuda.

solo que queria saber que manera se prodria reducir tanto codigo y con exactitud,
como por ejemplo un ciclo. cuando lo termine se los mostrare, para que ahorren tiempo.

gracias x sus respuestas.

Delphius 21-01-2011 18:02:32

Cita:

Empezado por ingabraham (Mensaje 388241)
gracias x las 3 respuestas

pero no me gusto el comentario de la ultima
pienso que atodos les sirvira si distribuyen software de caracteristicas contables debido a que en todo negocio este modulo le servira de muchisisisisima ayuda.

solo que queria saber que manera se prodria reducir tanto codigo y con exactitud,
como por ejemplo un ciclo. cuando lo termine se los mostrare, para que ahorren tiempo.

gracias x sus respuestas.

Hola ingabraham, para alguien que lleva bastante tiempo en CD y que se ve en sus hilos y preguntas que lleva un tiempo programando, que suelte una pregunta como esa es de dudar ¿no crees?

Digo... es que el problema es tan elemental que hasta un niño de primaria es capaz de entender el problema y plantear un algoritmo que lo resuelva.

Es análogo incluso a los ejercicios más simples de matemática de 4to grado: si pepito compra, 10 peras, 5 manzanas, y 3 uvas y cada cosa sale $5, $3 y $1 respectivamente ¿Cuánto tiene que pagar por todo? El chico simplemente se pondrá a calcular las multiplicaciones parciales y luego hará una suma con dichos resultados.

Esto es exactamente igual.

Debido a la simpleza del algoritmo, es que yo me digo... "Momentito. Capaz que hay gato encerrado en esto, porque esto es bastante simple, ¿no será que hay otras cosas que ingabraham se olvidó de contar?"

De allí mi comentario.
Ahora bien... si es que en verdad no hay tal gato encerrado en el problema entonces creo que apoyo más aún el comentario de Chris. Te hace falta una siesta.

¡Vamos ingabraham! Ya somos bastantes mayorcitos como para entender a simple vista que esto es algo minísculo, sin dificultad y no hay planteo más básico, simple y fácil de llevar a cabo como un código que expuse.

El truco, que propuse, está en el uso de un FOR y una "estructura" que permita tener relacionada la denominación de cada billete con su respectiva cantidad.

Si el objetivo de tu pregunta es el de encontrar una manera eficiente, sin perder decimales por efecto del redondeo o la imprecisión propia de la aritmética de coma flotante, o de consultar sobre técnicas de cálculo en sistemas de contabilidad entonces deberías haber sido más preciso con tus explicaciones y no haber expresado esas escuetas líneas.

Si destinaras más tiempo en organizar tus palabras y luego publicar el hilo te evitarías todo esto.

Saludos,


La franja horaria es GMT +2. Ahora son las 11:01:43.

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