public Matrice Ridicare_La_Putere(int p) { if (n != m || p < 1) { throw new ArgumentException("Matricea nu poate fi ridicata la putere"); return(this); } Matrice result = this; for (int i = 1; i < p; i++) { result = result.Inmultire(this); } return(result); }
static void Main(string[] args) { int nr_lin, nr_col; Console.Write("Numarul de linii ale primei matrici: "); nr_lin = int.Parse(Console.ReadLine()); Console.Write("Numarul de coloane ale primei matrici: "); nr_col = int.Parse(Console.ReadLine()); Console.WriteLine("Elementele primei matrici: "); int[,] a = new int[nr_lin + 5, nr_col + 5]; for (int i = 1; i <= nr_lin; i++) { for (int j = 1; j <= nr_col; j++) { a[i, j] = int.Parse(Console.ReadLine()); } } Matrice A = new Matrice(a, nr_lin, nr_col); Console.Write("Numarul de linii ale celei de-a doua matrici: "); nr_lin = int.Parse(Console.ReadLine()); Console.Write("Numarul de coloane ale celei de-a doua matrici: "); nr_col = int.Parse(Console.ReadLine()); Console.WriteLine("Elementele celei de-a doua matrici: "); int[,] b = new int[nr_lin + 5, nr_col + 5]; for (int i = 1; i <= nr_lin; i++) { for (int j = 1; j <= nr_col; j++) { b[i, j] = int.Parse(Console.ReadLine()); } } Matrice B = new Matrice(b, nr_lin, nr_col); Console.WriteLine("-------- A --------"); A.Afisarea_Matricei(); Console.WriteLine("-------- B --------"); B.Afisarea_Matricei(); Matrice C = A; C = A.Adunare(B); Console.WriteLine("------ A + B ------"); C.Afisarea_Matricei(); C = A.Scadere(B); Console.WriteLine("------ A - B ------"); C.Afisarea_Matricei(); C = A.Inmultire(B); Console.WriteLine("------ A * B ------"); C.Afisarea_Matricei(); Console.Write("Puterea la care se va ridica matricea: "); int p = int.Parse(Console.ReadLine()); C = A.Ridicare_La_Putere(p); Console.WriteLine("------ A ^ {0} ------", p); C.Afisarea_Matricei(); Console.ReadKey(); }