Основы офисного программирования и язык VBA


Пример 4.2


'Конструкторы класса Rational

Private Sub Class_Initialize()

'Конструктор по умолчанию

'инициализирует рациональное число дробью 1/1

m = 1

n = 1

End Sub

Public Sub CreateRational(ByVal a As Integer, ByVal b As Integer)

'Собственный конструктор

'Выполняет довольно сложные действия,

'прежде чем свойства получат значения

Dim d As Integer 'Наибольший общий делитель a и b

If b = 0 Then

MsgBox " Ошибка при создании рационального числа!" _

& Chr(13) & "Знаменатель не должен равняться 0."

Else

' приведение знака

If b < 0 Then

b = -b: a = -a

End If

' приведение к несократимой дроби

d = nod(a, b) ' d - НОД(a,b)

m = a \ d

n = b \ d

End If

End Sub

' Скрытая функция вычисления НОД(m,n)

Private Function nod(ByVal m As Integer, ByVal n As Integer) As Integer

Dim p As Integer

m = Abs(m): n = Abs(n)

If n > m Then

p = m: m = n: n = p

End If

Do

p = m Mod n: m = n: n = p

Loop Until n = 0

nod = m

End Function




Начало  Назад  Вперед