Advertisement
Guest User

Untitled

a guest
Mar 30th, 2015
237
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.54 KB | None | 0 0
  1. using System.IO;
  2. using System;
  3.  
  4. class Matrix
  5. {
  6.     public Matrix(int rows, int cols)
  7.     {
  8.         data = new double[rows, cols];
  9.     }
  10.    
  11.     public Matrix(double[,] d)
  12.     {
  13.         data = new double[d.GetLength(0), d.GetLength(1)];
  14.        
  15.         for (int i = 0; i < data.GetLength(0); i++)
  16.             for (int j = 0; j < data.GetLength(1); j++)
  17.                 data[i, j] = d[i, j];
  18.     }
  19.    
  20.     public Matrix(Matrix m)
  21.     {
  22.         data = new double[m.data.GetLength(0), m.data.GetLength(1)];
  23.        
  24.         for (int i = 0; i < data.GetLength(0); i++)
  25.             for (int j = 0; j < data.GetLength(1); j++)
  26.                 data[i, j] = m.data[i, j];
  27.     }
  28.    
  29.     public double this[int r, int c]
  30.     {
  31.         get
  32.         {
  33.             return data[r, c];
  34.         }
  35.         set
  36.         {
  37.             data[r, c] = value;
  38.         }
  39.     }
  40.     public static Matrix operator+(Matrix lhs, Matrix rhs)
  41.     {
  42.         //Сделать проверку на одинаковость размеров
  43.        
  44.         double[,] d = new double[lhs.data.GetLength(0), lhs.data.GetLength(1)];
  45.        
  46.         for (int i = 0; i < d.GetLength(0); i++)
  47.             for (int j = 0; j < d.GetLength(1); j++)
  48.                 d[i, j] = lhs[i, j] + rhs[i, j];
  49.                
  50.         return new Matrix(d);
  51.     }
  52.    
  53.     public double[,] data;
  54. }
  55.  
  56. class Program
  57. {
  58.     static void Main()
  59.     {
  60.         Matrix a = new Matrix(1, 1);
  61.         a[0, 0] = 5;
  62.         Matrix b = new Matrix(a);
  63.         b[0, 0] = 10;
  64.         Matrix c = a + b;
  65.         Console.WriteLine(c[0, 0]);
  66.     }
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement