Programación General > Visual Basic para principiantes

 ¿Como hago un software para cajero?

(1/3) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa