Programación General > Visual Basic para principiantes
¿Como hago un software para cajero?
trogua_z:
El objetivo del programa es desplegar una lista del numero de billetes que se utilizaran para sumar el valor pedido por el usuario
por ejemplo:
para dar 570 se requiere:
2 de 200
1 de 100
1 de 50
1 de 20
y 1 de 10
:argh: ayuda si alguien sabe como lograr esto porfavor hagamelo saber, la idea es aprender.
Nebire:
--- Cita de: "trogua_z" --- ayuda si alguien sabe como lograr esto porfavor hagamelo saber, la idea es aprender.
--- Fin de la cita ---
Si la idea realmente es aprender, lo lógico es que llegues hasta donde puedas y donde te quedes atascado es donde pedir ayuda.
Si te quedas atascado sin haber empezado es una clara señal de que no tienes ni idea, entonces la idea no puede ser aprender, sino que te hagan la tarea que te han encargado tus profesores (supongo).
No basta con saber lo que se te explica en clase se requiere un mínimo de sagacidad para saber afrontar un problema, para reducir una pregunta coloquial a pseudocódigo, luego ya será más o menos fácil escribir el código, pero, al menos deberías ser capaz de describir el pseucódigo ...
Olvídate de que se trata de un cajero, porque eso puede asustar, toma otro ejemplo más habitual como el mismo caso: tu familia decide mudarse a otra población. Cada viaje cuesta lo mismo sea el que sea el tamaño de la caja y sólo se puede transportar 1 caja por vez. Para no gastar mucho en el trasporte tu padre quiere embalarlo todo en el menos número de cajas posible, las cajas han de ir completas. Si el volumen es de 570 y el tamaño de las cajas son 200, 100, 50, 20,10... cómo lo distribuirías para utilizar las menos cajas posibles ?
podrías usar 57 cajas de 10, pero como serían 57 viajes, saldría muy caro...
... entonces que crees tú que habría que hacer para que fuera lo más barato posible y todas las cajas fueran llenas ?...
Planteado así sabrás (supongo) encontrar el algoritmo más óptimo, ya que si no a tu padre le costará más caro la mudanza por tu mala cabeza.
Hale respóndete a ti mismo... y cuando lo hagas nos explicas qué has pensado...
trogua_z:
Gracias Nebire por tu comentario, pero bueno ya el profe nos mostro la forma para que funcionara el programa aunque nose porque pero ya van varias veses que veo a un profe utilizar codigos que no nos explica ni nos mienta en clase para poder resolver estas tareas, yo se que hay que investigar pero dios mio tampoco soy clarividente para saber cual de los miles de codigos de visual basic es el que debo emplear para lograr mi cometido al menos que nos diga como se llama el codigo y pues uno investiga para que sirve y como emplearlo, ademas nadia nace aprendido y todos empezamo de 0. ;)
trogua_z:
Asi quedo el asunto (Disculpas pero esque esta es la primer vez que participo y no se como le hacen algunos para que quede más "bonito")
Public Class Form1
Dim valor, bill200, bill100, bill50, bill20, bill10, sobro As Integer
Private Sub Buttconfirmar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buttconfirmar.Click
valor = TextBox1.Text
bill200 = valor 200
sobro = valor Mod 200
bill100 = valor 100
sobro = valor Mod 100
bill50 = valor 50
sobro = valor Mod 50
bill20 = valor 20
sobro = valor Mod 20
bill10 = valor 10
sobro = valor Mod 10
If sobro = 0 Then
TextBox2.Text = bill200
TextBox3.Text = bill100
TextBox4.Text = bill50
TextBox5.Text = bill20
TextBox6.Text = bill10
Else
End (aqui me falto ponerle un mensaje de error pero ya se lo pondre)
End If
End Sub
Private Sub Buttlimpiar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buttlimpiar.Click
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
TextBox5.Text = ""
TextBox6.Text = ""
End Sub
Private Sub Buttsalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buttsalir.Click
End
End Sub
End Class
Nebire:
El código bonito se crea desde el editor , pulsas en el combo que pone code y eliges el lenguaje más adecuado al código que vas a exponer, eso si la indentación debes hacerla manualmente, el 'tag' de code sólo colorea...
Efectivamente la solución es partir desde el billete más alto y descendiendo (de billete en billete según su valor) restar tantos de ese modelo como pueda contener la cifra restante.
El código se podría hacer más breve si se introducen en matrices y lo pasamos por un bucle do .. while
Usaríamos una estructura sencilla como
--- Código: vb.net --- public structure Billetes Valor as integer Cantidad as integerend structuredim Billete(0 to 4 ) as billetes ' 200, 100, 50, 20, 10 private sub load... billete(0).valor= 200 : billete(1).valor= 100 ..etc..end sub Billete(0).valor haría referencia al billete de 200 y billete(0).Cantidad los que obtendríamos
--- Código: vb.net --- dim cantidad as integer =750dim b as byte ' billetes uno a unodo while cantidad > 10 billete(b).cantidad= cantidad billete(b).valor cantidad= cantidad mod billete(b).valor b= b +1loop como no hay billetes de unidadees y si las cantidades no acaban en 0 siempre habrás calderilla (monedas restantes), que puede necesitarse devolver... en una supuesta función.
Navegación
[#] Página Siguiente
Ir a la versión completa