Тема. Способи подання графів
Мета. Формування умінь представляти графи у вигляді таблиці суміжності
Завдання
Створити програму з графічним інтерфейсом для виконання наступних завдань:
1) з першого текстового поля прочитати дані про пов’язані вершини графу (у окремих рядках вказано через пробіл номери пов’язаних ребрами вершин);
2) до другого текстового поля вивести таблицю суміжності для цього графу;
3) до третього текстового поля вивести кількість вершин графу;
4) до четвертого текстового поля вивести кількість ребер графу.
Примітка: вершини графу пронумеровані по порядку від 1, граф не містить ізольованих вершин.
Приклади вхідних та вихідних даних:
Граф | Вхідні дані | Вихідні дані | ||
TextBox1.Text | TextBox2.Text | TextBox3.Text | TextBox4.Text | |
![]() | 1 4 1 2 1 3 3 2 3 5 | 0 1 1 1 0 1 0 1 0 0 1 1 0 01 1 0 0 0 0 0 0 1 0 0 | 5 | 5 |
Розв'язання мовою VB.NET
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Оголосимо локальні змінні
Dim v, r As Integer
Dim matr(100, 100) As Integer
Dim a, b, x As Integer
'Заповнюємо матрицю суміжності та рахуємо кількість вершин
Dim s As String
For i = 0 To TextBox1.Lines.Count - 1
s = TextBox1.Lines(i)
s = s.Trim()
If s <> "" Then
x = s.IndexOf(" ")
a = Val(s.Substring(0, x))
b = Val(s.Substring(x + 1, s.Length - x - 1))
matr(a, b) = 1
matr(b, a) = 1
If a > v Then v = a
If b > v Then v = b
End If
Next
'Рахуємо кількість ребер
r = 0
For i = 1 To v
For j = 1 To v
If matr(i, j) = 1 Then r = r + 1
Next
Next
r = r / 2
'Виводимо матрицю суміжності
TextBox2.Text = ""
For i = 1 To v
For j = 1 To v
TextBox2.Text += Str(matr(i, j)) + " "
Next
TextBox2.Text += vbNewLine
Next
'Виводимо кількість вершин
TextBox3.Text = Str(v)
'Виводимо кількість ребер
TextBox4.Text = Str(r)
End Sub
End Class
Завдання для самостійного виконання
Виконати програму для заданого вашим варіантом графу: