We help IT Professionals succeed at work.

# Math line for a program (Cube Root)

on
Medium Priority
703 Views
I'm creating a program in D2.  a math Equation is going to be used to figerout the Volum to Surfase Area of of an Object.  The book that I'm using has the following Math.
Surfase Area =[(cube root of volume) squared] x 6

Is there a command in D2 that calculates the cube root or do I have to find an nother way.

If there is no command, please supply code to add.   willing to give the points.

Thanks
PPaul
Comment
Watch Question

## View Solution Only

Commented:
procedure TForm1.Button1Click(Sender: TObject);
function Root(FSurface, FDegree: Real): Real;
begin
Result:=Exp(1/FDegree*Ln(FSurface));
end;

begin
ShowMessage(FloattoStr(Root(50,6)));
end;

Not the solution you were looking for? Getting a personalized solution is easy.

Commented:
function GetSurfaceArea(Volume: Real): Real;
begin
Result := Sqr( 1/Exp(3 * Ln(Volume)) ) * 6;
end;

Commented:
OK.  I looked at the above code..  The one by ronit lost me.  I'm trying to fuger out what's with the two varables.  they just shoot me for a loop. :)

The code by AllenC, I tryed in the program and the results are nowere close to the the one from the Gaming book I'm making this program for :)

Is the above code using CUBE ROOT or did you make the same mastake I did ,  SQUARE ROOT.

The book I have, has a chart with Surface area rounded up/down to the close number.  Example:

Volume          Area
(cf)                (sf)
Under 0.03     0.5
0.03 - 0.06       1
Etc...

I need to get the cube root of the voloum then sqruare it then times it by 6 : [(cube root of volume) squared]x6

I have only one number to plug in to the math line that is Volume.

When I did test the code by AllenC  the result to 0.05 was realy off.  It sould have been around 1.  It gave me 383999999.999512.

Thanks for the help but I still need more.

ronit if you can can you discribe the steps the code is doing and why I need two numbers?  Thanks.

Commented:
Sorry, my mistake here. Try this code instead, it works, I tried it.

function GetSurfaceArea(Volume: Real): Real;
begin
GetSurfaceArea := Exp( (1/3) * Ln(Volume)) * 6;
end;

begin
Writeln(Round( GetSurfaceArea(27) ));
{ You should get 18 }
end.

Exp( (1/3) * Ln(Volume)) <- Cube Root of Volume.

http://tcp.home.ml.org/

Commented:
I will give you the most general function, so that it will answer any case, not just the 6'th case:

procedure TForm1.Button1Click(Sender: TObject);
function Root(FSurface, FDegree: Real): Extended;
begin
Result:=Exp(FDegree*Ln(FSurface));
end;
begin
ShowMessage(FloattoStr(Root(5,2)));//equel to 5²
ShowMessage(FloattoStr(Root(16,1/4)));//equel to 16¼
end;

And In general:
Root(X, a)=Xª
SQRT(25)=Root(25, 1/2)=25½

Commented:
Thanks.  Big Help!
##### Thanks for using Experts Exchange.

• View three pieces of content (articles, solutions, posts, and videos)
• Ask the experts questions (counted toward content limit)
• Customize your dashboard and profile