Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПРЕЗЕНТАЦИЯ_С# / си / ПРИМЕРЫ_Классы и методы

.doc
Скачиваний:
54
Добавлен:
17.04.2015
Размер:
117.76 Кб
Скачать

Классы и методы. 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 = "";

}

}

}