
ПРЕЗЕНТАЦИЯ_С# / си / ПРИМЕРЫ_Классы и методы
.docКлассы и методы. 11 вариант.
Задание: Описать класс, реализующий тип данных «вещественная матрица». Класс должен реализовать следующие операции над матрицами: методы, реализующие проверку типа матрицы (квадратная, диагональная, нулевая, единичная, симметричная, верхняя треугольная, нижняя треугольная).
Вид:
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace LABS
{
public partial class LABClass : Form
{
public LABClass()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int n = int.Parse(textBox1.Text);
int m = int.Parse(textBox2.Text);
for (int i = 0; i < m; i++)
{
dataGridView1.Columns.Add("", "");//добавляем столбцы в таблицу
}
for (int j = 0; j < n; j++)
{
dataGridView1.Rows.Add();//добавляем строки в таблицу
}
}
private void button2_Click(object sender, EventArgs e)
{
int n = dataGridView1.ColumnCount;//присваиваем число столбцоы
int m = dataGridView1.RowCount - 1;//прсваиваем число строк.-1 нужно для того,чтобы не считать дополнительную строку, которая генерируется автоматически
int[,] a = new int[n, m];
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
a[i, j] = Convert.ToInt32(dataGridView1[i, j].Value);
//значения ячеек таблицы переносим в двумерный массив
textBox3.Text = SquareMatrix(n, m);//вызов метода
textBox4.Text = DiagonalMatrix(a);//множество textbox необходимо,чтобы отобразить все типы данной матрицы
textBox5.Text = ZeroMatrix(a);
textBox6.Text = SingularMatrix(a);
textBox7.Text = SymmetricalMatrix(a);
textBox8.Text = TriangularUpMatrix(a);
textBox9.Text = TriangularDownMatrix(a);
}
public string SquareMatrix(int a, int b)
{
string k = "";
if (a == b)
return k = "Квадратная";//возврат значения строковой переменной
else
return k = "Прямоугольная";//возврат при невыполнении условия
}
public string DiagonalMatrix(int[,] a)
{
string k = "";
int n = dataGridView1.ColumnCount;
int m = dataGridView1.RowCount - 1;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
a[i, j] = Convert.ToInt32(dataGridView1[i, j].Value);
int s = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if ((i == j) && (a[i, j] != 0))
s = s + 1;//считаем случаи выполнения условия
}
}
int p = 0;
if (s == n)//сравниваем случаи с кол-вом элементов главной диагонали
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if ((i != j) && (a[i, j] == 0))
p = p + 1;
}
}
}
int kol = n * m - n;
if (p == kol)
return k = "диагональная";
else
return k = "";
}
public string ZeroMatrix(int[,] a)
{
string k = "";
int n = dataGridView1.ColumnCount;
int m = dataGridView1.RowCount - 1;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
a[i, j] = Convert.ToInt32(dataGridView1[i, j].Value);
int s = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (a[i, j] == 0)
s = s + 1;
}
}
int kol = n * m;
if (s == kol)
return k = "нулевая";
else
return k = "";
}
public string SingularMatrix(int[,] a)
{
string k = "";
int n = dataGridView1.ColumnCount;
int m = dataGridView1.RowCount - 1;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
a[i, j] = Convert.ToInt32(dataGridView1[i, j].Value);
int s = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if ((i == j) && (a[i, j] == 1))
s = s + 1;
}
}
int p = 0;
if (s == n)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if ((i != j) && (a[i, j] == 0))
p = p + 1;
}
}
}
int kol = n * m - n;
if (p == kol)
return k = "единичная";
else
return k = "";
}
public string SymmetricalMatrix(int[,] a)
{
string k = "";
int n = dataGridView1.ColumnCount;
int m = dataGridView1.RowCount - 1;
int s = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
a[i, j] = Convert.ToInt32(dataGridView1[i, j].Value);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (i != j)
{
if (a[i, j] ==a[j, i])
s = s + 1;
}
}
}
int kol = n * m - n;
if (s==kol)
return k = "симметричная";
else
return k = "";
}
public string TriangularUpMatrix(int[,] a)
{
string k = "";
int n = dataGridView1.ColumnCount;
int m = dataGridView1.RowCount - 1;
int s = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
a[i, j] = Convert.ToInt32(dataGridView1[i, j].Value);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if ((i > j) && (a[i, j] == 0))
s = s + 1;
}
}
int kolsim = (m * n - n) / 2;
if (s == kolsim)
return k = "треугольная верхняя";
else
return k = "";
}
public string TriangularDownMatrix(int[,] a)
{
string k = "";
int n = dataGridView1.ColumnCount;
int m = dataGridView1.RowCount - 1;
int s = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
a[i, j] = Convert.ToInt32(dataGridView1[i, j].Value);
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if ((i < j) && (a[i, j] == 0))
s = s + 1;
}
}
int kolsim = (m * n - n) / 2;
if (s == kolsim)
return k = "треугольная нижняя";
else
return k = "";
}
}
}