#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

#### Categories

Welcome to the new platform of Programmers Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use it's exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

Posts: 13Member
Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
import java.io.*;
import java.util.*;
import java.lang.*;

public class SD2 {
public static void main(String arguments[]) {

double xMean = 0.0;
double standardDeviation = 0.0;
double xMedian = 0.0;

int lSize;
StreamTokenizer text = null;

String filename = null;
double number=-1;

System.out.println("Please enter a number (-1 to exit): ");

do {
String input = null;
try {
number = Double.parseDouble(input);
} catch (IOException e) {
e.printStackTrace();
}
} while (number != -1);

lSize = lList.size();

for (int count = 0; count < lSize; ++count) {
Double dd = (Double)lList.get(count);
double dnum = dd.doubleValue();
xMean = xMean + dnum;
}
xMean = xMean / lSize;
for (int count = 0; count < lSize; ++count) {
Double dd = (Double)lList.get(count);
double dnum = dd.doubleValue();
xMedian = xMedian + dnum / 2;
}
for (int count = 0; count < lSize; ++count) {
Double dd = (Double)lList.get(count);
double dnum = dd.doubleValue();
standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
}
standardDeviation = standardDeviation / ( lSize - 1 );
standardDeviation = Math.sqrt(standardDeviation);

System.out.print("");
System.out.println("Mean:" + xMean);
System.out.println("Median:" + xMedian);
System.out.println("Standard Deviation:" + standardDeviation);
}
}

· ·

• Posts: 25Member
Hi,

I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..

you can refer to this link, in which u have a clear example

http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm

hope this helps :)

: Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
: import java.io.*;
: import java.util.*;
: import java.lang.*;
:
: public class SD2 {
: public static void main(String arguments[]) {
:
:
: double xMean = 0.0;
: double standardDeviation = 0.0;
: double xMedian = 0.0;
:
: int lSize;
: StreamTokenizer text = null;
:
: String filename = null;
: double number=-1;
:
: System.out.println("Please enter a number (-1 to exit): ");
:
: do {
: String input = null;
: try {
: number = Double.parseDouble(input);
: } catch (IOException e) {
: e.printStackTrace();
: }
: } while (number != -1);
:
: lSize = lList.size();
:
:
:
: for (int count = 0; count < lSize; ++count) {
: Double dd = (Double)lList.get(count);
: double dnum = dd.doubleValue();
: xMean = xMean + dnum;
: }
: xMean = xMean / lSize;
: for (int count = 0; count < lSize; ++count) {
: Double dd = (Double)lList.get(count);
: double dnum = dd.doubleValue();
: xMedian = xMedian + dnum / 2;
: }
: for (int count = 0; count < lSize; ++count) {
: Double dd = (Double)lList.get(count);
: double dnum = dd.doubleValue();
: standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
: }
: standardDeviation = standardDeviation / ( lSize - 1 );
: standardDeviation = Math.sqrt(standardDeviation);
:
: System.out.print("");
: System.out.println("Mean:" + xMean);
: System.out.println("Median:" + xMedian);
: System.out.println("Standard Deviation:" + standardDeviation);
: }
: }
:
:
:

· ·
• Posts: 13Member
Thanks, for the information. I thought I was using those formulas but I will try again.

Hi,
:
: I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
:
: you can refer to this link, in which u have a clear example
:
: http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
:
:
: hope this helps :)
:
:
:
:
: : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
: : import java.io.*;
: : import java.util.*;
: : import java.lang.*;
: :
: : public class SD2 {
: : public static void main(String arguments[]) {
: :
: :
: : double xMean = 0.0;
: : double standardDeviation = 0.0;
: : double xMedian = 0.0;
: :
: : int lSize;
: : StreamTokenizer text = null;
: :
: : String filename = null;
: : double number=-1;
: :
: : System.out.println("Please enter a number (-1 to exit): ");
: :
: : do {
: : String input = null;
: : try {
: : number = Double.parseDouble(input);
: : } catch (IOException e) {
: : e.printStackTrace();
: : }
: : } while (number != -1);
: :
: : lSize = lList.size();
: :
: :
: :
: : for (int count = 0; count < lSize; ++count) {
: : Double dd = (Double)lList.get(count);
: : double dnum = dd.doubleValue();
: : xMean = xMean + dnum;
: : }
: : xMean = xMean / lSize;
: : for (int count = 0; count < lSize; ++count) {
: : Double dd = (Double)lList.get(count);
: : double dnum = dd.doubleValue();
: : xMedian = xMedian + dnum / 2;
: : }
: : for (int count = 0; count < lSize; ++count) {
: : Double dd = (Double)lList.get(count);
: : double dnum = dd.doubleValue();
: : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
: : }
: : standardDeviation = standardDeviation / ( lSize - 1 );
: : standardDeviation = Math.sqrt(standardDeviation);
: :
: : System.out.print("");
: : System.out.println("Mean:" + xMean);
: : System.out.println("Median:" + xMedian);
: : System.out.println("Standard Deviation:" + standardDeviation);
: : }
: : }
: :
: :
: :
:
:

