• Status: Solved
• Priority: Medium
• Security: Public
• Views: 221
• 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:
• 12
• 7
1 Solution

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

Commented:
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

Commented:
y = Float.parseFloat(atoms[atoms.length-1])
for(int i = 2; i <=atmlength ; i++){
y+= gofrmX*Float.parseFloat(atoms[i])
}
0

Author 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

Commented:
hmmmmmm missed semicolons.
if the code is not lenghty can you post the code.
0

Commented:
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

Commented:
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

Author 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

Commented:
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

Commented:
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

Author 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

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

Author 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

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

Author 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

Author 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

Commented:
Dear Delphi3,

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

mb ...
0

Author 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

Commented:
:-)

mb...
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Featured Post

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