Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace ConsoleApplication1
- {
- class Matrix2
- {
- int a11=0, a12=0, a21=0, a22=0;
- int[,] matrix = new int[2, 2];
- public Matrix2(int a11, int a12, int a21, int a22)
- {
- matrix[0, 0] = a11;
- matrix[0, 1] = a12;
- matrix[1, 0] = a21;
- matrix[1, 1] = a22;
- }
- public Matrix2(int a11,int a22)
- {
- matrix[0, 0] = a11;
- matrix[1, 1] = a22;
- }
- public Matrix2(Matrix2 A)
- {
- matrix = A.matrix;
- }
- public int Det()
- {
- return matrix[0, 0] * matrix[1, 1] - matrix[0, 1] * matrix[1, 0];
- }
- public int[,] Inverse()
- {
- int[,] invmatrix = new int[2, 2];
- int k;
- k = invmatrix[0, 1];
- invmatrix[0, 0] = matrix[1,1];
- invmatrix[0,0] = k;
- invmatrix[0,1] *= -1;
- invmatrix[1,0] *= -1;
- return invmatrix;
- }
- public int[,] Transpose()
- {
- int[,] tranmatrix= new int[2, 2];
- for (int j = 0; j < matrix.GetLength(1); j++)
- for (int i = 0; i < matrix.GetLength(1); i++)
- tranmatrix[i, j] = matrix[j, i];
- return tranmatrix;
- }
- public static int[,] operator +(Matrix2 Arr1, Matrix2 Arr2)
- {
- int[,] sum = new int[2,2];
- for (int i = 0; i< sum.GetLength(1); i++)
- for (int j = 0; j < sum.GetLength(1); j++)
- sum[i, j] = Arr1.matrix[i, j] + Arr2.matrix[i, j];
- return sum;
- }
- public static int[,] operator -(Matrix2 Arr1, Matrix2 Arr2)
- {
- int[,] residual = new int[2, 2];
- for (int i = 0; i < residual.GetLength(0); i++)
- for (int j = 0; j < residual.GetLength(1); j++)
- residual[i, j] = Arr1.matrix[i, j] + Arr2.matrix[i, j];
- return residual;
- }
- public static int[,] operator *(Matrix2 Arr1, Matrix2 Arr2)
- {
- int[,] multi = new int[2, 2];
- multi[0, 0] = Arr1.matrix[0, 0] * Arr2.matrix[0, 0] + Arr1.matrix[0, 1] * Arr2.matrix[1, 0];
- multi[0, 1] = Arr1.matrix[0, 0] * Arr2.matrix[0, 1] + Arr1.matrix[0, 1] * Arr2.matrix[1, 1];
- multi[1, 0] = Arr1.matrix[1, 0] * Arr2.matrix[0, 0] + Arr1.matrix[1, 1] * Arr2.matrix[1, 0];
- multi[1, 1] = Arr1.matrix[1, 0] * Arr2.matrix[0, 1] + Arr1.matrix[1, 1] * Arr2.matrix[1, 1];
- return multi;
- }
- public static int[,] operator *(Matrix2 Arr1, int k)
- {
- int[,] multi = new int[2, 2];
- multi[0, 0] = Arr1.matrix[0, 0] * k;
- multi[0, 1] = Arr1.matrix[0, 1] * k;
- multi[1, 0] = Arr1.matrix[1, 0] * k;
- multi[1, 1] = Arr1.matrix[1, 1] * k;
- return multi;
- }
- public static int[,] operator /(Matrix2 Arr1, int k)
- {
- int[,] del = new int[2, 2];
- del[0, 0] = Arr1.matrix[0, 0] / k;
- del[0, 1] = Arr1.matrix[0, 1] / k;
- del[1, 0] = Arr1.matrix[1, 0] / k;
- del[1, 1] = Arr1.matrix[1, 1] / k;
- return del;
- }
- public override string ToString()
- {
- return string.Format("{0}\t{1}\n{2}\t{3}", matrix[0,0], matrix[0,1], matrix[1,0], matrix[1,1]);
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- int[,] matrix = new int[2,2];
- Matrix2 mat = new Matrix2(1,2,3,4);
- Matrix2 mat1 = new Matrix2(1, 2);
- Console.WriteLine(mat.Det());
- matrix = mat + mat1;
- Console.WriteLine(mat.ToString());
- matrix = mat1 * 5;
- Console.WriteLine(matrix);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement