کلاس Matrix را براي ماتريس بسازيد. در اين كلاس افزون بر بخش داده اي مناسب، مي بايست توابع دريافت، نمايش،
مقداردهي، سازنده و همچنين توابع جمع، تفريق و ضرب ماتريسي نوشته شده باشد.
class Matrix {
double[][] deraye;
public Matrix(double[][] newDeraye) {
this.deraye = new double[newDeraye.length][newDeraye[0].length];
for (int i = 0; i < this.deraye.length; i++) {
for (int j = 0; j < this.deraye[0].length; j++) {
this.deraye[i][j] = newDeraye[i][j];
}
}
}
public Matrix() {
}
public Matrix(int width, int height) {
deraye = new double[width][height];
}
public double get(int i, int j)
{
if (i<this.deraye.length)
if (j<this.deraye[0].length)
return this.deraye[i][j];
return 0;
}
public void set(int i, int j, double value)
{
if (i<this.deraye.length)
if (j<this.deraye[0].length)
this.deraye[i][j]=value;
}
public void get() throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please Enter The width");
int width = Integer.parseInt(reader.readLine());
System.out.println("Please Enter The height");
int height = Integer.parseInt(reader.readLine());
deraye = new double[width][height];
for (int i = 0; i < width; i++) {
for (int j = 0; j < height; j++) {
System.out.println("derayeye[" + (i + 1) + "][" + (j + 1) + "]");
deraye[i][j] = Integer.parseInt(reader.readLine());
}
}
}
public void put() {
System.out.println("Matix:");
for (int i = 0; i < deraye.length; i++) {
for (int j = 0; j < deraye[i].length; j++) {
System.out.print(deraye[i][j] + "\t");
}
System.out.println("");
}
}
public void set(double[][] newDeraye) {
this.deraye = new double[newDeraye.length][newDeraye[0].length];
for (int i = 0; i < this.deraye.length; i++) {
for (int j = 0; j < this.deraye[0].length; j++) {
this.deraye[i][j] = newDeraye[i][j];
}
}
}
public Matrix add(Matrix newMat) {
if (this.deraye.length == newMat.deraye.length) {
if (this.deraye[0].length == newMat.deraye[0].length) {
Matrix RetMat = new Matrix(this.deraye.length, this.deraye[0].length);
for (int i = 0; i < this.deraye.length; i++) {
for (int j = 0; j < this.deraye[0].length; j++) {
RetMat.deraye[i][j] = this.deraye[i][j] + newMat.deraye[i][j];
}
}
return RetMat;
}
}
return null;
}
public Matrix sub(Matrix newMat) {
if (this.deraye.length == newMat.deraye.length) {
if (this.deraye[0].length == newMat.deraye[0].length) {
Matrix RetMat = new Matrix(this.deraye.length, this.deraye[0].length);
for (int i = 0; i < this.deraye.length; i++) {
for (int j = 0; j < this.deraye[0].length; j++) {
RetMat.deraye[i][j] = this.deraye[i][j] - newMat.deraye[i][j];
}
}
return RetMat;
}
}
return null;
}
public Matrix mul(Matrix newMat)
{
if (this.deraye[0].length == newMat.deraye.length) {
Matrix RetMat = new Matrix(this.deraye.length,newMat.deraye[0].length);
for (int i= 0; i < deraye.length; i++) {
for (int j = 0; j < newMat.deraye[0].length; j++) {
double sum=0;
for (int k = 0; k < deraye[0].length; k++) {
sum+=this.deraye[i][k]*newMat.deraye[k][j];
}
RetMat.deraye[i][j]=sum;
}
}
return RetMat;
}
return null;
}
}
class Test2 {
public static void main(String[] args) throws IOException {
Matrix a= new Matrix();
a.get();
a.put();
Matrix b = new Matrix();
b.get();
b.put();
a.mul(b).put();
}
}