• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 217
  • Last Modified:

Expanding formula statement automatically.

Hi All,

Given these 2 formulas of   y =.......  which are dependent on the number of atoms.length, and they appear to be consistantly applied,  I want to make the formulas appear so that as the number of atoms.length increased causes the formula y =.......   to expand accordingly.

This is demonstrated in the two situations below:


............. start of snip

int atmlength = atoms.length;

       if (atmlength == 3) // 2nd degree
        {        
          y = Float.parseFloat(atoms[atoms.length-1]) +

gofrmX*(Float.parseFloat(atoms[atoms.length-2]) +

gofrmX*Float.parseFloat(atoms[atoms.length-3]));
        }

        if (atmlength == 4) // 3rd degree
        {        
          y = Float.parseFloat(atoms[atoms.length-1]) +

gofrmX*(Float.parseFloat(atoms[atoms.length-2]) +

gofrmX*(Float.parseFloat(atoms[atoms.length-3]) +

gofrmX*Float.parseFloat(atoms[atoms.length-4])));
        }

end of snip...........

Delphi3

0
delphi3
Asked:
delphi3
  • 12
  • 7
1 Solution
 
expertmbCommented:
for(int i = 1; atomlength <=atmlength ; i++){
  y+= Float.parseFloat(atoms[atoms.length-i])
}
0
 
expertmbCommented:
y = Float.parseFloat(atoms[atoms.length-1])
for(int i = 2; atomlength <=atmlength ; i++){
  y+= gofrmX*Float.parseFloat(atoms[atoms.length-i])
}

or

y = Float.parseFloat(atoms[atoms.length-1])
for(int i = 2; atomlength <=atmlength ; i++){
  y+= gofrmX*Float.parseFloat(atoms[i])
}
0
 
expertmbCommented:
y = Float.parseFloat(atoms[atoms.length-1])
for(int i = 2; i <=atmlength ; i++){
  y+= gofrmX*Float.parseFloat(atoms[i])
}
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
delphi3Author Commented:
expertmb,
Thanks for your java statements .
Surprised that some of the punctuation is missing like ";".
Still none of the statements above fill the bill.

Any more suggestions?

D#
0
 
expertmbCommented:
hmmmmmm missed semicolons.
if the code is not lenghty can you post the code.
0
 
expertmbCommented:
class formulaTest{

 public static void main(String[] s){
      //String atoms[] = {"1","2","3"};
      String atoms[] = {"1","2","3", "4"};

      int atmlength = atoms.length;
      float y = Float.parseFloat(atoms[0]);
      for(int i = 1; i <atmlength ; i++){
        y+= Float.parseFloat(atoms[atoms.length-i]);
      }

      System.out.println("y: " + y);
 }
}
0
 
expertmbCommented:
modified
class someTest{

 public static void main(String[] s){
      //String atoms[] = {"1","2","3"};
      String atoms[] = {"1","2","3", "4"};

      int atmlength = atoms.length;
      float x = 0.5f;
      float y = Float.parseFloat(atoms[atmlength-1]);
      for(int i = 2; i <=atmlength ; i++){
            System.out.println(atoms[atoms.length-i]);
        y+= (Float.parseFloat(atoms[atoms.length-i]))*x;
      }

      System.out.println("y: " + y);
 }
}
0
 
delphi3Author Commented:
Sorry to post it this way,
but at the moment it seems more efficient.

see my initial post at
http://www.experts-exchange.com/Miscellaneous/Math_Science/Q_21131187.html

and you should see the snip that I put above.

Hope that this help in clarifying the difficulty. Thie notes at the top of it present a few sample problems.

D3

0
 
expertmbCommented:
class someTest{

 public static void main(String[] s){
      String atoms[] = {"1","2","3"};
      //String atoms[] = {"1","2","3", "4"};

      int atmlength = atoms.length;
      float x = 0.5f;
      float y = 0.0f;//Float.parseFloat(atoms[atmlength-1]);
      for(int i = atmlength; i >1 ; i--){
        y= (y + (Float.parseFloat(atoms[atoms.length-i])))*x;
      }

      y+= Float.parseFloat(atoms[atmlength-1]);

      System.out.println("y: " + y);

      float z = 0.0f;
      float gofrmX = x;
      /*if (atmlength == 4) // 3rd degree
      {
        z = Float.parseFloat(atoms[atoms.length-1]) +
              gofrmX*(
                    Float.parseFloat(atoms[atoms.length-2]) +
                        gofrmX*(
                              Float.parseFloat(atoms[atoms.length-3]) +
                                    gofrmX*Float.parseFloat(atoms[atoms.length-4])));
      }*/

      if (atmlength == 3) // 2nd degree
      {
            y = Float.parseFloat(atoms[atoms.length-1]) +
                  gofrmX*(
                        Float.parseFloat(atoms[atoms.length-2]) +
                        gofrmX*Float.parseFloat(atoms[atoms.length-3]));
      }
      System.out.println("y: " + y);
 }

}
0
 
