• Jueves 28 de Marzo de 2024, 11:36

Autor Tema:  ¿Como hago un software para cajero?  (Leído 5145 veces)

trogua_z

  • Nuevo Miembro
  • *
  • Mensajes: 20
  • Nacionalidad: cr
    • Ver Perfil
¿Como hago un software para cajero?
« en: Martes 9 de Junio de 2009, 01:12 »
0
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

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: ¿Como hago un software para cajero?
« Respuesta #1 en: Martes 9 de Junio de 2009, 05:56 »
0
Cita de: "trogua_z"
ayuda si alguien sabe como lograr esto porfavor hagamelo saber, la idea es aprender.

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...
«Ma non troppo»
----> ModoVacaciones = False<----

trogua_z

  • Nuevo Miembro
  • *
  • Mensajes: 20
  • Nacionalidad: cr
    • Ver Perfil
Re: ¿Como hago un software para cajero?
« Respuesta #2 en: Martes 9 de Junio de 2009, 21:56 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 20
  • Nacionalidad: cr
    • Ver Perfil
Re: ¿Como hago un software para cajero?
« Respuesta #3 en: Martes 9 de Junio de 2009, 22:08 »
0
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

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: ¿Como hago un software para cajero?
« Respuesta #4 en: Miércoles 10 de Junio de 2009, 01:03 »
0
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
  1.  
  2. public structure Billetes
  3.      Valor as integer
  4.      Cantidad as integer
  5. end structure
  6. dim Billete(0 to 4 ) as billetes  ' 200, 100, 50, 20, 10
  7.  
  8. private sub load...
  9.     billete(0).valor= 200 : billete(1).valor= 100 ..etc..
  10. end sub
  11.  
  12.  
Billete(0).valor haría referencia al billete de 200  y billete(0).Cantidad los que obtendríamos

Código: vb.net
  1.  
  2. dim cantidad as integer =750
  3. dim b as byte  ' billetes uno a uno
  4. do while cantidad > 10
  5.     billete(b).cantidad= cantidad  billete(b).valor
  6.     cantidad= cantidad mod billete(b).valor
  7.     b= b +1
  8. loop
  9. 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.
  10.  
  11.  
«Ma non troppo»
----> ModoVacaciones = False<----

trogua_z

  • Nuevo Miembro
  • *
  • Mensajes: 20
  • Nacionalidad: cr
    • Ver Perfil
Re: ¿Como hago un software para cajero?
« Respuesta #5 en: Jueves 11 de Junio de 2009, 05:22 »
0
:mellow: interesante gracias, aunque aun no emos empezado a ver matrices, sinceramente apenas empece el curso hace 2 meses (programacion 2) el 1 fue con C++ (no me gusto para nada) y este de ahora es con visual basic 2005.net y la verdad es la primera vez que trabajo con el, pero creo que investigando y trabesiando un poco me familiarisare con su uso. :lol:

Jimbenit

  • Miembro MUY activo
  • ***
  • Mensajes: 269
  • Nacionalidad: co
    • Ver Perfil
    • http://ingenieriacivil.foroactivo.com
Re: ¿Como hago un software para cajero?
« Respuesta #6 en: Sábado 13 de Junio de 2009, 17:07 »
0
Cita de: "trogua_z"
:mellow: interesante gracias, aunque aun no emos empezado a ver matrices, sinceramente apenas empece el curso hace 2 meses (programacion 2) el 1 fue con C++ (no me gusto para nada) y este de ahora es con visual basic 2005.net y la verdad es la primera vez que trabajo con el, pero creo que investigando y trabesiando un poco me familiarisare con su uso. :lol:
Hola a todos, okey, aqui coloco mi code sin matrices, basicamente es la misma filosofia que la de Nebire, aqui la dejo en un Module

