We help IT Professionals succeed at work.

Math line for a program (Cube Root)

PPaul
PPaul asked
on
Medium Priority
703 Views
Last Modified: 2006-11-17
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

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.

Ask the Experts

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

Author

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.

Sorry about the error..

http://tcp.home.ml.org/
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½

Author

Commented:
Thanks.  Big Help!
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

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

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.