Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Conversor Decimal - Binario - Hexadecimal Sencillo
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Conversor Decimal - Binario - Hexadecimal Sencillo 
 
He aquí un print screen

 screenshot_181214_09_46_22


Este conversor es solo una práctica, no es nada serio y aún se podría mejorar mucho.  Tanto a nivel de presentación, como a nivel de código.

' gambas class file

' Programa muy sencillo, pero que ilustra el uso de cosas interesantes
' tales como Bin$, Hex$, CInt, Mid$, definición de un array unidimensional
' así el manejo de radiobuttom en gambas, que difiere un poco del manejo de VB
' paso de valores a funciones, retorno y captura de resultados
' tambien incluye el uso de imágenes en los botones :)


Public Function conv_bin(valor As String, base_sel As Integer) As String
' Dado que el valor es recibido como string, debe ser convertido a entero
' con CInt, para que Bin$ lo pueda convertir a binario, luego de eso,
' Str lo convertirá nuevamente a string, para devolverlo con Return

  Dim resp As String
  
  If base_sel = 10 Then
    resp = Str(Bin$(CInt(valor)))
  Endif
    
  Return resp
End

Public Function conv_dec(valor As String, base_sel As Integer) As String
' Al igual que en las demás funciones se recibe un valor en forma de cadena
' pero esta vez se hacen algunos extras.
' Se crean las variables que serviran para operar tanto el arreglo (array),
' como el orden del polinomio resultante, que será de grado k
' x se usa para extraer un caracter de la cadena denominada valor
' m es el coeficiente asociado a un termino de acuerdo a su posición en la cadena "valor"
' en este caso creamos un arreglo (array) de tamaño fijo ya que es para ser llenado
' con los valores hexadecimales del 0 al 15, por tanto son 16 elementos.

  Dim resp As String
  Dim i, j, k, l, m, x As Integer
  Dim lista As New String[16]
  
  
  x = Len(valor)
  k = x - 1
  j = 0
  l = 0
  
  If base_sel = 2 Then
    For i = 1 To x
      If Mid$(valor, i, 1) = "1" Then
         j = j + (2 ^ k)
      Endif
      k = k - 1
    Next
    resp = Str(j)
  Else
    For i = 0 To 15
      lista[i] = (Hex$(i))
    Next
    For i = 1 To x
      For m = 0 To 15
        If Mid$(Upper(valor), i, 1) = lista[m] Then
           j = j + m * (16 ^ k)
        Endif
      Next
      k = k - 1
    Next
    resp = Str(j)
  Endif
  
  Return resp
End

Public Function conv_hex(valor As String, base_sel As Integer) As String
' Dado que el valor es recibido como string, debe ser convertido a entero
' con CInt, para que Hex$ lo pueda convertir a hexadecimal, luego de eso,
' Str lo convertirá nuevamente a string, para devolverlo con Return

  Dim resp As String
  Dim i, j, k, x As Integer
  
  If base_sel = 10 Then
    resp = Str(Hex$(CInt(valor)))
  Else
    
  Endif
  
  Return resp
End

Public Sub btn_ok_Click()
' esta sección se creo para poder manejar y presentar los resultados
' en la forma.

  If rb_dec.Value Then
    Label5.Text = conv_bin(TextBox1.Text, 10)
    Label6.Text = conv_hex(TextBox1.Text, 10)
  Endif
  If rb_bin.Value Then
    Label4.Text = conv_dec(TextBox1.Text, 2)
    Label6.Text = conv_hex(Label4.Text, 10)
  Endif
  If rb_hex.Value Then
    Label4.Text = conv_dec(TextBox1.Text, 16)
    Label5.Text = conv_bin(Label4.Text, 10)
  Endif
  
End

Public Sub btn_cancel_Click()
' cierra la forma (form) o ventana

  FMain.Close()
  
End

Public Sub TextBox1_GotFocus()
' limpia las etiquetas (labels), para evitar basura en la forma

  Label4.text = ""
  Label5.Text = ""
  Label6.Text = ""
  

End
 


Pero para aquellos que como yo, nos estamos poniendo en forma aprendiendo y recordando ....  
Por ahí va. Dentro de las posibles mejoras al código estaría el unificarlo para que use debidamente la base seleccionada, ya que el algoritmo es el mismo, para convertir de bin - dec y hex - dec.

También se podría, organizar mejor los controles dentro de la ventana para ahorrar espacio y hacerlos adaptables por si se maximiza.

Bueno ahí está ... saludos
 



 
viejito - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Conversor Decimal - Binario - Hexadecimal Sencillo 
 
muy bueno, cada aporte enriquece a la comunidad

Nota: es buena costumbre subir el archivo fuente así se puede probar fácilmente.
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
última edición por v3ctor el Jueves, 18 Diciembre 2014, 17:25; editado 1 vez 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Conversor Decimal - Binario - Hexadecimal Sencillo 
 
viejito +1   
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Conversor Decimal - Binario - Hexadecimal Sencillo 
 
v3ctor escribió: [Ver mensaje]

Nota: es buena costumbre subir el archivo fuente así se puede probar fácilmente.


Pero, exponendo directamente el código, tambien los usuarios no-registrados puedon ver la aplicación.
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Convertir Hexadecimal A Decimal (SOLUCIONADO) MiguelVelandia Aplicaciones/Fragmentos de Código 16 Viernes, 19 Octobre 2012, 18:43 Ver último mensaje
jsbsan
No hay nuevos mensajes Conversor A Html, Sencillo Pero Eficaz Dani26 Aplicaciones/Fragmentos de Código 1 Viernes, 31 May 2013, 17:33 Ver último mensaje
sebikul
No hay nuevos mensajes Decimal Y Binario Shell General 2 Domingo, 03 Abril 2016, 18:38 Ver último mensaje
Shell
No hay nuevos mensajes Convertir Hexadecimal En Decimal tincho Aplicaciones/Fragmentos de Código 5 Lunes, 11 May 2020, 21:50 Ver último mensaje
vuott
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron