Foros del Web » Programando para Internet » Ruby »

mejorar codigo - novato

Estas en el tema de mejorar codigo - novato en el foro de Ruby en Foros del Web. hola que tal, estoy recién empezando a programar, así es que no tengo mucho conocimiento. tengo un ejercicio que me gustaría que me ayuden a ...
  #1 (permalink)  
Antiguo 04/09/2015, 16:14
 
Fecha de Ingreso: septiembre-2015
Mensajes: 2
Antigüedad: 9 años, 2 meses
Puntos: 0
Pregunta mejorar codigo - novato

hola que tal,
estoy recién empezando a programar, así es que no tengo mucho conocimiento. tengo un ejercicio que me gustaría que me ayuden a optimizar el código sobre todo en la parte del calculo. Aqui les dejo el ejercicio y mi código. Gracias de antemano


=begin
2. Un cambista de Ocoña necesita saber cuántos billetes de 100, 50 y 20 dólares ,respectivamente,
necesita para realizar un cambio de dinero de un cliente que le ha pedido le cambie una cantidad en soles.
Realice un programa orientado a objetos tal que le permita atender a dicho cliente.
Considere registrar los datos del cliente: Nombre y dni además del monto que desea que le cambien.
Considerar el tipo de cambio = 3.12 soles/dólar.
=end

class CambioDolares

def initialize(nombre,dni,soles)
@nombre=nombre
@dni=dni
@soles=soles

end

def calcular
cambio=3.12
dolares=@soles*cambio
dolares2=dolares
billetes=[100,50,20]
billete1=dolares2/billetes[0]
dolares2=dolares2%billetes[0]
billete2=dolares2/billetes[1]
dolares2=dolares2%billetes[1]
billete3=dolares2/billetes[2]



"monto a cambiar:#{sprintf("%#.2f",@soles)} soles
Cambio: #{sprintf("%#.2f",dolares)} dolares
billetes de 100: #{billete1.to_i}\n billetes de 50: #{billete2.to_i}\n billetes de 20: #{billete3.to_i}"

end

def mostrar
"Cliente: #{@nombre}\n DNI: #{@dni}\n "

end


end

cliente1= CambioDolares.new("jose","51485681", 119)
puts cliente1.mostrar
puts cliente1.calcular
  #2 (permalink)  
Antiguo 09/09/2015, 21:00
 
Fecha de Ingreso: septiembre-2015
Mensajes: 2
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: mejorar codigo - novato

Codigo mejorado

class CambioDolares

def initialize(nombre,dni,soles)
@nombre=nombre
@dni=dni
@soles=soles

end

def calcular
cambio=3.12
dolares=@soles*cambio
billetes=[100,50,20]
puts "Cambio total: #{sprintf("%#.2f",dolares)}"
for i in 0...billetes.size
puts "Billetes de #{billetes[i]}: = #{dolares.to_i / billetes[i].to_i}"
dolares=dolares % billetes[i]
end
""

end
def mostrar

"Cliente: #{@nombre}\n DNI: #{@dni}\n #{calcular.to_s} "

end



end

cliente1= CambioDolares.new("jose","51485681", 1800)
puts cliente1.mostrar
cliente2=CambioDolares.new("Antuanet","72689542",1 845)
puts cliente2.mostrar

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:14.