Добавлен: 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();
}
}
}