Как сделать чтобы можно было вводить только вещественные числа ?..
Console.Write("Введите количество строк матрицы: ");
int n = int.Parse(Console.ReadLine());
Console.Write("Введите количество столбцов матрицы: ");
int m = int.Parse(Console.ReadLine());
Console.WriteLine("Заполните матрицу: ");
Matrix2 matrix = new Matrix2 (n, m);
for (int i = 0; i < matrix.stroka; i++)
{
for (int j = 0; j < matrix.stolbets; j++)
{
Console.Write("Введите элемент [{0},{1}] : ", i, j);
matrix[i, j] = double.Parse(Console.ReadLine());
}
}
Console.WriteLine("Матрица :");
for (int i = 0; i < matrix.stroka; i++)
{
for (int j = 0; j < matrix.stolbets; j++)
{
Console.Write(matrix[i, j]);
}
Console.WriteLine();
}
matrix.Method();
matrix.Method2();
Console.ForegroundColor = ConsoleColor.Red;
if (matrix.Method3())
{
Console.WriteLine("Матрица единичная");
}
else Console.WriteLine("Матрица не единичная");
if (matrix.Method4() == true)
{
Console.WriteLine("Матрица диагональная");
}
else Console.WriteLine("Матрица не диагональная");
Console.ResetColor();
Console.WriteLine(matrix[0, 0]);
Console.ReadKey();
}
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(" Для повторного запуска нажмите Enter");
Console.ResetColor();
key = Console.ReadKey().Key;
Console.Clear();
}
class Matrix2
{
private double[,] matrix;
public int stroka, stolbets;
private int Length;
int r = 0;
bool a = true, t = false;
public Matrix2(int stroka, int stolbets)
{
this.stroka = stroka;
this.stolbets = stolbets;
matrix = new double[this.stroka, this.stolbets];
Length = stroka * stolbets;
}
public double this[int index1, int index2]
{
get { return matrix[index1, index2]; }
set { matrix[index1, index2] = value; }
}
public void Method()
{
Console.ForegroundColor = ConsoleColor.Red;
for (int i = 0; i < stroka; i++)
{
for (int j = 0; j < stolbets; j++)
{
if (matrix[i, j] == 0)
{ r += 1; }
}
}
if (r == stolbets * stroka)
{ Console.WriteLine("Матрица нулевая"); }
else { Console.WriteLine("Матрица не нулевая"); }
Console.ResetColor();
}
public void Method2()
{
Console.ForegroundColor = ConsoleColor.Red;
if (stroka == stolbets)
{
Console.WriteLine("Матрица квадратная");
}
else Console.WriteLine("Матрица не квадратная");
Console.ResetColor();
}
public bool Method3()
{
if (stroka == stolbets)
{
for (int i = 0; i < stroka; i++)
{
for (int j = 0; j < stolbets; j++)
{
if (i == j && matrix[i, j] != 1)
{
return false;
}
else if (i != j && matrix[i, j] != 0)
{ return false; }
}
}
return true;
}
return false;
}
public bool Method4()
{
if (stroka == stolbets)
{
for (int i = 0; i < stroka; i++)
{
for (int j = 0; j < stolbets; j++)
{
if (i != j)
{
if (matrix[i, j] == 0)
{
t = true;
}
else t = false;
break;
}
}
}
}
return t;
}