expertmbCommented:
     float y = 0.0f;//Float.parseFloat(atoms[atmlength-1]);
      for(int i = atmlength; i >1 ; i--){
        y= (y + (Float.parseFloat(atoms[atoms.length-i])))*x;
      }

      y+= Float.parseFloat(atoms[atmlength-1]);
0
 
delphi3Author Commented:
expertmb,
Thanks for your further efforts.
It is near 2:30 am and will study your responses when I get up in the morning.

D3
0
 
expertmbCommented:
will not be available, long weekend for me ,(festival in india) catch you on monday for further comments.
0
 
delphi3Author Commented:
Hi  expertmb ,

I have pursued this matter further
what was the former lines of coding in my work at
http://www.experts-exchange.com/Miscellaneous/Math_Science/Q_21131187.html

.........
    while (gofrmX <= gotoX )
      {
        if (atmlength == 3) // 2nd degree
        {      
          y = Float.parseFloat(atoms[atoms.length-1]) +

gofrmX*(Float.parseFloat(atoms[atoms.length-2]) +

gofrmX*Float.parseFloat(atoms[atoms.length-3]));
        }
        if (atmlength == 4) // 3rd degree
        {        
          y = Float.parseFloat(atoms[atoms.length-1]) +

gofrmX*(Float.parseFloat(atoms[atoms.length-2]) +

gofrmX*(Float.parseFloat(atoms[atoms.length-3]) +

gofrmX*Float.parseFloat(atoms[atoms.length-4])));
        }
        System.out.print("Value for y is " + y);        
        if( y < 0 ){

...........


 the new replacement will be:
........
   while (gofrmX <= gotoX )
      {
        y = 0;
        float yC = Float.parseFloat(atoms[atoms.length-1]);// constant term
        System.out.println ("Constant term "+ yC);
       
        for(int i = atmlength; i >1 ; i--){
          y = (y + (Float.parseFloat(atoms[atoms.length-i])))*gofrmX;
         
        }
        y= y + yC; // adding in the constant term
        System.out.print ("total y = "+ y);
       
        if( y < 0 ){
........
I am now able to do any number set of terms (well, maybe), thanks to you.

I am sure that this whole problem and revisions will not buy anyone a cup of coffee at any restaurant

Delphi3
0
 
expertmbCommented:
>>I am sure that this whole problem and revisions will not buy anyone a cup of coffee at any restaurant
???
0
 
delphi3Author Commented:
expertmb,

Thanks to you I now have the formula. Your efforts are signinficant to me and I appreciate it.

My remark about the cup of coffee at a restaurant is an expression that means: for the average man in the street, I could offer him my Java program and he would more that likely react by saying "so what, is this program important to my life? and if it is I will buy you a cup of coffee at the restaurant".  More than likely I could not convince him.

Again many thanks to you. You should have the points and the grade.

Delphi3
0
 
delphi3Author Commented:
expertmb,

sorry for the spelling error:

signinficant is misspelled  above and should be "significant" meanining the same as important or having value.



D3
0
 
expertmbCommented:
Dear Delphi3,

thanks for the comments. you took my comment(???) seriously, if the comment hurt really sorry for that.

mb ...
0
 
delphi3Author Commented:
expertmb,
the answer is that it did not hurt. I am very concerned that you understood me with the correct meaning.
This cross cultural thing is very important to me and I thought after the "???" you deserved an better explanation.

Sometimes thoughts come into my head, and out on to the screen  too fast. I should run my thoughts into the cross cultural filter.  As you can see I am running that filter now :)

So I am a happy person.  

D3



0
 
expertmbCommented:
:-)

mb...
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

  • 12
  • 7
Tackle projects and never again get stuck behind a technical roadblock.
Join Now