using System;
using System.Drawing;
using System.Windows.Forms;
namespace KAy
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// создание таблицы
private void button1_Click(object sender, EventArgs e)
{
int n = (int)numericUpDown1.Value;
dataGridView1.ColumnCount = n;
dataGridView1.RowCount = n;
for (int i = 0; i < n; i++)
{
dataGridView1.Columns[i].Width = 40;
dataGridView1.Columns[i].HeaderText = (i + 1).ToString();
dataGridView1.Rows[i].HeaderCell.Value = (i + 1).ToString();
for (int j = 0; j < n; j++)
dataGridView1[j, i].Value = 0;
}
listBox1.Items.Clear();
}
// очистить
private void button2_Click(object sender, EventArgs e)
{
dataGridView1.Rows.Clear();
dataGridView1.Columns.Clear();
listBox1.Items.Clear();
}
// при изменении матрицы ищем изолированные вершины
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
НайтиИзолированные();
}
private void НайтиИзолированные()
{
int n = dataGridView1.RowCount;
listBox1.Items.Clear();
int count = 0;
for (int i = 0; i < n; i++)
{
bool isolated = true;
for (int j = 0; j < n; j++)
{
int rowValue = Convert.ToInt32(dataGridView1[j, i].Value);
int colValue = Convert.ToInt32(dataGridView1[i, j].Value);
if (rowValue != 0 || colValue != 0)
{
isolated = false;
break;
}
}
if (isolated)
{
listBox1.Items.Add("Изолированная вершина № " + (i + 1));
count++;
}
}
listBox1.Items.Add("--------------");
listBox1.Items.Add("Количество: " + count);
}
// справка
private void справкаToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show(
"Введите количество вершин.\n" +
"Нажмите 'Создать'.\n" +
"Заполните матрицу смежности 0 и 1.\n" +
"Изолированные вершины появятся справа.",
"Справка"
);
}
// помощь
private void помощьToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show(
"Изолированная вершина — вершина без рёбер.",
"Помощь"
);
}
}
}