· ·
• Posts: 13Member
Has anybody ever did a program like this?

: Thanks, for the information. I thought I was using those formulas but I will try again.
:
: Hi,
: :
: : I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
: :
: : you can refer to this link, in which u have a clear example
: :
: : http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
: :
: :
: : hope this helps :)
: :
: :
: :
: :
: : : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
: : : import java.io.*;
: : : import java.util.*;
: : : import java.lang.*;
: : :
: : : public class SD2 {
: : : public static void main(String arguments[]) {
: : :
: : :
: : : double xMean = 0.0;
: : : double standardDeviation = 0.0;
: : : double xMedian = 0.0;
: : :
: : : int lSize;
: : : StreamTokenizer text = null;
: : :
: : : String filename = null;
: : : double number=-1;
: : :
: : : System.out.println("Please enter a number (-1 to exit): ");
: : :
: : : do {
: : : String input = null;
: : : try {
: : : input = r.readLine();
: : : number = Double.parseDouble(input);
: : : } catch (IOException e) {
: : : e.printStackTrace();
: : : }
: : : } while (number != -1);
: : :
: : : lSize = lList.size();
: : :
: : :
: : :
: : : for (int count = 0; count < lSize; ++count) {
: : : Double dd = (Double)lList.get(count);
: : : double dnum = dd.doubleValue();
: : : xMean = xMean + dnum;
: : : }
: : : xMean = xMean / lSize;
: : : for (int count = 0; count < lSize; ++count) {
: : : Double dd = (Double)lList.get(count);
: : : double dnum = dd.doubleValue();
: : : xMedian = xMedian + dnum / 2;
: : : }
: : : for (int count = 0; count < lSize; ++count) {
: : : Double dd = (Double)lList.get(count);
: : : double dnum = dd.doubleValue();
: : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
: : : }
: : : standardDeviation = standardDeviation / ( lSize - 1 );
: : : standardDeviation = Math.sqrt(standardDeviation);
: : :
: : : System.out.print("");
: : : System.out.println("Mean:" + xMean);
: : : System.out.println("Median:" + xMedian);
: : : System.out.println("Standard Deviation:" + standardDeviation);
: : : }
: : : }
: : :
: : :
: : :
: :
: :
:
:

· ·
• Posts: 13Member
: Has anybody ever did a program like this?
:
: : Thanks, for the information. I thought I was using those formulas but I will try again.
: :
: : Hi,
: : :
: : : I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
: : :
: : : you can refer to this link, in which u have a clear example
: : :
: : : http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
: : :
: : :
: : : hope this helps :)
: : :
: : :
: : :
: : :
: : : : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
: : : : import java.io.*;
: : : : import java.util.*;
: : : : import java.lang.*;
: : : :
: : : : public class SD2 {
: : : : public static void main(String arguments[]) {
: : : :
: : : :
: : : : double xMean = 0.0;
: : : : double standardDeviation = 0.0;
: : : : double xMedian = 0.0;
: : : :
: : : : int lSize;
: : : : BufferedReader stdIn;
: : : : StreamTokenizer text = null;
: : : :
: : : : String filename = null;
: : : : double number=-1;
: : : :
: : : : System.out.println("Please enter a number (-1 to exit): ");
: : : :
: : : : do {
: : : : String input = null;
: : : : try {
: : : : input = r.readLine();
: : : : number = Double.parseDouble(input);
: : : : lList.add(new Double(number));
: : : : } catch (IOException e) {
: : : : e.printStackTrace();
: : : : }
: : : : } while (number != -1);
: : : :
: : : : lSize = lList.size();
: : : :
: : : :
: : : :
: : : : for (int count = 0; count < lSize; ++count) {
: : : : Double dd = (Double)lList.get(count);
: : : : double dnum = dd.doubleValue();
: : : : xMean = xMean + dnum;
: : : : }
: : : : xMean = xMean / lSize;
: : : : for (int count = 0; count < lSize; ++count) {
: : : : Double dd = (Double)lList.get(count);
: : : : double dnum = dd.doubleValue();
: : : : xMedian = xMedian + dnum / 2;
: : : : }
: : : : for (int count = 0; count < lSize; ++count) {
: : : : Double dd = (Double)lList.get(count);
: : : : double dnum = dd.doubleValue();
: : : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
: : : : }
: : : : standardDeviation = standardDeviation / ( lSize - 1 );
: : : : standardDeviation = Math.sqrt(standardDeviation);
: : : :
: : : : System.out.print("");
: : : : System.out.println("Mean:" + xMean);
: : : : System.out.println("Median:" + xMedian);
: : : : System.out.println("Standard Deviation:" + standardDeviation);
: : : : }
: : : : }
: : : :
: : : :
: : : :
: : :
: : :
: :
: :
:
:

· ·
• Posts: 25Member
hi,

i guess, the program given below calcualtes the mean and standard deviation correctly, check out the formula for median, i could not find it.

the main changes compared to ur code are;

say if we enter 4 elements.

Please enter a number (-1 to exit):
44
50
38
96
-1 // this -1 should not be counted

now lsize in ur program will contain 5 (because we have accepted 5 nums)

so you should run the for loop from count=0 to count<4 ,
that is (lsize -1).

here is the modified code.

and one small advice plzzzzzzzzz learn to align the code...

i have just done this because, today i had no other work... :-)

hope it helps

--------------------------------------------------------
import java.io.*;
import java.util.*;
import java.lang.*;

public class SD2
{

public static void main(String arguments[])
{

double xMean = 0.0;
double standardDeviation = 0.0;
double xMedian = 0.0;

int lSize;
StreamTokenizer text = null;

String filename = null;
double number=-1;

System.out.println("Please enter a number (-1 to exit): ");

do
{

String input = null;
try {
number = Double.parseDouble(input);
}
catch (IOException e)
{
e.printStackTrace();
}
} while (number != -1);

lSize = lList.size();

for (int count = 0; count < lSize-1; ++count)
{
Double dd = (Double)lList.get(count);

double dnum = dd.doubleValue();

xMean = xMean + dnum;
}

xMean = xMean / (lSize-1);

for (int count = 0; count < lSize-1; ++count)
{

Double dd = (Double)lList.get(count);
double dnum = dd.doubleValue();
xMedian = xMedian + dnum / 2;
}
standardDeviation=0;

for (int count = 0; count < lSize-1; ++count)
{
Double dd = (Double)lList.get(count);

double dnum = dd.doubleValue();

standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );

}

standardDeviation = standardDeviation / ( lSize - 2 );

standardDeviation = Math.sqrt(standardDeviation);

System.out.print("");
System.out.println("Number of elements = "+(lSize-1));

System.out.println("Mean:" + xMean);

System.out.println("Median:" + xMedian);

System.out.println("Standard Deviation:" + standardDeviation);
}
}

--------------------------------------------------------

: : Has anybody ever did a program like this?
: :
: : : Thanks, for the information. I thought I was using those formulas but I will try again.
: : :
: : : Hi,
: : : :
: : : : I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
: : : :
: : : : you can refer to this link, in which u have a clear example
: : : :
: : : : http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
: : : :
: : : :
: : : : hope this helps :)
: : : :
: : : :
: : : :
: : : :
: : : : : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
: : : : : import java.io.*;
: : : : : import java.util.*;
: : : : : import java.lang.*;
: : : : :
: : : : : public class SD2 {
: : : : : public static void main(String arguments[]) {
: : : : :
: : : : :
: : : : : double xMean = 0.0;
: : : : : double standardDeviation = 0.0;
: : : : : double xMedian = 0.0;
: : : : :
: : : : : int lSize;
: : : : : BufferedReader stdIn;
: : : : : StreamTokenizer text = null;
: : : : :
: : : : : String filename = null;
: : : : : double number=-1;
: : : : :
: : : : : System.out.println("Please enter a number (-1 to exit): ");
: : : : :
: : : : : do {
: : : : : String input = null;
: : : : : try {
: : : : : input = r.readLine();
: : : : : number = Double.parseDouble(input);
: : : : : lList.add(new Double(number));
: : : : : } catch (IOException e) {
: : : : : e.printStackTrace();
: : : : : }
: : : : : } while (number != -1);
: : : : :
: : : : : lSize = lList.size();
: : : : :
: : : : :
: : : : :
: : : : : for (int count = 0; count < lSize; ++count) {
: : : : : Double dd = (Double)lList.get(count);
: : : : : double dnum = dd.doubleValue();
: : : : : xMean = xMean + dnum;
: : : : : }
: : : : : xMean = xMean / lSize;
: : : : : for (int count = 0; count < lSize; ++count) {
: : : : : Double dd = (Double)lList.get(count);
: : : : : double dnum = dd.doubleValue();
: : : : : xMedian = xMedian + dnum / 2;
: : : : : }
: : : : : for (int count = 0; count < lSize; ++count) {
: : : : : Double dd = (Double)lList.get(count);
: : : : : double dnum = dd.doubleValue();
: : : : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
: : : : : }
: : : : : standardDeviation = standardDeviation / ( lSize - 1 );
: : : : : standardDeviation = Math.sqrt(standardDeviation);
: : : : :
: : : : : System.out.print("");
: : : : : System.out.println("Mean:" + xMean);
: : : : : System.out.println("Median:" + xMedian);
: : : : : System.out.println("Standard Deviation:" + standardDeviation);
: : : : : }
: : : : : }
: : : : :
: : : : :
: : : : :
: : : :
: : : :
: : :
: : :
: :
: :
:
:

· ·
• Posts: 88Member
:hello;

Do you have to use a LinkedList?

I have some old code of mine that does what you want using an array.

If your interested I'll see if I can find it.

Good Luck

Ken

hi,
:
: i guess, the program given below calcualtes the mean and standard deviation correctly, check out the formula for median, i could not find it.
:
: the main changes compared to ur code are;
:
: say if we enter 4 elements.
:
: Please enter a number (-1 to exit):
: 44
: 50
: 38
: 96
: -1 // this -1 should not be counted
:
: now lsize in ur program will contain 5 (because we have accepted 5 nums)
:
: so you should run the for loop from count=0 to count<4 ,
: that is (lsize -1).
:
:
: here is the modified code.
:
:
: and one small advice plzzzzzzzzz learn to align the code...
:
: i have just done this because, today i had no other work... :-)
:
:
: hope it helps
:
:
:
: --------------------------------------------------------
: import java.io.*;
: import java.util.*;
: import java.lang.*;
:
: public class SD2
: {
:
:
: public static void main(String arguments[])
: {
:
:
: double xMean = 0.0;
: double standardDeviation = 0.0;
: double xMedian = 0.0;
:
: int lSize;
: StreamTokenizer text = null;
:
: String filename = null;
: double number=-1;
:
: System.out.println("Please enter a number (-1 to exit): ");
:
: do
: {
:
: String input = null;
: try {
: number = Double.parseDouble(input);
: }
: catch (IOException e)
: {
: e.printStackTrace();
: }
: } while (number != -1);
:
: lSize = lList.size();
:
:
:
: for (int count = 0; count < lSize-1; ++count)
: {
: Double dd = (Double)lList.get(count);
:
: double dnum = dd.doubleValue();
:
: xMean = xMean + dnum;
: }
:
: xMean = xMean / (lSize-1);
:
:
: for (int count = 0; count < lSize-1; ++count)
: {
:
: Double dd = (Double)lList.get(count);
: double dnum = dd.doubleValue();
: xMedian = xMedian + dnum / 2;
: }
: standardDeviation=0;
:
: for (int count = 0; count < lSize-1; ++count)
: {
: Double dd = (Double)lList.get(count);
:
: double dnum = dd.doubleValue();
:
:
:
: standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
:
:
: }
:
:
: standardDeviation = standardDeviation / ( lSize - 2 );
:
: standardDeviation = Math.sqrt(standardDeviation);
:
: System.out.print("");
: System.out.println("Number of elements = "+(lSize-1));
:
: System.out.println("Mean:" + xMean);
:
: System.out.println("Median:" + xMedian);
:
: System.out.println("Standard Deviation:" + standardDeviation);
: }
: }
:
:
:
:
:
: --------------------------------------------------------
:
:
:
:
:
:
:
: : : Has anybody ever did a program like this?
: : :
: : : : Thanks, for the information. I thought I was using those formulas but I will try again.
: : : :
: : : : Hi,
: : : : :
: : : : : I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
: : : : :
: : : : : you can refer to this link, in which u have a clear example
: : : : :
: : : : : http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
: : : : :
: : : : :
: : : : : hope this helps :)
: : : : :
: : : : :
: : : : :
: : : : :
: : : : : : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
: : : : : : import java.io.*;
: : : : : : import java.util.*;
: : : : : : import java.lang.*;
: : : : : :
: : : : : : public class SD2 {
: : : : : : public static void main(String arguments[]) {
: : : : : :
: : : : : :
: : : : : : double xMean = 0.0;
: : : : : : double standardDeviation = 0.0;
: : : : : : double xMedian = 0.0;
: : : : : :
: : : : : : int lSize;
: : : : : : BufferedReader stdIn;
: : : : : : StreamTokenizer text = null;
: : : : : :
: : : : : : String filename = null;
: : : : : : double number=-1;
: : : : : :
: : : : : : System.out.println("Please enter a number (-1 to exit): ");
: : : : : :
: : : : : : do {
: : : : : : String input = null;
: : : : : : try {
: : : : : : input = r.readLine();
: : : : : : number = Double.parseDouble(input);
: : : : : : lList.add(new Double(number));
: : : : : : } catch (IOException e) {
: : : : : : e.printStackTrace();
: : : : : : }
: : : : : : } while (number != -1);
: : : : : :
: : : : : : lSize = lList.size();
: : : : : :
: : : : : :
: : : : : :
: : : : : : for (int count = 0; count < lSize; ++count) {
: : : : : : Double dd = (Double)lList.get(count);
: : : : : : double dnum = dd.doubleValue();
: : : : : : xMean = xMean + dnum;
: : : : : : }
: : : : : : xMean = xMean / lSize;
: : : : : : for (int count = 0; count < lSize; ++count) {
: : : : : : Double dd = (Double)lList.get(count);
: : : : : : double dnum = dd.doubleValue();
: : : : : : xMedian = xMedian + dnum / 2;
: : : : : : }
: : : : : : for (int count = 0; count < lSize; ++count) {
: : : : : : Double dd = (Double)lList.get(count);
: : : : : : double dnum = dd.doubleValue();
: : : : : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
: : : : : : }
: : : : : : standardDeviation = standardDeviation / ( lSize - 1 );
: : : : : : standardDeviation = Math.sqrt(standardDeviation);
: : : : : :
: : : : : : System.out.print("");
: : : : : : System.out.println("Mean:" + xMean);
: : : : : : System.out.println("Median:" + xMedian);
: : : : : : System.out.println("Standard Deviation:" + standardDeviation);
: : : : : : }
: : : : : : }
: : : : : :
: : : : : :
: : : : : :
: : : : :
: : : : :
: : : :
: : : :
: : :
: : :
: :
: :
:
:

· ·
• Posts: 13Member
Hi,
It does require a linked list but you can still show me what you have?
Thanks for helping
: :hello;
:
: Do you have to use a LinkedList?
:
: I have some old code of mine that does what you want using an array.
:
: If your interested I'll see if I can find it.
:
: Good Luck
:
: Ken
:
:
: hi,
: :
: : i guess, the program given below calcualtes the mean and standard deviation correctly, check out the formula for median, i could not find it.
: :
: : the main changes compared to ur code are;
: :
: : say if we enter 4 elements.
: :
: : Please enter a number (-1 to exit):
: : 44
: : 50
: : 38
: : 96
: : -1 // this -1 should not be counted
: :
: : now lsize in ur program will contain 5 (because we have accepted 5 nums)
: :
: : so you should run the for loop from count=0 to count<4 ,
: : that is (lsize -1).
: :
: :
: : here is the modified code.
: :
: :
: : and one small advice plzzzzzzzzz learn to align the code...
: :
: : i have just done this because, today i had no other work... :-)
: :
: :
: : hope it helps
: :
: :
: :
: : --------------------------------------------------------
: : import java.io.*;
: : import java.util.*;
: : import java.lang.*;
: :
: : public class SD2
: : {
: :
: :
: : public static void main(String arguments[])
: : {
: :
: :
: : double xMean = 0.0;
: : double standardDeviation = 0.0;
: : double xMedian = 0.0;
: :
: : int lSize;
: : StreamTokenizer text = null;
: :
: : String filename = null;
: : double number=-1;
: :
: : System.out.println("Please enter a number (-1 to exit): ");
: :
: : do
: : {
: :
: : String input = null;
: : try {
: : number = Double.parseDouble(input);
: : }
: : catch (IOException e)
: : {
: : e.printStackTrace();
: : }
: : } while (number != -1);
: :
: : lSize = lList.size();
: :
: :
: :
: : for (int count = 0; count < lSize-1; ++count)
: : {
: : Double dd = (Double)lList.get(count);
: :
: : double dnum = dd.doubleValue();
: :
: : xMean = xMean + dnum;
: : }
: :
: : xMean = xMean / (lSize-1);
: :
: :
: : for (int count = 0; count < lSize-1; ++count)
: : {
: :
: : Double dd = (Double)lList.get(count);
: : double dnum = dd.doubleValue();
: : xMedian = xMedian + dnum / 2;
: : }
: : standardDeviation=0;
: :
: : for (int count = 0; count < lSize-1; ++count)
: : {
: : Double dd = (Double)lList.get(count);
: :
: : double dnum = dd.doubleValue();
: :
: :
: :
: : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
: :
: :
: : }
: :
: :
: : standardDeviation = standardDeviation / ( lSize - 2 );
: :
: : standardDeviation = Math.sqrt(standardDeviation);
: :
: : System.out.print("");
: : System.out.println("Number of elements = "+(lSize-1));
: :
: : System.out.println("Mean:" + xMean);
: :
: : System.out.println("Median:" + xMedian);
: :
: : System.out.println("Standard Deviation:" + standardDeviation);
: : }
: : }
: :
: :
: :
: :
: :
: : --------------------------------------------------------
: :
: :
: :
: :
: :
: :
: :
: : : : Has anybody ever did a program like this?
: : : :
: : : : : Thanks, for the information. I thought I was using those formulas but I will try again.
: : : : :
: : : : : Hi,
: : : : : :
: : : : : : I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
: : : : : :
: : : : : : you can refer to this link, in which u have a clear example
: : : : : :
: : : : : : http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
: : : : : :
: : : : : :
: : : : : : hope this helps :)
: : : : : :
: : : : : :
: : : : : :
: : : : : :
: : : : : : : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
: : : : : : : import java.io.*;
: : : : : : : import java.util.*;
: : : : : : : import java.lang.*;
: : : : : : :
: : : : : : : public class SD2 {
: : : : : : : public static void main(String arguments[]) {
: : : : : : :
: : : : : : :
: : : : : : : double xMean = 0.0;
: : : : : : : double standardDeviation = 0.0;
: : : : : : : double xMedian = 0.0;
: : : : : : :
: : : : : : : int lSize;
: : : : : : : BufferedReader stdIn;
: : : : : : : StreamTokenizer text = null;
: : : : : : :
: : : : : : : String filename = null;
: : : : : : : LinkedList lList = new LinkedList();
: : : : : : : double number=-1;
: : : : : : :
: : : : : : : System.out.println("Please enter a number (-1 to exit): ");
: : : : : : :
: : : : : : : do {
: : : : : : : String input = null;
: : : : : : : try {
: : : : : : : input = r.readLine();
: : : : : : : number = Double.parseDouble(input);
: : : : : : : lList.add(new Double(number));
: : : : : : : } catch (IOException e) {
: : : : : : : e.printStackTrace();
: : : : : : : }
: : : : : : : } while (number != -1);
: : : : : : :
: : : : : : : lSize = lList.size();
: : : : : : :
: : : : : : :
: : : : : : :
: : : : : : : for (int count = 0; count < lSize; ++count) {
: : : : : : : Double dd = (Double)lList.get(count);
: : : : : : : double dnum = dd.doubleValue();
: : : : : : : xMean = xMean + dnum;
: : : : : : : }
: : : : : : : xMean = xMean / lSize;
: : : : : : : for (int count = 0; count < lSize; ++count) {
: : : : : : : Double dd = (Double)lList.get(count);
: : : : : : : double dnum = dd.doubleValue();
: : : : : : : xMedian = xMedian + dnum / 2;
: : : : : : : }
: : : : : : : for (int count = 0; count < lSize; ++count) {
: : : : : : : Double dd = (Double)lList.get(count);
: : : : : : : double dnum = dd.doubleValue();
: : : : : : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
: : : : : : : }
: : : : : : : standardDeviation = standardDeviation / ( lSize - 1 );
: : : : : : : standardDeviation = Math.sqrt(standardDeviation);
: : : : : : :
: : : : : : : System.out.print("");
: : : : : : : System.out.println("Mean:" + xMean);
: : : : : : : System.out.println("Median:" + xMedian);
: : : : : : : System.out.println("Standard Deviation:" + standardDeviation);
: : : : : : : }
: : : : : : : }
: : : : : : :
: : : : : : :
: : : : : : :
: : : : : :
: : : : : :
: : : : :
: : : : :
: : : :
: : : :
: : :
: : :
: :
: :
:
:

