-
beginners error
ihave made a program to find average and standard dviation . it takes input from other file. value of average comes out correct but Sd comes out to b NaN. can any1 help me
Code:
import java.io.*;
import java.util.*;
public class JephreyCuma {
/** Creates a new instance of JephreyCuma */
ArrayList list = new ArrayList();
public JephreyCuma() {
}
/**
* @param args the command line arguments
*/
public void fileReader(){
String line="";
try{
BufferedReader inp = new BufferedReader(new FileReader("c:/Users/dfff/Java/abc.txt"));
line = inp.readLine();
int number=0;
while(line!=null){
list.add(line);
line = inp.readLine();
}
}catch(Exception e){
System.out.println("Error converting "+line+" into number");
}
}
public double findArithmeticMean(){
double mean =0;
int sum=0;
for(int index=0;index<list.size();index++)
sum=sum+Integer.parseInt((String)list.get(index));
mean = sum/list.size();
return mean;
}
public double findSD(){
double sum=0;
double sumSQ=0;
double numSQ=0;
double avgSQ=0;
double var=0;
double SD=0;
for(int i=0;i<list.size();i++){
int num = Integer.parseInt((String)list.get(i));
double mean =0;
for(int index=0;index<list.size();index++)
sum=sum+Integer.parseInt((String)list.get(index));
mean = sum/list.size();
sum=sum+num;
numSQ=num*num;
sumSQ=sumSQ+numSQ;
avgSQ=sumSQ/list.size();
var=avgSQ-(mean*mean);
SD=Math.sqrt(var);
}
return SD;
}
public static void main(String[] args)throws IOException {
// TODO code application logic here
JephreyCuma jeph = new JephreyCuma();
jeph.fileReader();
System.out.println("Here is the standard deviation number: "+jeph.findSD());
System.out.println("Here is the Arithmetic mean: "+jeph.findArithmeticMean());
}
}
-
Re: beginners error
System.out.println( ... ) is the ideal poor man's debugger; print out every interesting value (e.g. the length of the list of numbers etc.) and see if everything is as you expected.
kind regards,
Jos