Программа печати k-го члена в виде обыкновенной несократимой дроби - VBA

Узнай цену своей работы

Формулировка задачи:

Задание про подпрограммы, функции. vba Ломал голову, но безуспешно. Помогите с написанием программы в общем. Попрошу, пожалуйста, написать код, если завалялся. Для последовательности составить программу печати k-го члена в виде обыкновенной несократимой дроби.

Решение задачи: «Программа печати k-го члена в виде обыкновенной несократимой дроби»

textual
Листинг программы
Private Function Gcd(A As Long, B As Long) As Long
        If A < B Then
           Gcd = Gcd(B, A)
        ElseIf B = 0 Then
           Gcd = A
        Else
           Gcd = Gcd(B, A Mod B)
        End If
End Function
 
Private Function AddRatio(A() As Long, B() As Long) As Long()
Dim R() As Long
 
        num1& = A(1)
        den1& = A(2)
        
        num2& = B(1)
        den2& = B(2)
        
        numr& = den2& * num1& + den1& * num2&
        denr& = den1& * den2&
        
        ReDim R(1 To 2) As Long
        
        gc& = Gcd(numr&, denr&)
        
        R(1) = numr& / gc&
        R(2) = denr& / gc&
 
        AddRatio = R
 
End Function
 
Private Function invRatio(A() As Long) As Long()
Dim R() As Long
 
        ReDim R(1 To 2) As Long
        R(1) = A(2)
        R(2) = A(1)
        
        invRatio = R
 
End Function
 
Private Function PrintRatio(A() As Long) As String
        PrintRatio = CStr(A(1)) & "/" & CStr(A(2))
End Function
 
 
Sub main()
 
Dim CurrN() As Long
Dim NextN() As Long
Dim WorkN() As Long
Dim Unit() As Long
 
    ReDim Unit(1 To 2) As Long
    
    Unit(1) = 1
    Unit(2) = 1
 
    ReDim CurrN(1 To 2) As Long
    
    CurrN(1) = 1
    CurrN(2) = 1
    
    For i% = 1 To 4
    
        WorkN = AddRatio(Unit, CurrN)
        WorkN = invRatio(WorkN)
        NextN = AddRatio(CurrN, WorkN)
        Erase CurrN
        CurrN = NextN
        Erase NextN
        Debug.Print PrintRatio(CurrN)
    Next i%
    
 
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы