Программа печати 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д