sharath123in
asked on
Passing arrays in java
Here is my code which calculates some values. I have problem with passing arrays to function and constructor. can any one fix it.
code..........
import java.io.*;
public class correlate
{
double x[];
double y[];
public correlate (double a[],double b[],int n)
{
for (int i=0;i<n;i++)
{
x[i]=a[i];
y[i]=b[i];
}
}
public double SumOfProduct_X_Y();
{
double sumofproduct_x_y =0;
for (int i=0;i<n;i++)
{
sumofproduct_x_y = sumofproduct + ( x[i] * y[i]);
}
return (n * sumofproduct_x_y );
}
public double ProductOfSum_X_Y();
{
double sum_x = 0, sum_y =0, productofsum_x_y = 0;
for (int i=0;i<n;i++)
{
sum_x = sum_x + x[i];
sum_y = sum_y + y[i];
}
productofsum_x_y = (sum_x * sum_y);
return productofsum_x_y;
}
public double SumOf_X_Squares();
{
double sumof_x_squares = 0;
for (int i=0;i<n;i++)
{
sumof_x_squares = sumof_x_squares + (x[i]*x[i]) ;
}
return (n * sumof_x_squares);
}
public double SumOf_Y_Squares();
{
double sumof_y_squares = 0;
for (int i=0;i<n;i++)
{
sumof_y_squares = sumof_y_squares + (y[i]*y[i]) ;
}
return (n * sumof_y_squares);
}
public double SquareOf_Sum_X();
{
double squareof_sum_x = 0;
for (int i=0;i<n;i++)
{
squareof_sum_x = squareof_sum_x + (x[i]) ;
}
return squareof_sum_x;
}
public double SquareOf_Sum_Y();
{
double squareof_sum_y = 0;
for (int i=0;i<n;i++)
{
squareof_sum_y = squareof_sum_y + (y[i]) ;
}
return squareof_sum_y;
}
public static void main(String args[])
{
double A,B,C,D,E,F;
correlate c1 = new correlate();
double a[] = { 12, 13, 14, 15};
double b[] = { 23, 24, 25, 26};
c1(a[],b[]);
A = c1.SumOfProduct_X_Y();
B = c1.ProductOfSum_X_Y();
C = c1.SumOf_X_Squares();
D = c1.SquareOf_Sum_X()
E = c1.SumOf_Y_Squares();
F = c1.SquareOf_Sum_Y()
System.out.println(" ",A+B+C+D+E+F);
}
}
code..........
import java.io.*;
public class correlate
{
double x[];
double y[];
public correlate (double a[],double b[],int n)
{
for (int i=0;i<n;i++)
{
x[i]=a[i];
y[i]=b[i];
}
}
public double SumOfProduct_X_Y();
{
double sumofproduct_x_y =0;
for (int i=0;i<n;i++)
{
sumofproduct_x_y = sumofproduct + ( x[i] * y[i]);
}
return (n * sumofproduct_x_y );
}
public double ProductOfSum_X_Y();
{
double sum_x = 0, sum_y =0, productofsum_x_y = 0;
for (int i=0;i<n;i++)
{
sum_x = sum_x + x[i];
sum_y = sum_y + y[i];
}
productofsum_x_y = (sum_x * sum_y);
return productofsum_x_y;
}
public double SumOf_X_Squares();
{
double sumof_x_squares = 0;
for (int i=0;i<n;i++)
{
sumof_x_squares = sumof_x_squares + (x[i]*x[i]) ;
}
return (n * sumof_x_squares);
}
public double SumOf_Y_Squares();
{
double sumof_y_squares = 0;
for (int i=0;i<n;i++)
{
sumof_y_squares = sumof_y_squares + (y[i]*y[i]) ;
}
return (n * sumof_y_squares);
}
public double SquareOf_Sum_X();
{
double squareof_sum_x = 0;
for (int i=0;i<n;i++)
{
squareof_sum_x = squareof_sum_x + (x[i]) ;
}
return squareof_sum_x;
}
public double SquareOf_Sum_Y();
{
double squareof_sum_y = 0;
for (int i=0;i<n;i++)
{
squareof_sum_y = squareof_sum_y + (y[i]) ;
}
return squareof_sum_y;
}
public static void main(String args[])
{
double A,B,C,D,E,F;
correlate c1 = new correlate();
double a[] = { 12, 13, 14, 15};
double b[] = { 23, 24, 25, 26};
c1(a[],b[]);
A = c1.SumOfProduct_X_Y();
B = c1.ProductOfSum_X_Y();
C = c1.SumOf_X_Squares();
D = c1.SquareOf_Sum_X()
E = c1.SumOf_Y_Squares();
F = c1.SquareOf_Sum_Y()
System.out.println(" ",A+B+C+D+E+F);
}
}
c1(a[],b[]) -> c1(a,b);
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
CEHJ is right. This is why:
public class correlate
{
double x[]; // <<< Here you only define x as being a (yet undefined) reference to a double array (x = null)
double y[]; // <<< Here you only define x as being a (yet undefined) reference to a double array (y = null)
Before you start using x and y you'll have to specify what they reference:
public correlate (double a[],double b[],int n) {
x = new double[n]; // <<<< Here you (1) create a new double array of length n in memory and (2) let x reference it
y = new double[n]; // <<<< Here you (1) create a new double array of length n in memory and (2) let y reference it
// From now on, you can safely use x and y (since they are no longer null)
for (int i=0;i<n;i++) {
x[i]=a[i];
y[i]=b[i];
}
}
public class correlate
{
double x[]; // <<< Here you only define x as being a (yet undefined) reference to a double array (x = null)
double y[]; // <<< Here you only define x as being a (yet undefined) reference to a double array (y = null)
Before you start using x and y you'll have to specify what they reference:
public correlate (double a[],double b[],int n) {
x = new double[n]; // <<<< Here you (1) create a new double array of length n in memory and (2) let x reference it
y = new double[n]; // <<<< Here you (1) create a new double array of length n in memory and (2) let y reference it
// From now on, you can safely use x and y (since they are no longer null)
for (int i=0;i<n;i++) {
x[i]=a[i];
y[i]=b[i];
}
}
:-)