• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Графы В Делфи

  • Автор темы nic-nic
  • Дата начала
N

nic-nic

Помогите преобразовать граф в виде матрицы смежности
 
N

nic-nic

В каком виде исходные данные?
[/quote
Создать програму с графическим интерфейсом для віполнения следующих заданий:

1) спервого текстового поля прочитать данные про связь вершин в графе.
2) во второе текстовое поле вывести таблицу смежности этого графа

3) в третье текстовое поле вывести количество вершин этого графа

4) в четвёртое текстовое поле вывести количество рёбер этого графа
 
S

Senset

Cоздать програму с графическим интерфейсом для віполнения следующих заданий:
1) спервого текстового поля прочитать данные про связь вершин в графе.
2) во второе текстовое поле вывести таблицу смежности этого графа
3) в третье текстовое поле вывести количество вершин этого графа
4) в четвёртое текстовое поле вывести количество рёбер этого графа
Какой замечательный ответ - это сарказм!
с первого текстового поля прочитать данные про связь вершин в графе"
Такс... получается граф задан текстом... хм... поставлю вопрос также в каком виде исходные данные? (т.е. как связи вершин графа (который например на картинке) будут представлены в виде текста)
106.gif


Что понимается под "текстовыми полями" = (TEdit, TRichEdit, TMemo... или что)?
 
N

nic-nic

Вот решение на 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, ^_^ = 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®

End Sub

End Class
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!