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);
}
}

• 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);
: }
: }
:
:
:

• 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);
: : }
: : }
: :
: :
: :
:
:

• 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);
: : : }
: : : }
: : :
: : :
: : :
: :
: :
:
:

• : 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);
: : : : }
: : : : }
: : : :
: : : :
: : : :
: : :
: : :
: :
: :
:
:

• 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);
: : : : : }
: : : : : }
: : : : :
: : : : :
: : : : :
: : : :
: : : :
: : :
: : :
: :
: :
:
:

• :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);
: : : : : : }
: : : : : : }
: : : : : :
: : : : : :
: : : : : :
: : : : :
: : : : :
: : : :
: : : :
: : :
: : :
: :
: :
:
:

• 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);
: : : : : : : }
: : : : : : : }
: : : : : : :
: : : : : : :
: : : : : : :
: : : : : :
: : : : : :
: : : : :
: : : : :
: : : :
: : : :
: : :
: : :
: :
: :
:
:

• :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);
: : : : : : : : }
: : : : : : : : }
: : : : : : : :
: : : : : : : :
: : : : : : : :
: : : : : : :
: : : : : : :
: : : : : :
: : : : : :
: : : : :
: : : : :
: : : :
: : : :
: : :
: : :
: :
: :
:
: