Файл: Считывание Матриц Умножение.doc

Добавлен: 29.10.2018

Просмотров: 334

Скачиваний: 9

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Процедура для считывания, печати, умножения матриц






using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


namespace Гаусс

{

class Program

{

static double[,] УмножениеМатриц(double[,] a, double[,] b)

{

int na = a.GetLength(0);

int ma = a.GetLength(1);

int nb = b.GetLength(0);

int mb = b.GetLength(1);

int n=1;

int m=1;

if ((na == mb) && (nb == ma))

{

n = na;

m = nb;

}

else

{

return new double[1, 1];

}

double[,] res = new double[n, m];

for (int i = 0; i < n; i++)

{

for (int j = 0; j < m; j++)

{

double r = 0;

for (int k=0; k<ma; k++)

{

r+= a[i, k] * b[k, j];

}

res[i, j]= r;

}

}

return res;

}

static double[,] СчитатьМатрицу(string ИмяФайла)

{ System.IO.StreamReader strmrdr =

new System.IO.StreamReader(ИмяФайла);

string s = strmrdr.ReadToEnd();

string[] s1 = s.Split('\n');

int n = s1.Length;

double[,] a = new double[n, n];

for (int i = 0; i < s1.Length; i++)

{

string[] a_str = s1[i].Split(';');

for (int j = 0; j < a_str.Length; j++)

{

a[i, j] = double.Parse(a_str[j].Replace(".", ","));

}

}

return a;

}

static void Печать( double[,] b)

{

System.Console.WriteLine("\n \n ");

int n = b.GetLength(0);

int m = b.GetLength(1);

for (int i=0; i<n; i++)

{

System.Console.WriteLine();

for (int j = 0; j < m; j++)

System.Console.Write(" {0} ",b[i,j]);

}

}

static void Main(string[] args)

{

System.Console.BackgroundColor = ConsoleColor.White;

System.Console.ForegroundColor = ConsoleColor.Black;


double[,] a = СчитатьМатрицу("a.txt");

Печать(a);


double[,] b = СчитатьМатрицу("b.txt");

Печать(b);


double[,] c = УмножениеМатриц(b,a);

Печать(c);


System.Console.ReadKey();

}

}

}