public class Lab5_2 implements SingleVariableStats{
static final double undefinedStatsValue = -9999999;
public double mean(double[] dataSet){
double l=0;
double x=0;
if(dataSet.length>1){
for(int i=0;i<dataSet.length-1;i++){
l+=dataSet[i];
}
l=l/dataSet.length;
}else{
l=undefinedStatsValue;
}
return l;
}
public double median(double[] dataSet){
double l=0;
if(dataSet.length>1){
if(dataSet.length%2==1){
double x=dataSet[dataSet.length/2];
double y=dataSet[dataSet.length/2+1];
l=(x+y)/2;
}else{
int b=(int)dataSet[dataSet.length/2];
l=(double)b;
}
}else{
l=undefinedStatsValue;
}
return l;
}
public double stdev(double[] dataSet){
double l=0;
double u=0;
if(dataSet.length>1){
for(int i=0;i<dataSet.length-1;i++){
l+=dataSet[i];
}
l=l/dataSet.length;
for(int i=0;i<dataSet.length-1;i++){
u+=(Math.pow(dataSet[i]-l,2));
}
l=Math.sqrt(u);
}else{
l=undefinedStatsValue;
}
return l;
}
public double[] fiveNumberSummary(double[] dataSet){
double[] l = new double[5];
double y=0;
double n=9;
if(dataSet.length>1){
for(int i=0;i<dataSet.length-1;i++){
if(l[i]>=y){
y=l[i];
l[0]=y;
}
if(l[i]<=n){
n=l[i];
l[4]=n;
}
if(dataSet.length%2==1){
l[1]=dataSet[dataSet.length/2/2];
}else{
int b=(int)dataSet[dataSet.length/2/2];
l[1]=(double)b;
}
if(dataSet.length%2==1){
l[2]=dataSet[dataSet.length/2];
}else{
int b=(int)dataSet[dataSet.length/2*1.5];
l[2]=(double)b;
}
if(dataSet.length%2==1){
l[3]=dataSet[dataSet.length/1.5];
}else{
int b=(int)dataSet[dataSet.length/2*1.5];
l[3]=(double)b;
}
if(l[3]>=l[1]){
x=l[3]-l[1];
}else{
x=l[1]-l[3];
}
}
}else{
l=undefinedStatsValue;
}
return l;
}
public double iqr(double[] dataSet){
double l=0;
if(dataSet.length>1){
l=x;
}else{
l=undefinedStatsValue;
}
return l;
}
public void printAnalysis(double[] dataSet){
if(dataSet.length>1){
System.out.println("n= "+dataSet.toString(dataSet.length));
System.out.println("mean= "+mean.toString(dataSet));
System.out.println("median= "+median.toString(dataSet));
System.out.println("stdev= "+stdev.toString(dataSet));
System.out.println("min= "+fiveNumberSummary.toString(dataSet)
//(some way to get a number from post-array)
System.out.println("Q1= "+fiveNumberSummary.toString(dataSet));
System.out.println("med= "+fiveNumberSummary.toString(dataSet));
System.out.println("Q2= "+fiveNumberSummary.toString(dataSet));
System.out.println("max= "+fiveNumberSummary.toString(dataSet));
System.out.println("iqr= "+iqr.toString(dataSet));
}else{
//format that changes undefinedStatesValue output
}
}
}
Я пытаюсь распечатать каждый метод и распечатать каждый элемент из 5NumberSummary другим способом. Я знаю, что есть лучший синтаксис, но самая большая проблема заключается в изменении элементов печати в другом методе. Каков наилучший способ сделать это?Как печатать из того же класса/как печатать разные элементы отдельно другим способом
Спасибо за исправление, но теперь как я могу вызвать один элемент из метода fiveNumberSummary в операторы печати для 5NumberSummary в методе printAnalysis? – alztrek