I recently discussed in this group the basic starting of a project. I
am getting a little confused at passing a variable between a
calculation.

I am learning so can take some feedback and criticism the part of the
code I am referring to is Scenario 1. I am trying to ensure that the
calcualted value of x is never greater than 1.0. So I am aiming to
determine the value of x for the second calc if the result of the
first calculation produces a valid result.

r = 5.0
p = 10.0
per = 190.0
max_x = 0.8

x = 0.05
const = r100 # simplified without X
x += 0.05 while (xconst < per) && (x <= max_x)
puts x <= max_x ? “#{x*100.0}%” : “no answer”

Bank = $500.00 # later to be a running total calculated

def ROIcalc
const = r100 # simplified without X
x += 0.05 while (xconst < per) && (x <= max_x)
puts x <= max_x ? “#{x*100.0}%” : “no answer”
end

def pool
if Bank > 200 then Bank * 0.05
Else $10.00
end

here in case I need it

def round
return floor(self+0.5) if self > 0.0
return ceil(self-0.5) if self < 0.0
return 0.0
end

Scenario 1

simple 2 option scenario where the max allocation is to option a

a = ROIcalc(per = 190, max_x = 0.8, puts “What ratio of return do you
expect?” r = gets.chomp, pool)
If for x in a < 0.6 then x in a = 0.6 & for x in b = 0.4
elseif x > 0.8 then puts " This option is invalid you exceed
allocation" # take user somewhere
# Take user to choose another option
else for x in b = 1.0 - x
b = ROIcalc(per = 200, max_x = 0.4, r = 12.00, pool)

expect?" r = gets.chomp, pool)
If for x in a < 0.6 then x in a = 0.6 & for x in b = 0.4
elseif x > 0.8 then puts " This option is invalid you exceed
allocation" # take user somewhere
# Take user to choose another option
else for x in b = 1.0 - x
b = ROIcalc(per = 200, max_x = 0.4, r = 12.00, pool)

totally changed the way I was going about it.

Can this be simplified any further?

Bank = A running total

def pool
if Bank > 200 then Bank * 0.05
Else $10.00
end

def ROIcalc2
((xunits * max_return)/pool)*100 > Per
end

scenario 1

xunits = (0.6)step(0.8, 0.05)
Per = 190
puts “What ratio of return do you expect?”
gets.chomp
ROI = (gets.chomp).to_f
max_return = pool * ROI
when xunits in ROIcalc2(xunits, max_return, pool, Per) is true then
Xunits_2 = 1.0 - xunits
puts "xunits equals " + xunits + " xunits2 equals " + Xunits_2
else
puts " This is am invalid option please choose another option "
end

expect?" r = gets.chomp, pool)
If for x in a < 0.6 then x in a = 0.6 & for x in b = 0.4
elseif x > 0.8 then puts " This option is invalid you exceed
allocation" # take user somewhere
# Take user to choose another option
else for x in b = 1.0 - x
b = ROIcalc(per = 200, max_x = 0.4, r = 12.00, pool)

def pool
if Bank > 200 then Bank * 0.05
Else $10.00
end

def ROIcalc2
((xunits * max_return)/pool)*100 > Per
end

scenario 1

xunits = (0.6)step(0.8, 0.05)
Per = 190
puts “What ratio of return do you expect?”
gets.chomp
ROI = (gets.chomp).to_f
max_return = pool * ROI
when xunits in ROIcalc2(xunits, max_return, pool, Per) is true then
Xunits_2 = 1.0 - xunits
puts "xunits equals " + xunits + " xunits2 equals " + Xunits_2
else
puts " This is am invalid option please choose another option "
end

What language is this in? Did you try running it?

Getting your code to work is arguably more important than style

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.