Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
[Python Y Gambas] Ejemplo De Los Dolares Y Céntimos
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje [Python Y Gambas] Ejemplo De Los Dolares Y Céntimos 
 
Hola!.

Después de ver el ejemplo de Scott en el curso de Coursera sobre como va usando el tratado de cadenas y al final
Joe crea una aplicación mas interactiva, observo que en el ejemplo que hace Joe no se aprecia esto:

Si hablamos de céntimos, no podemos decir 12.0 céntimos.

Hice el ejemplo en gambas y si funciona.
Public Sub Main()  

  Print Convertir(11.23)
  Print Convertir(11.20)
  Print Convertir(1.12)
  Print Convertir(12.01)
  Print Convertir(1.01)
  Print Convertir(0.01)
  Print Convertir(1.00)
  Print Convertir(0)  
End

'Convierte a plural la cadena si es necesario
Public Function convierteUnidades(valor As Integer, nombre As String) As String

  Dim resultado As String
  
  resultado = Str(valor) & " " & nombre
  If valor > 1 Then
    resultado = resultado & "s"
  Endif
  Return resultado
  
End

'Convierte de xx.yy a xx dolares y yy centimos
Public Function Convertir(valor As Float) As String

  Dim dolares As Integer
  Dim centimos As Integer
  Dim dolares_cadena As String
  Dim centimos_cadena As String
  
  ' Repartimos en dolares y centimos
  dolares = Int(valor)
  centimos = Round(100 * (valor - dolares))
  
  dolares_cadena = convierteUnidades(dolares, "dolar")
  centimos_cadena = convierteUnidades(centimos, "cent")
  
  'Convertimos a cadenas
  If dolares = 0 And centimos = 0 Then
    Return "Sin blanca!"
  Else If dolares = 0 Then
    Return centimos_cadena
  Else If centimos = 0 Then
    Return dolares_cadena
  Else
    Return dolares_cadena & " y " & centimos_cadena
  Endif
  
End
 


En cambio en Python, se obseva el .0 al final de los céntimos, creo que Joe cambio algo.
Observemos el código de Scottt:
# Handle single quantity
def convert_units(val, name):
    result = str(val) + " " + name
        if val > 1:
        result = result + "s"
    return result
        
# convert xx.yy to xx dollars and yy cents
def convert(val):
    # Split into dollars and cents
    dollars = int(val)
    cents = round(100 * (val - dollars))

    # Convert to strings
    dollars_string = convert_units(dollars, "dollar")
    cents_string = convert_units(cents, "cent")

    # return composite string
    if dollars == 0 and cents == 0:
        return "Broke!"
    elif dollars == 0:
        return cents_string
    elif cents == 0:
        return dollars_string
    else:
        return dollars_string + " and " + cents_string
    
    
# Tests
print convert(11.23)
print convert(11.20)
print convert(1.12)
print convert(12.01)
print convert(1.01)
print convert(0.01)
print convert(1.00)
print convert(0)
 


Produce el .0 al final de céntimos.

Después de ver el ejemplo de Joe en el video no lo hace, pero el ejemplo para codeskulptor si. Donde crea la aplicación mas interactiva.
Supongo que de alguna forma (que no vi), le quita el .0.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Sabado, 26 Octobre 2013, 21:50; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: [Python Y Gambas] Ejemplo De Los Dolares Y Céntimos 
 
Perdonar, no os puse el ejemplo que estaba haciendo a la vez que lo decía Joe:

Os pongo todo el código y podéis pegar en:

www.codeskulptor.org

# Aplicación interactiva que convertira un valor real
# en dolares y centimos a dos valores enteros de dolares y centimos.

import simplegui

# Definimos las variables globales
valor = 3.12

# Handle single quantity
def convert_units(val, name):
    result = str(val) + " " + name
    if val > 1:
        result = result + "s"
    return result
        
# convert xx.yy to xx dollars and yy cents
def convert(val):
    # Split into dollars and cents
    dollars = int(val)
    cents = round(100 * (val - dollars))

    # Convert to strings
    dollars_string = convert_units(dollars, "dollar")
    cents_string = convert_units(cents, "cent")

    # return composite string
    if dollars == 0 and cents == 0:
        return "Broke!"
    elif dollars == 0:
        return cents_string
    elif cents == 0:
        return dollars_string
    else:
        return dollars_string + " and " + cents_string
    

# definimos el o los manejadores de dibujo
def draw(canvas):
    canvas.draw_text(convert(valor), [60, 110], 24,"White")

# define un manejador de campo de entrada de texto
def input_handler(text):
    global valor
    valor = float(text)
    

# Creamos un marco
frame = simplegui.create_frame("Convertidor",400,200)


# Registramos los manejadores de eventos
frame.set_draw_handler(draw)
frame.add_input("Entre valor",input_handler,100)

# Comenzamos el marco
frame.start()
 


Os podía haber pasado un enlace, así no se pierde.
Ups, pues si es que chillón el color..

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes [Python] Inventa Tus Propios Juegos De Com... Shell Python 0 Viernes, 12 Febrero 2016, 20:35 Ver último mensaje
Shell
No hay nuevos mensajes [Python]Estantería Para Libros De Inventa... Shell Python 3 Miercoles, 07 Diciembre 2016, 21:04 Ver último mensaje
tincho
No hay nuevos mensajes [Python] Por Qué Python Debería Ser El P... Shell Python 2 Martes, 04 Julio 2017, 21:01 Ver último mensaje
vuott
No hay nuevos mensajes [Python] Guido Van Rossum Abandona La Supe... Shell Python 5 Miercoles, 10 Octobre 2018, 08:59 Ver último mensaje
Shell
 

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