Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: themindmaster en 20 Septiembre 2013, 21:34 pm



Título: ayuda cajero automatico
Publicado por: themindmaster en 20 Septiembre 2013, 21:34 pm
Bueno como dice el tema necesito ayuda, bueno el diseño es este:

insertar cantidad=
billete100
billete200
billete500
billete1000
billete2000

bueno la funcion del programa es que insertas una cantidad y te lo da en billetes ejemplo: pones 1500 y te pone un 1 en 500 y un 1 en mil espero me entiendas gracias de antemano.

saludos cordiales!  :laugh:


Título: Re: ayuda cajero automatico
Publicado por: crazykenny en 20 Septiembre 2013, 21:48 pm
Hola, themindmaster; sin animo de ofender, ni nada por el estilo (puesto que nunca suele ser mi intencion), pero, aparte de comentarte que estaria bien acerca de que  expliques un poco mas lo que quieres hacer, creo que seria bueno que pusieses algun codigo que puedas tener hecho y demas para que te podamos comentar en que puedes o no fallar en el sentido de comentar que esta mal, que esta bien y demas (entre otras cosas), puesto que, bueno, aqui, en este foro, no se realizan tareas ni nada por el estilo.
Por otra parte, y, aun asi, te voy a sugerir una cosa con respecto a lo que quieres hacer (o lo que he entendido que quieres hacer); inicialmente, hay que crear una matriz de 2 niveles, y el segundo nivel tiene 2 valores (0 y 1), y el primer nivel X valores, y en el valor 0 de cada posicion del primer nivel son los valores que comentas (ya sabes, 100, 200, 500, etc); luego, indicas el valor y/o cantidad de dinero a ingresar, y, finalmente, haces un bucle poniendo una etiqueta (ya sabes, algo tipo ".hola") en el cual el programa, y, a traves de algo tipo "For z=X" (donde X es lo que he comentado antes de las diversas cantidades de la matriz) comprueba si la cantidad que has puesto es superior a uno de los valores de la matriz, y, cuando sea asi, le restas dicho valor a la cantidad insertada y, luego, en esta misma condicion, le sumas un 1 a la segunda matriz, pero, en la posicion 1 (no en la 0) que corresponda a un valor Y donde esta almacenado el valor que le restas; por ejemplo, supongamos que en el bucle "For next", el valor que insertas es superior a, digamos, 1000; entonces, en la matriz llamada "dinero#(x,y)", imaginemos que en la posicion llamada "(3,0)" es donde esta el valor 1.000; entonces, en la posicion llamada "(3,1)", le sumas un uno (vamos, hacer algo asi como valor#=valor#+1 pero con matrices).
Bueno, pues, espero haberte podido ser de ayuda en cuanto a la duda que has expuesto en este tema y demas, y, bueno, muchas gracias por vuestra atencion.
Saludos.


Título: Re: ayuda cajero automatico
Publicado por: themindmaster en 21 Septiembre 2013, 15:11 pm
crazykenny XD si tenia un codigo pero no lo dije porque es algo estupido mira lo que tenia jaja es que no tenia idea de como hacerlo, este es el codigo:
Código
  1. if txtinsertar = 100 then
  2. txtb100=1
  3. end if
  4. if txtinsertar=200 then
  5. txtb200=1
  6.  

XD y asi seguia por eso no lo dije, porque no creo que sea asi, la profesora dijo que era con un mod :( pero no explico para que servia solo dijo se lo dejo de tarea :( y andaba buscando para que servia pero no le llego a entender.
y nose hacer matrices ajajajaja soy novato en la programacion y perdona las molestias.

saludos cordiales! :-(


Título: Re: ayuda cajero automatico
Publicado por: crazykenny en 21 Septiembre 2013, 15:43 pm
Hola, themindmaster; bueno, en cuanto a realizar matrices en Visual Basic, no se como funciona en cuanto a crearlas y demas, pero, o, almenos, en el lenguaje que yo utilizo (que se llama Blitz 3D y esta basado en Basic -u algo asi, no lo recuerdo muy bien-), hay que poner algo asi como "Dim nombredelamatriz(variablenivel1,variablenivel2)"; vamos, como declarar variables, pero poniendo "Dim " antes del nombre de la matriz y demas cosas, aunque, bueno, tambien creo que esto de crear matrices es, digamos, "mas o menos similar" en los lenguajes de programacion (y me disculpo por si he dicho una barbaridad, u algo asi y/o similar y/o demas cosas), pero, ya te digo, "creo", y, bueno, lo que te he comentado antes es como yo lo haria y demas, pero bueno, y, ya ves, cosas mias, pero bueno, y, dicho sea de paso, me disculpo por no poder ayudarte mas, puesto que, aparte de lo que te he comentado antes en el anterior mensaje de este tema, bueno, no se me ocurre nada mas en cuanto a poder ayudarte y demas a resolver tu problema (entre otras cosas).
Bueno, pues, muchas gracias por vuestra atencion.
Saludos.


Título: Re: ayuda cajero automatico
Publicado por: themindmaster en 21 Septiembre 2013, 16:07 pm
bueno gracias krazykenny vere si hago algo pero XD buscare como hacer matrices en visual basic a ver si funciona :)


Título: Re: ayuda cajero automatico
Publicado por: Pédrin-2 en 21 Septiembre 2013, 17:07 pm
Hola themindmaster
me suena lo que quieres, pero seguro que era en excel, si lo necesitas lo busco, no se si lo encontrare.

Un saludo


Título: Re: ayuda cajero automatico
Publicado por: Danyfirex en 21 Septiembre 2013, 18:17 pm
Hola. Podrías hacer algo masomenos así.

Código
  1. Private Sub Command1_Click()
  2. Dim numeros As Long
  3. numeros = Int(Text1.Text)
  4.  
  5. Do
  6. numeros = billetes(numeros)
  7. MsgBox (numeros)
  8. Loop Until numeros = 0
  9.  
  10. End Sub
  11.  
  12. Function billetes(numero As Long) As Long
  13. Select Case numero
  14. Case Is >= 2000
  15. billetes = numero Mod 2000
  16. Debug.Print Int(numero / 2000) & " Billetes de 2000"
  17. Case Is >= 1000
  18. billetes = numero Mod 1000
  19. Debug.Print Int(numero / 1000) & " Billetes de 1000"
  20. Case Is >= 500
  21. billetes = numero Mod 500
  22. Debug.Print Int(numero / 500) & " Billetes de 500"
  23. Case Is >= 200
  24. billetes = numero Mod 200
  25. Debug.Print Int(numero / 200) & " Billetes de 200"
  26. Case Is >= 100
  27. billetes = numero Mod 100
  28. Debug.Print Int(numero / 100) & " Billetes de 100"
  29. Case Else
  30. End Select
  31. End Function
  32.  
  33.  

saludos


Título: Re: ayuda cajero automatico
Publicado por: themindmaster en 22 Septiembre 2013, 14:46 pm
XD no entendi el codigo buscare para que sirve lo que no entienda y vere si me funciona gracias!!


Título: Re: ayuda cajero automatico
Publicado por: themindmaster en 22 Septiembre 2013, 15:07 pm
Parece que no me sale bueno miren el diseño:

(https://fbcdn-sphotos-h-a.akamaihd.net/hphotos-ak-prn2/v/1167711_571251372935372_2022583288_n.jpg?oh=8bdb0981053193fd8961970aeef2e605&oe=5241463E&__gda__=1380035370_a895c2093f2b24b23225846055bbf616)

ese es el diseño y los codigos son:
Código
  1. Private Sub cmdAceptar_Click()
  2. If txtinsertar = 100 Then
  3. txt100 = 1
  4. End If
  5. If txtinsertar = 200 Then
  6. txt200 = 1
  7. End If
  8. If txtinsertar = 300 Then
  9. txt100 = 1
  10. txt200 = 1
  11. End If
  12. If txtinsertar = 400 Then
  13. txt200 = 2
  14. End If
  15. If txtinsertar = 500 Then
  16. txt500 = 1
  17. End If
  18. If txtinsertar = 600 Then
  19. txt100 = 1
  20. txt500 = 1
  21. End If
  22. If txtinsertar = 700 Then
  23. txt200 = 1
  24. txt500 = 1
  25. End If
  26. If txtinsertar = 800 Then
  27. txt100 = 1
  28. txt200 = 1
  29. txt500 = 1
  30. End If
  31. If txtinsertar = 900 Then
  32. txt200 = 2
  33. txt500 = 1
  34. End If
  35. If txtinsertar = 1000 Then
  36. txt1000 = 1
  37. End If
  38. End Sub
  39.  
  40.  

pero no creo que esos son los codigos porque tendria que hacerlos infinitamente XD :) bueno gracias de antemano.

saludos!


Título: Re: ayuda cajero automatico
Publicado por: Danyfirex en 22 Septiembre 2013, 15:15 pm
que no entendiste del código?


Título: Re: ayuda cajero automatico
Publicado por: themindmaster en 22 Septiembre 2013, 15:19 pm
es que todavia no llego hasta ese punto, la profesora dijo que tendria que usar mod :(
y no era en msgbox era que cuando insertaras el dinero un ejemplo 3500 entonces
billetes de 500= 1
billetes de 2000=1
billetes de 1000=1
:) pero gracias
saludos!


Título: Re: ayuda cajero automatico
Publicado por: Danyfirex en 22 Septiembre 2013, 15:27 pm
Mod te retorna el reciduo.

si hacer mod en 2500 (2500 mod 2000) te retorna 500, luego haces mod al 500 con 500 así sucesivamente hasta llegar a 0.

el ejemplo que te di solo faltava ponerle los textbox :S

Código
  1. Private Sub Command1_Click()
  2. Dim numeros As Long
  3. numeros = Int(txtdinero.Text)
  4.  
  5. Do
  6. numeros = billetes(numeros)
  7. 'MsgBox (numeros)
  8. Loop Until numeros = 0
  9. MsgBox ("listo")
  10. End Sub
  11.  
  12. Function billetes(numero As Long) As Long
  13. Select Case numero
  14. Case Is >= 2000
  15. billetes = numero Mod 2000
  16. Debug.Print Int(numero / 2000) & " Billetes de 2000"
  17. txt2000 = Str(Int(numero / 2000))
  18. Case Is >= 1000
  19. billetes = numero Mod 1000
  20. Debug.Print Int(numero / 1000) & " Billetes de 1000"
  21. txt1000 = Str(Int(numero / 1000))
  22. Case Is >= 500
  23. billetes = numero Mod 500
  24. Debug.Print Int(numero / 500) & " Billetes de 500"
  25. txt500 = Str(Int(numero / 500))
  26. Case Is >= 200
  27. billetes = numero Mod 200
  28. Debug.Print Int(numero / 200) & " Billetes de 200"
  29. txt200 = Str(Int(numero / 200))
  30. Case Is >= 100
  31. billetes = numero Mod 100
  32. Debug.Print Int(numero / 100) & " Billetes de 100"
  33. txt100 = Str(Int(numero / 100))
  34. Case Else
  35. End Select
  36. End Function
  37.  

saludos



Título: Re: ayuda cajero automatico
Publicado por: themindmaster en 22 Septiembre 2013, 15:32 pm
me dice error '424' en tiempo de ejecucion:
se requiere un objeto

saludos!


Título: Re: ayuda cajero automatico
Publicado por: Danyfirex en 22 Septiembre 2013, 15:39 pm
los nombres de los controles  :rolleyes:

una mini explicación.

pasamos el la cantidad: ejemplo 2500


entonces en caso de que la cantidad sea >= 2000

hacemos mod:   
2500 mod 2000' que es 500 entonces lo retornamos

para sabes cuantos billetes son.

divimos 2500 /2000 que nos da 1.25
lo pasamos a entero int(1,25) y obtenemos 1
asi que es solo un billete de 2000

luego se hace lo mismo con el 500 que se retorno.

saludos






Título: Re: ayuda cajero automatico
Publicado por: themindmaster en 22 Septiembre 2013, 15:39 pm
Gracias My Dear Mizuho mi error era que en el codigo pusiste txtdinero y yo tenia txtinsertar asi que puse txtdinero :) y listo gracias :D

Saludos cordiales!


Título: Re: ayuda cajero automatico
Publicado por: Danyfirex en 22 Septiembre 2013, 15:42 pm
Espero lo mires bien y entiendas bien el funcionamiento.


y sigue leyendo sobre vb6(aunque sea un poco viejo ya :S) gánale a tu profesora...

saludos



Título: Re: ayuda cajero automatico
Publicado por: themindmaster en 22 Septiembre 2013, 15:48 pm
gracias por todo buscare para que sirve todo lo que no entienda :) gracias por toda tu ayuda :)

Saludos Cordiales!