Сделать перегрузку в программе - C#
Формулировка задачи:
Мне нужно сделать перегрузку в программе С#, если кто умеет помогите пожалуйста, очень нужно, вот тут нужно добавить перегрузку, заранее спасибо.
using System;
namespace ConsoleApplication1
{
class Matrix
{
int n;
int[,] a = new int[40, 40];
public void outp()
{
for (int i = 0; i < n; i++)
{
Console.WriteLine();
for (int j = 0; j < n; j++)
Console.Write("\t" + a[i, j]);
}
Console.WriteLine();
}
public void inp()
{
int i, j;
Console.WriteLine("Введите размер таблицы: ");
n = Convert.ToInt32(Console.ReadLine());
Random r = new Random();
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
a[i, j] = r.Next(-3, 3);
}
public Matrix mult_num(int k)
{
Matrix c = new Matrix();
c.n = n;
int i, j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
c.a[i, j] = k*a[i, j];
return c;
}
public Matrix sum(Matrix b)
{
Matrix c = new Matrix();
c.n = n;
int i, j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
c.a[i, j] = a[i, j]+b.a[i, j];
return c;
}
public Matrix transp()
{
Matrix c = new Matrix();
c.n = n;
int i, j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
c.a[i, j] = a[j, i];
return c;
}
public Matrix mult_matrix(Matrix b)
{
Matrix c = new Matrix();
c.n = n;
int i, j;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
c.a[i, j] = 0;
for (int k = 0; k < n; k++)
c.a[i, j] += (a[i, k] * b.a[k, j]);
}
return c;
}
};
class Program
{
static void Main()
{
//5A-4BCD
Matrix a = new Matrix();
Matrix b = new Matrix();
Matrix c = new Matrix();
Matrix d = new Matrix();
Matrix R1 = new Matrix();
Matrix R = new Matrix();
a.inp();
a.outp();
b.inp();
b.outp();
c.inp();
c.outp();
d.inp();
d.outp();
R = a.mult_num(5);// 5A**************
R.outp();
R1 = b.mult_matrix(b);//B
R1.outp();
R1 = b.mult_num(-1);//-B
R1.outp();
R1 = R1.mult_num(4);//-4B
R1.outp();
R1 = R1.mult_matrix(c);//-4BC
R1.outp();
R1 = R1.mult_matrix(d);//-4BCD*******************
R1.outp();
R = R.sum(R1);
Console.WriteLine("Ответ: ");
R.outp();
Console.ReadKey();
}
}
}Решение задачи: «Сделать перегрузку в программе»
textual
Листинг программы
using System;
class Matrix
{
int n;
int[,] a = new int[40, 40];
public void outp()
{
for( int i = 0; i < n; i++ )
{
Console.WriteLine();
for( int j = 0; j < n; j++ )
Console.Write( "\t" + a[i, j] );
}
Console.WriteLine();
}
public void inp()
{
int i, j;
Console.WriteLine( "Введите размер таблицы: " );
n = Convert.ToInt32( Console.ReadLine() );
Random r = new Random();
for( i = 0; i < n; i++ )
for( j = 0; j < n; j++ )
a[i, j] = r.Next( -3, 3 );
}
public Matrix mult_num( int k )
{
Matrix c = new Matrix();
c.n = n;
int i, j;
for( i = 0; i < n; i++ )
for( j = 0; j < n; j++ )
c.a[i, j] = k * a[i, j];
return c;
}
/////////////////////////////////////////////////////////////////////////////
//Перегрузка метода Sum
public Matrix sum( Matrix b )
{
Matrix c = new Matrix();
c.n = n;
int i, j;
for( i = 0; i < n; i++ )
for( j = 0; j < n; j++ )
c.a[i, j] = a[i, j] + b.a[i, j];
return c;
}
public Matrix sum( Matrix b, Matrix c )
{
int i, j;
for( i = 0; i < n; i++ )
for( j = 0; j < n; j++ )
c.a[i, j] = a[i, j] + b.a[i, j];
return c;
}
public Matrix sum( Matrix b, Matrix c , Matrix e)
{
//Сложить три матрицы...
return e;
}
/////////////////////////////////////////////////////////////////////////////
public Matrix transp()
{
Matrix c = new Matrix();
c.n = n;
int i, j;
for( i = 0; i < n; i++ )
for( j = 0; j < n; j++ )
c.a[i, j] = a[j, i];
return c;
}
public Matrix mult_matrix( Matrix b )
{
Matrix c = new Matrix();
c.n = n;
int i, j;
for( i = 0; i < n; i++ )
for( j = 0; j < n; j++ )
{
c.a[i, j] = 0;
for( int k = 0; k < n; k++ )
c.a[i, j] += (a[i, k] * b.a[k, j]);
}
return c;
}
};
class Program
{
static void Main()
{
//5A-4BCD
Matrix a = new Matrix();
Matrix b = new Matrix();
Matrix c = new Matrix();
Matrix d = new Matrix();
Matrix R1 = new Matrix();
Matrix R = new Matrix();
a.inp();
a.outp();
b.inp();
b.outp();
c.inp();
c.outp();
d.inp();
d.outp();
R = a.mult_num( 5 );// 5A**************
R.outp();
R1 = b.mult_matrix( b );//B
R1.outp();
R1 = b.mult_num( -1 );//-B
R1.outp();
R1 = R1.mult_num( 4 );//-4B
R1.outp();
R1 = R1.mult_matrix( c );//-4BC
R1.outp();
R1 = R1.mult_matrix( d );//-4BCD*******************
R1.outp();
///////////////////////////////////////////////////
R = R.sum( R1 );
R = R.sum( R1 ,R );
R = R.sum( R1 ,a, R );
////////////////////////////////////////////////////
Console.WriteLine( "Ответ: " );
R.outp();
Console.ReadKey();
}
}