Сложение двух обычных (не десятичных) дробей - VB

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

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

В textbox1 записывается дробь формата 1/2 во второй textbox тоже самое 3/4 и на выходе должна получиться дробь такого же формата(в третьем textbox) делать нужно через right и left но вот как реализовать не могу додуматься,с форматами типа данных у меня не очень

Решение задачи: «Сложение двух обычных (не десятичных) дробей»

textual
Листинг программы
Option Explicit
Private Sub Command1_Click()
    Dim a As String, b As String, c1 As Integer, c2 As Integer
    Dim a1 As Integer, a2 As Integer, b1 As Integer, b2 As Integer
    a = Trim$(Text1.Text)   '1-е число
    b = Trim$(Text2.Text)   '2-е число
    a1 = Val(Left(a, InStr(1, a, "/") - 1))        '1-й числитель
    b1 = Val(Left(b, InStr(1, b, "/") - 1))        '2-й числитель
    a2 = Val(Right(a, Len(a) - InStr(1, a, "/")))  '1-й знаменатель
    b2 = Val(Right(b, Len(b) - InStr(1, b, "/")))  '2-й знаменатель
    c2 = NOK(a2, b2)                     'общий знаменатель
    c1 = a1 * (c2 \ a2) + b1 * (c2 \ b2) 'числитель
    If c1 = c2 Then Text3.Text = "1" Else Text3.Text = c1 & "/" & c2
End Sub
Private Function NOK(x As Integer, y As Integer) As Integer ' Функция нахождения НОК 2-ух чисел
    NOK = (x \ NOD(x, y)) * y
End Function
Private Function NOD(ByVal x As Integer, ByVal y As Integer) As Integer ' Функция нахождения НОД 2-ух чисел
    Dim r As Integer
    Do While y > 0
        r = x Mod y: x = y: y = r
    Loop
    NOD = x
End Function

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

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