Java

Moderators: zibadian
Number of threads: 7818
Number of posts: 18218

This Forum Only
Post New Thread
Single Post View       Linear View       Threaded View      f

Report
Calling Static method Posted by circuz_phreak on 12 Oct 2006 at 9:20 AM
I have a static method created called:

public static long factorial(int n){ //open factorial
int i;
long result=1;
for (i=1; i <= n; i++) {
result *= i;
}
return result;
}

I have no idea how to call it in the main. I leave public class open and close it after factorial and close main before factorial. But i really have no idea how to call it or use the return value. I need to compute factorials (0 to 11) and use them as part of an equation. (the taylor cosine approximation and have them print to screen. Kind of stuck....thanks
Report
Re: Calling Static method Posted by zibadian on 12 Oct 2006 at 10:15 AM
: I have a static method created called:
:
: public static long factorial(int n){ //open factorial
: int i;
: long result=1;
: for (i=1; i <= n; i++) {
: result *= i;
: }
: return result;
: }
:
: I have no idea how to call it in the main. I leave public class open and close it after factorial and close main before factorial. But i really have no idea how to call it or use the return value. I need to compute factorials (0 to 11) and use them as part of an equation. (the taylor cosine approximation and have them print to screen. Kind of stuck....thanks
:
You can use the class name as object in this case. For example:
  sinPhi = Math.sin(phi); // takes the sinus of variable phi
  System.out.println(Math.sqrt(4)); // Prints 2

where Math is a class full of static mathematics routines. See javaDoc: http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Math.html
Report
Re: Calling Static method Posted by circuz_phreak on 12 Oct 2006 at 10:39 AM
Thanks, got it all figured out. But i'm stuck again haha! I have no idea how to use my factorial method to calculate the Taylor Approximation series. I have input for an angle, factorial method, now i'm supposed to create the Taylor Cosine method. Any idea's where to start or how to go about it?
Report
Re: Calling Static method Posted by zibadian on 12 Oct 2006 at 11:21 AM
: Thanks, got it all figured out. But i'm stuck again haha! I have no idea how to use my factorial method to calculate the Taylor Approximation series. I have input for an angle, factorial method, now i'm supposed to create the Taylor Cosine method. Any idea's where to start or how to go about it?
:
I would start by looking up the taylor series. Then write it down in english or pseudocode, which steps need to be calculated and in which order. Be mindful of loops and if-statements along the way. Finally you can translate what you have written down into Java.
If you write it down correctly and precisely, then the last step is very easy. In a lot of cases writing such things down will teach you to recognize loops and other statements more clearly. In some cases you might want to try various approaches. It is often helpful to break the complete calculation down in smaller parts and focus on each of those individual parts. Once the individual parts work correctly, then link them together to form the whole.
Report
Re: Calling Static method Posted by circuz_phreak on 12 Oct 2006 at 1:59 PM
not too difficult but before i can make it into a method i have to fix up the code. Here's what i have,

value = (Math.pow(-1, terms) * Math.pow(radAngle, (2*terms))) / factorial((2 * terms))); // inside a for loop in the main {}

terms changes because its inside a for loop, 1 - 11 terms, rad angle is the input by the user, and factorial calls the method.

The last part enters (2 * terms) into the factorial method to gimme a number. However the way this works out is Double * double / long. I get precision errors. Now if my answer is a long how can it be in decimal form? it recommends i cast it and write (long) infront of both doubles. The numbers i'm computing are going to have ALOT of decimal places. What do i do?

Thanks for all your help!!!

Report
Re: Calling Static method Posted by zibadian on 12 Oct 2006 at 9:28 PM
: not too difficult but before i can make it into a method i have to fix up the code. Here's what i have,
:
: value = (Math.pow(-1, terms) * Math.pow(radAngle, (2*terms))) / factorial((2 * terms))); // inside a for loop in the main {}
:
: terms changes because its inside a for loop, 1 - 11 terms, rad angle is the input by the user, and factorial calls the method.
:
: The last part enters (2 * terms) into the factorial method to gimme a number. However the way this works out is Double * double / long. I get precision errors. Now if my answer is a long how can it be in decimal form? it recommends i cast it and write (long) infront of both doubles. The numbers i'm computing are going to have ALOT of decimal places. What do i do?
:
: Thanks for all your help!!!
:
:
I would cast the long into a double, because a long is an integer type, and you want to have the decimal places.
Report
Re: Calling Static method Posted by circuz_phreak on 13 Oct 2006 at 7:49 AM
unfortunately that's not working because the long can reach all the way up to factorial 11 * 2 which means factorial 22! = which is HUGE. Also it still gives me a precision error and tells me I have a precision error, found double required long...I mean these numbers get so big i have no idea what to do, the divisor can be Huge and the dividend can be some number with 15 decimal places. Why does java have to be so complicated?
Report
Re: Calling Static method Posted by circuz_phreak on 13 Oct 2006 at 8:21 AM
sorry i'm just mildly retarded, i had it declared as a long the entire time and didn't realise it...I have a couple methods and a lot of code in the main{} body so i didn't even notice. Thanks for all your help.

I'm just confused now how I get all of the numbers to add up. Value = 1, then -0.5, then 0.04661. (theres alot more). But if its inside a for loop I'm not sure how to add them up, Term 1 = 1, term 2 = 1 + (-0.5), Term 3 (Term 2 + 0.04661); But i'm somewhat lost. I thought it was simple but everything i've tried fails.
Report
Re: Calling Static method Posted by zibadian on 13 Oct 2006 at 1:16 PM
: sorry i'm just mildly retarded, i had it declared as a long the entire time and didn't realise it...I have a couple methods and a lot of code in the main{} body so i didn't even notice. Thanks for all your help.
:
: I'm just confused now how I get all of the numbers to add up. Value = 1, then -0.5, then 0.04661. (theres alot more). But if its inside a for loop I'm not sure how to add them up, Term 1 = 1, term 2 = 1 + (-0.5), Term 3 (Term 2 + 0.04661); But i'm somewhat lost. I thought it was simple but everything i've tried fails.
:
I would use a function to calculate the terms based on some counter:
  double taylor = 0;

  for (int i = 0; i < Max; i++) {
    taylor = taylor + term(i);
  }

Report
Re: Calling Static method Posted by circuz_phreak on 13 Oct 2006 at 2:01 PM
Got everything working smoothly now, just got 2 small bugs to fix. Thanks for all your help. If I struggle with the bugs i'll re-post. Other than that the program is complete.



 

Recent Jobs

Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Flash | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2011 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Operated by CommunityHeaven, a BootstrapLabs company.