· ·
• Posts: 88Member
:Here you go....

I hacked this out of a stat class I wrote for a business forecasting project I developed.

The final project reads data from a file. I used an array to test.The final project has Exception handling and input checking, I left that part out.
[code]
import java.util.*;
import java.lang.Math;

public class Stats{

public static void main(String args[]){

int numbers [] = {120,54,110,112,117,89,136,114,98,124};
Stats stats = new Stats();

stats.list(numbers);
stats.mean(numbers);
stats.stdDeviation(numbers);
stats.median(numbers);

}

public void list(int numbers[]){
Arrays.sort(numbers);
for(int i = 0; i<numbers.length; i++){
System.out.println(numbers[i]);
}
}
public double mean(int numbers[]){

double total = 0;
for(int i = 0; i < numbers.length; i++){
total = total + numbers[i];
}
double cmean = total/numbers.length;
System.out.println("Mean: "+(total/numbers.length));
return cmean;
}

public void median(int numbers[]){
Arrays.sort(numbers);
int medianIndex = numbers.length / 2;
int count = numbers.length;
int nextIndex = medianIndex-1;
int avg = numbers[medianIndex]+numbers[nextIndex];
//System.out.println("Average index: " + avg);
if(count % 2 == 0){

System.out.println("Median: "+ (numbers[medianIndex]+numbers[nextIndex])/2);
}
if(count % 2 != 0) {
System.out.println("Median: "+numbers[medianIndex]);
}
}

public void stdDeviation(int numbers[]){
Stats stats = new Stats();
double avg = stats.mean(numbers);
double dev = 0;
double sqdev = 0;
double sum = 0;
for(int i = 0; i < numbers.length; i++){
sqdev = (avg - numbers[i])*(avg - numbers[i]);
dev = sqdev + dev;
}
System.out.println("Standard Deviation: " + Math.sqrt((dev/(numbers.length-1))));
}

}
[/code]

