Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB-2012 / 2-cеместр / Заочники(весна) / Методика / Методичка-Контр-раб-VB-(весна).doc
Скачиваний:
11
Добавлен:
26.03.2015
Размер:
1.46 Mб
Скачать

Текст класса tree

Public ind As Double ‘ содержимое узла дерева

Public leftcell As tree ‘ указатель на левое поддерево

Public rightcell As tree ‘указатель на правое поддерево

Текст программы

Public maxel, minel As Double

Public head As tree

Public ct, kol As Byte

Public indeks As Byte

Private Sub Command1_Click()

Dim prev As Byte

indeks = indeks + 1

If indeks < 7 Then

prev = ct

ct = ct * 2

Form1.Height = Form1.Height + 350

Command2.Top = Form1.ScaleHeight - Command2.Height - 105

Label1.Top = Form1.ScaleHeight - Label1.Height + 205

Dim temp As Byte

temp = 0

Dim q As Integer

q = text(0).Left - (text(0).Width + 100) * ct / 2

For i = prev + 1 To ct

temp = temp + 1

Load text(i - 1)

text(i - 1).Top = text(prev - 1).Top + 350

text(i - 1).Left = q + temp * (text(0).Width + 100) + ct / 4 * (text(0).Width + 100)

text(i - 1).Visible = True

Next i

End If

End Sub

‘ рекурсивная функция обхода дерева и добавления к нему новых ‘элементов

Private Sub MYADD(kolv As Integer, ByVal z As tree)

Dim tmp As Double

kol = kol + 1

Set z = New tree

tmp = Val(text(kol).text)

z.ind = tmp

If maxel < tmp Then maxel = tmp ‘ поиск максимального элемента

If minel > tmp Then minel = tmp ‘ поиск минимального элемента

If kolv < indeks - 1 Then ‘ проверка глубины вложенности дерева

Dim rc As New tree

Dim lc As New tree

Set z.leftcell = lc

Set z.rightcell = rc

Call MYADD(kolv + 1, lc)

Call MYADD(kolv + 1, rc)

End If

End Sub

Private Sub Command2_Click()

kol = 0

Call MYADD(1, head)

Form1.Height = Form1.Height + 555

Label1.Caption = "Сумма равна " + Str(maxel + minel)

End Sub

Private Sub Form_Load()

‘ начальная инициализация переменных

ct = 1

indeks = 1

maxel = 0

minel = 6555

End Sub