Presentation is loading. Please wait.

Presentation is loading. Please wait.

תרגול 3 שיטות ומערכים.

Similar presentations


Presentation on theme: "תרגול 3 שיטות ומערכים."— Presentation transcript:

1 תרגול 3 שיטות ומערכים

2 מערך כ reference- public static void ChangeArray() { int [] array1={1,1}; int [] array2=array1; array1[0]=2; System.out.println("Array2=["+array2[0]+","+array2[1]+"]"); } Array2=[2,1]

3 מערך כ reference- public static void ArrayComparison() { int [] array1={1,1}; int [] array2={1,1}; if (array1==array2){ System.out.println(“array1 ==array2");} else{ System.out.println(“array1 != array2");} } array1 != array2"

4 Methods/functions public/private/protected static < return type > < name > (parameters list) משמש ליצירת שיטת מחלקה טיפוס הערך המוחזר ע"י השיטה בקרת גישה לשיטה (encapsulation) שם השיטה המשתנים שהשיטה מקבלת private protected Public מאותה מחלקה כן מכל מחלקה הנמצאת באותה חבילה לא מכל מחלקה הנמצאת מחוץ לחבילה מתת מחלקה הנמצאת באותה חבילה מתת מחלקה הנמצאת מחוץ לחבילה

5 Method parameters public static int [][] CopyMatrix(int [][] array1){ int [][] array2; int N= array1.length; int M= array1[0].length; array2=new int [N][M]; for(int i=0;i<N;i++) for(int j=0;j<M;j++) {array2[i][j]=array1[i][j];} return array2; } public static void main(String[] args) { int [][] array1={{2,2},{3,2}}; int [][] array2=new int [2][2]; array2=CopyMatrix(array1);

6 Method parameters public static int [][] CopyMatrix(int [][] array1){ int [][] array2; int N= array1.length; int M= array1[0].length; array2=new int [N][M]; for(int i=0;i<N;i++) for(int j=0;j<M;j++) {array2[i][j]=array1[i][j];} return array2; } public static void main(String[] args) { int [][] array1={{2,2},{3,2}}; array2=CopyMatrix(array1);

7 Method parameters public static void CopyMatrix(int [][] array1,int [][] array2){ int N= array1.length; int M= array1[0].length; for(int i=0;i<N;i++) for(int j=0;j<M;j++) {array2[i][j]=array1[i][j];} } public static void main(String[] args) { int [][] array1={{2,2},{3,2}}; int [][] array2; array2=new int[2][2]; CopyMatrix(array1,array2);

8 Method overloading public int a(int x) { } public int a(int x, int y)
public double a(int x, int y)

9 דוגמה בנה תוכנית המבצעת את הפעולות הבאות: מכפלת וקטור בוקטור
מכפלת וקטור במטריצה מכפלת מטריצה במטריצה

10 Matrix vector multiplication
C=A*B Res Vector Vector a(1,2) a(1,1) a(2,2) a(2,1) a(3,2) a(3,1) c(1,1) c(2,1) c(3,1) Mat[0] b(1,1) b(2,1) X Mat[1] = Mat[2]

11 Matrix multiplication
C=A*B res Mat[0] res Mat[1] res Mat[2] Mat2[0] Mat2[1] Mat2[2] c(1,3) c(1,2) c(1,1) c(2,3) c(2,2) c(2,1) c(3,3) c(3,2) c(3,1) a(1,2) a(1,1) a(2,2) a(2,1) a(3,2) a(3,1) Mat1[0] b(1,3) b(1,2) b(1,1) b(2,3) b(2,2) b(2,1) = X Mat1[1] Mat1[2]

12 Matrix vector multiplier
מבנה התוכנית menu Matrix multiplier Matrix vector multiplier Vector multiplier

13 /** * This method calculate vector multiplication ([1xM]*[Mx1]) vector1- An 1xM double array holds the multiplicand vector. vector2- An Mx1 double array holds the multiplier vector. res- A double scalar holds the vector product result. */ public static double VectorMult( double[] vector1, double[] vector2) /** * This method calculate matrix by vector multiplication ([NxM]*[Mx1]) matrix- An NxM double array holds the multiplicand matrix vector- An Mx1 double array holds the multiplier vector resVector- The Nx1 double array holds the product result. */ public static double[] MatrixVectorMult( double[][] matrix,double[] vector) /** * This method calculate matrix multiplication ([NxM]*[MxN]) matrix1- An NxM double array holds the multiplicand matrix matrix2- An NxM double array holds the transpose of the multiplier matrix resMat- The NxN double array holds the product result. */ public static double[][] MatrixMult(double[][] matrix1,double[][] matrix2) /** * This method calculate matrix transpose matrix- An NxM double array holds the matrix to be transpose. matrixTranspose- An MxN double array holds matrix transpose. */ private static double[][] MatrixTranspose(double[][] matrix)

14 /** * This method calculate vector multiplication ([1xM]*[Mx1]) vector1- An 1xM double array holds the multiplicand vector. vector2- An Mx1 double array holds the multiplier vector. res- A double scalar holds the vector product result. */ public static double VectorMult( double[] vector1, double[] vector2) { int M=vector1.length; double res=0; for (int m=0;m< M;m++) //run in loop on vectors entry. res +=vector1[m]*vector2[m]; } return res;

15 /** * This method calculate matrix by vector multiplication ([NxM]*[Mx1]) matrix- An NxM double array holds the multiplicand matrix vector- An Mx1 double array holds the multiplier vector resVector- The Nx1 double array holds the product result. */ public static double[] MatrixVectorMult( double[][] matrix,double[] vector) { int N= matrix.length; //matrix number of rows int M= vector.length; //matrix number of column double[] resVector= new double[M]; for (int n=0;n< N;n++)// run in loop on matrix rows resVector[n] =VectorMult(matrix[n],vector); } return resVector;

16 /** * This method calculate matrix multiplication ([NxM]*[MxN]) matrix1- An NxM double array holds the multiplicand matrix matrix2- An NxM double array holds the transpose of the multiplier matrix resMat- The NxN double array holds the product result. */ public static double[][] MatrixMult(double[][] matrix1,double[][] matrix2 { int N=matrix1.length; //multilicand matrix number of rows matrix2=MatrixTranspose(matrix2); double[][] resMat=new double[N][]; for (int i=0;i< N;i++) //run in loop on matrix rows resMat[i]=MatrixVectorMult(matrix1,matrix2[i]); } resMat=MatrixTranspose(resMat); return resMat;

17 /** * This method calculate matrix transpose matrix- An NxM double array holds the matrix to be transpose. matrixTranspose- An MxN double array holds matrix transpose. */ private static double[][] MatrixTranspose(double[][] matrix) { double[][] matrixTranspose; int N=matrix.length; int M=matrix[0].length; matrixTranspose= new double[M][N]; for (int n=0;n< N;n++) for(int m=0;m< M;m++) matrixTranspose[m][n]=matrix[n][m]; } return matrixTranspose;


Download ppt "תרגול 3 שיטות ומערכים."

Similar presentations


Ads by Google