#https://replit.com/languages/ruby
require 'colorize' #gem install colorize
=begin
https://ruby.obdnet.com/2021/03/pasar-de-rb-exe-con-ocra.html
Para hacer el exe, desde el mismo directorio desde el que esté el rb, pon esto en el cmd de windows:
ocra crypto.rb --console --dll ruby_builtin_dlls\libssp-0.dll --dll ruby_builtin_dlls\libgmp-10.dll --dll ruby_builtin_dlls\libgcc_s_seh-1.dll --dll ruby_builtin_dlls\libwinpthread-1.dll
=end
def pregunta_final
puts
puts " ***************************************************************************"
puts " ¿ Quieres salir (S), volver al menú (M), Ver márgenes (V) o Fibonacci (F)?"
puts " ***************************************************************************"
pf = gets.chomp
pf = pf.upcase
case pf
when "S"
system('cls')
puts
puts
puts
puts "* Has contestado SALIR."
puts " Adiós"
when "M"
system ('cls')
pregunta_inicial
when "V"
system('cls')
margenes
when "F"
system('cls')
fibo
end
end
def fibo
fibo_alza = [0, 23.6, 38.2, 50, 61.8, 76.4, 100, 138.2]
fibo_baja = [138.2, 100, 76.4, 61.8, 50, 38.2, 23.6, 0]
puts
puts
puts " Sobre qué valor quieres hacer la previsión"
v = gets.to_f
puts " *********************************************** AL ALZA *********"
fibo_alza.each do |f|
x = (v*f)/100
case f
when 61.8
puts " Sobre el punto #{f} % sale un valor de #{"%.2f" % (x+v)} <<==".red
when 50, 76.4
puts " Sobre el punto #{f} % sale un valor de #{"%.2f" % (x-v)} <<==".yellow
else
puts " Sobre el punto #{f} % sale un valor de #{"%.2f" % (x+v)}".blue
end
end
puts " *****************************************************************"
puts
puts " ************************************************ A LA BAJA ******"
fibo_baja.each do |ff|
xx = (v*ff)/100
case ff
when 38.2
puts " Sobre el punto #{ff} % sale un valor de #{"%.2f" % (xx-v)} <<==".red
when 50, 23.6
puts " Sobre el punto #{ff} % sale un valor de #{"%.2f" % (xx-v)} <<==".yellow
else
puts " Sobre el punto #{ff} % sale un valor de #{"%.2f" % (xx-v)}".blue
end
end
puts " *****************************************************************"
pregunta_final
end
def margenes
puts
puts
puts
unless defined? $pc
puts "¿ Qué precio inicial de COMPRA pones ?"
$pc = gets.to_f
else
puts " El precio inicial de COMPRA tengo #{$pc}".blue
end
unless defined? $pv
puts "¿ Qué precio inicial de VENTA pones ?"
$pv = gets.to_f
else
puts " El precio inicial de VENTA tengo #{$pv}".blue
end
puts
puts
puts
$incremento = ($pv - $pc)
# puts "Esto es $incremento: #{$incremento} = #{$pv - $pc}"
$porcentaje =(100*$incremento)/$pc
# puts "Esto es $porcentaje: #{$porcentaje}"
case
when $pc < $pv
puts " Hay ganancia de #{"%.2f" % ($incremento)}"
puts " Hay un incremento de #{"%.4f"% ($porcentaje)} %"
puts
fibo
when $pc > $pv
puts " Hay pérdida de #{"%.2f" % ($incremento)}"
puts " Hay un decremento de #{"%.4f"% ($porcentaje)} %"
puts
fibo
when $pc = $pv
puts " No Hay pérdida ni beneficio #{"%.2f" % ($incremento)}"
puts " Hay un de #{"%.4f"% ($porcentaje)} %"
puts
else
pregunta_inicial
end
pregunta_final
end
def precios
puts " Estamos en precios."
puts
puts " Precio inicial de compra".blue
$pc = gets.to_f
puts
puts
puts " Precio final de venta".yellow
$pv = gets.to_f
puts
$incremento = ($pv - $pc)
$porcentaje =(100*$incremento)/$pc
case
when $pc < $pv
puts " Hay ganancia de #{"%.2f" % ($incremento)}"
puts " Hay un incremento de #{"%.4f"% ($porcentaje)} %"
puts
when $pc > $pv
puts " Hay pérdida de #{"%.2f" % ($incremento)}"
puts " Hay un decremento de #{"%.4f"% ($porcentaje)} %"
puts
when $pc = $pv
puts " No Hay pérdida ni beneficio #{"%.2f" % ($incremento)}"
puts " Hay un #{"%.4f"% ($porcentaje)} %"
puts
end
pregunta_final
end
def calcular_ganancia
puts
puts " Estamos en Calcular ganancias"
puts
puts
unless defined? $pc
puts " ¿ Cuál es el precio de partida o compra ?"
puts
$pc = gets.to_f
puts " ¿ Qué ganancias en % quisieras tener ?"
$ganancias = gets.to_f
else
puts " ¿ Qué ganancias en % quisieras tener ? sobre el precio de #{$pc} ya introducido?"
$ganancias = gets.to_f
end
precio_esperado = ($pc*$ganancias)/100
puts " Para tener esas ganancias de #{$ganancias} % deberías esperar"
puts " a que el precio llegue a #{precio_esperado+$pc}"
puts
pregunta_final
end
def pregunta_inicial
puts
pregunta1 = " ¿ Qué quieres hacer ? "
puts " ****************************************"
#pregunta1.size.times {print "*"}
puts
puts pregunta1
#40.times {print "*"}
puts
puts " *********************************************"
puts " * *"
puts " * MENU PRINCIPAL *"
puts " * ============== *"
puts " * *"
puts " * 1.- Ver ganancia y/o pérdida real. *"
puts " * 2.- Calcular mi ganancia futura. *"
puts " * 3.- Ver márgenes de Fibonacci. *"
puts " * *"
puts " * 4.- Salir. *"
puts " * *"
puts " *********************************************"
puts
puts
puts " *".yellow
puts " *".yellow
puts "***".yellow
puts " *".yellow
hacer = gets.chomp.to_i
case hacer
when 1
system('cls')
precios
when 2
system('cls')
calcular_ganancia
when 3
system('cls')
fibo
when 4
system('cls')
puts
puts
puts
puts " * Quieres terminar."
puts " Adiós"
else
system('cls')
end
end
pregunta_inicial