Código: vb.net
  1. Module Module1
  2.  
  3.     'billetes de 200, 100, 50, 20, 10
  4.  
  5.     Public Sub Repartir(ByVal Cantidad As Integer)
  6.         Dim Billete200 As Integer
  7.         Dim Billete100 As Integer
  8.         Dim Billete50 As Integer
  9.         Dim Billete20 As Integer
  10.         Dim Billete10 As Integer
  11.  
  12.  
  13.  
  14.         Do While Cantidad >= 10
  15.  
  16.             Select Case Cantidad
  17.                 Case Is >= 200
  18.                     Billete200 = Cantidad  200
  19.                     Cantidad = Cantidad - Billete200 * 200
  20.                 Case Is >= 100
  21.                     Billete100 = Cantidad  100
  22.                     Cantidad = Cantidad - Billete100 * 100
  23.                 Case Is >= 50
  24.                     Billete50 = Cantidad  50
  25.                     Cantidad = Cantidad - Billete50 * 50
  26.                 Case Is >= 20
  27.                     Billete20 = Cantidad  20
  28.                     Cantidad = Cantidad - Billete20 * 20
  29.                 Case Is >= 10
  30.                     Billete10 = Cantidad  10
  31.                     Cantidad = Cantidad - Billete10 * 10
  32.             End Select
  33.         Loop
  34.  
  35.  
  36.         MsgBox("Hay " & Billete200 & " de 200, " & Billete100 & " de 100, " & Billete50 & " de 50, " & Billete20 & " de 20, " & Billete10 & " de 10, y " & Cantidad & " monedas de 1")
  37.  
  38.  
  39.     End Sub
  40.  
  41.  
  42.  
  43. End Module
  44.  

Saludos,  :good:


Yo quiero mucho a Toph ---> Mi Web]http://ingenieriacivil.foroactivo.com[/url]

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: ¿Como hago un software para cajero?
« Respuesta #7 en: Sábado 13 de Junio de 2009, 21:09 »
0
Bueno, este foro es de VB6 :P

Cita de: "trogua_z"
el 1 fue con C++ (no me gusto para nada)
:lol: al principio es normal, ya aprenderás a valorarlo como se merece, como C  ;)

trogua_z

  • Nuevo Miembro
  • *
  • Mensajes: 20
  • Nacionalidad: cr
    • Ver Perfil
Re: ¿Como hago un software para cajero?
« Respuesta #8 en: Lunes 15 de Junio de 2009, 22:48 »
0
Citar
Bueno, este foro es de VB6 :P

    trogua_z escribió:el 1 fue con C++ (no me gusto para nada)


:lol: al principio es normal, ya aprenderás a valorarlo como se merece, como C ;)

Si, yo se que C es muy interesante pero el motivo por el cual no me gusto fue porque el profesor que me "enseño" fue uno que solo sabia Pascal y nada de C asi que imaginate que el aprendio junto a nosotros incluso ubieron alumnos que le enseñaban a el profesor. Nunca despejo mis dudas y nos dejaba tareas que nisiquiera el sabia hacer jeje y asi, si alguien conseguia de milagro el elxito en la tarea el prof aprendia al mismo tiempo, muy vivaso el hobre no? :angry: .

calichecal

  • Nuevo Miembro
  • *
  • Mensajes: 13
  • Nacionalidad: co
    • Ver Perfil
Re: ¿Como hago un software para cajero?
« Respuesta #9 en: Jueves 23 de Julio de 2009, 18:21 »
0
pues yo lo ise con un while dentro de un if para cada billete asi =
 

if cantidad >= 50000 then
 while not cantidad < 50000
 cantidad = cantidad - 50000
 variable50000 = variable50000 + 1
 wend
 end if
y me funciono perfectamente.

Jimbenit

  • Miembro MUY activo
  • ***
  • Mensajes: 269
  • Nacionalidad: co
    • Ver Perfil
    • http://ingenieriacivil.foroactivo.com
Re: ¿Como hago un software para cajero?
« Respuesta #10 en: Jueves 23 de Julio de 2009, 18:29 »
0
Cita de: "calichecal"
pues yo lo ise con un while dentro de un if para cada billete asi =
 

if cantidad >= 50000 then
 while not cantidad < 50000
 cantidad = cantidad - 50000
 variable50000 = variable50000 + 1
 wend
 end if
y me funciono perfectamente.
La idea es practicar algunos comandos que esten al nivel del que solicito la duda (fijate que no entiende las matrices por eso la respuesta de nuestro buen amigo Nebire que fue la mejor para practicar codigo, no la entendió, asi que yo le reduje un poco la dificultad con el fin de que la entendiera)....
Si te fijas bien, en tu respuesta no hay mucho que aprender...
Saludos y gracias por el aporte.


Yo quiero mucho a Toph ---> Mi Web]http://ingenieriacivil.foroactivo.com[/url]