I think this will compile and run I never know when I cut and paste.

A LinkedList is too much for my feeble mind to deal with.

Hopefully this will be of some help.

Ken

Hi,
: It does require a linked list but you can still show me what you have?
: Thanks for helping
: : :hello;
: :
: : Do you have to use a LinkedList?
: :
: : I have some old code of mine that does what you want using an array.
: :
: : If your interested I'll see if I can find it.
: :
: : Good Luck
: :
: : Ken
: :
: :
: : hi,
: : :
: : : i guess, the program given below calcualtes the mean and standard deviation correctly, check out the formula for median, i could not find it.
: : :
: : : the main changes compared to ur code are;
: : :
: : : say if we enter 4 elements.
: : :
: : : Please enter a number (-1 to exit):
: : : 44
: : : 50
: : : 38
: : : 96
: : : -1 // this -1 should not be counted
: : :
: : : now lsize in ur program will contain 5 (because we have accepted 5 nums)
: : :
: : : so you should run the for loop from count=0 to count<4 ,
: : : that is (lsize -1).
: : :
: : :
: : : here is the modified code.
: : :
: : :
: : : and one small advice plzzzzzzzzz learn to align the code...
: : :
: : : i have just done this because, today i had no other work... :-)
: : :
: : :
: : : hope it helps
: : :
: : :
: : :
: : : --------------------------------------------------------
: : : import java.io.*;
: : : import java.util.*;
: : : import java.lang.*;
: : :
: : : public class SD2
: : : {
: : :
: : :
: : : public static void main(String arguments[])
: : : {
: : :
: : :
: : : double xMean = 0.0;
: : : double standardDeviation = 0.0;
: : : double xMedian = 0.0;
: : :
: : : int lSize;
: : : StreamTokenizer text = null;
: : :
: : : String filename = null;
: : : double number=-1;
: : :
: : : System.out.println("Please enter a number (-1 to exit): ");
: : :
: : : do
: : : {
: : :
: : : String input = null;
: : : try {
: : : input = r.readLine();
: : : number = Double.parseDouble(input);
: : : }
: : : catch (IOException e)
: : : {
: : : e.printStackTrace();
: : : }
: : : } while (number != -1);
: : :
: : : lSize = lList.size();
: : :
: : :
: : :
: : : for (int count = 0; count < lSize-1; ++count)
: : : {
: : : Double dd = (Double)lList.get(count);
: : :
: : : double dnum = dd.doubleValue();
: : :
: : : xMean = xMean + dnum;
: : : }
: : :
: : : xMean = xMean / (lSize-1);
: : :
: : :
: : : for (int count = 0; count < lSize-1; ++count)
: : : {
: : :
: : : Double dd = (Double)lList.get(count);
: : : double dnum = dd.doubleValue();
: : : xMedian = xMedian + dnum / 2;
: : : }
: : : standardDeviation=0;
: : :
: : : for (int count = 0; count < lSize-1; ++count)
: : : {
: : : Double dd = (Double)lList.get(count);
: : :
: : : double dnum = dd.doubleValue();
: : :
: : :
: : :
: : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
: : :
: : :
: : : }
: : :
: : :
: : : standardDeviation = standardDeviation / ( lSize - 2 );
: : :
: : : standardDeviation = Math.sqrt(standardDeviation);
: : :
: : : System.out.print("");
: : : System.out.println("Number of elements = "+(lSize-1));
: : :
: : : System.out.println("Mean:" + xMean);
: : :
: : : System.out.println("Median:" + xMedian);
: : :
: : : System.out.println("Standard Deviation:" + standardDeviation);
: : : }
: : : }
: : :
: : :
: : :
: : :
: : :
: : : --------------------------------------------------------
: : :
: : :
: : :
: : :
: : :
: : :
: : :
: : : : : Has anybody ever did a program like this?
: : : : :
: : : : : : Thanks, for the information. I thought I was using those formulas but I will try again.
: : : : : :
: : : : : : Hi,
: : : : : : :
: : : : : : : I guess the formulas , which you are using to calculate the standard deviation, mean and the median are wrong..
: : : : : : :
: : : : : : : you can refer to this link, in which u have a clear example
: : : : : : :
: : : : : : : http://www.ltcconline.net/greenl/courses/201/descstat/mean.htm
: : : : : : :
: : : : : : :
: : : : : : : hope this helps :)
: : : : : : :
: : : : : : :
: : : : : : :
: : : : : : :
: : : : : : : : Hi, I am trying to do a program that calculates the standard deviation, mean, and median. It reads input from the keyboard. I'm suppose to test the program with these numbers: 120, 54, 110, 112, 117, 89, 136, 114, 98, 124. The answer should be: Mean 107.4, Std. Dev, 22.836, Median 113. I'm not sure if I have the formulas correct because my program do not output this answer. Here is the program:
: : : : : : : : import java.io.*;
: : : : : : : : import java.util.*;
: : : : : : : : import java.lang.*;
: : : : : : : :
: : : : : : : : public class SD2 {
: : : : : : : : public static void main(String arguments[]) {
: : : : : : : :
: : : : : : : :
: : : : : : : : double xMean = 0.0;
: : : : : : : : double standardDeviation = 0.0;
: : : : : : : : double xMedian = 0.0;
: : : : : : : :
: : : : : : : : int lSize;
: : : : : : : : BufferedReader stdIn;
: : : : : : : : StreamTokenizer text = null;
: : : : : : : :
: : : : : : : : String filename = null;
: : : : : : : : LinkedList lList = new LinkedList();
: : : : : : : : double number=-1;
: : : : : : : :
: : : : : : : : System.out.println("Please enter a number (-1 to exit): ");
: : : : : : : :
: : : : : : : : do {
: : : : : : : : String input = null;
: : : : : : : : try {
: : : : : : : : input = r.readLine();
: : : : : : : : number = Double.parseDouble(input);
: : : : : : : : lList.add(new Double(number));
: : : : : : : : } catch (IOException e) {
: : : : : : : : e.printStackTrace();
: : : : : : : : }
: : : : : : : : } while (number != -1);
: : : : : : : :
: : : : : : : : lSize = lList.size();
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : : : for (int count = 0; count < lSize; ++count) {
: : : : : : : : Double dd = (Double)lList.get(count);
: : : : : : : : double dnum = dd.doubleValue();
: : : : : : : : xMean = xMean + dnum;
: : : : : : : : }
: : : : : : : : xMean = xMean / lSize;
: : : : : : : : for (int count = 0; count < lSize; ++count) {
: : : : : : : : Double dd = (Double)lList.get(count);
: : : : : : : : double dnum = dd.doubleValue();
: : : : : : : : xMedian = xMedian + dnum / 2;
: : : : : : : : }
: : : : : : : : for (int count = 0; count < lSize; ++count) {
: : : : : : : : Double dd = (Double)lList.get(count);
: : : : : : : : double dnum = dd.doubleValue();
: : : : : : : : standardDeviation = standardDeviation + ( dnum - xMean ) * ( dnum - xMean );
: : : : : : : : }
: : : : : : : : standardDeviation = standardDeviation / ( lSize - 1 );
: : : : : : : : standardDeviation = Math.sqrt(standardDeviation);
: : : : : : : :
: : : : : : : : System.out.print("");
: : : : : : : : System.out.println("Mean:" + xMean);
: : : : : : : : System.out.println("Median:" + xMedian);
: : : : : : : : System.out.println("Standard Deviation:" + standardDeviation);
: : : : : : : : }
: : : : : : : : }
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : :
: : : : : : :
: : : : : :
: : : : : :
: : : : :
: : : : :
: : : :
: : : :
: : :
: : :
: :
: :
:
:

· ·