vb编写约分程序

vb编写约分程序,第1张

Private Sub Form_Click()

m = 6

n = 14

Print "约分前的分数表示为:" &m"/" &n

If m >0 And n >0 Then

a = m

b = n

res = b Mod a

Do While (res <>0)

b = a

a = res

res = b Mod a

Loop

Print "约分后的分数表示为:" &m / a"/" &n / a

Else

Print "结果为:0"

End If

End Sub

fz=分子

fm=分母

fz1 = fz: fm1 = fm

DO '辗转相减法求最大公约数

IF fz1 <fm1 THEN fm1 = fm1 - fz1

IF fz1 >fm1 THEN fz1 = fz1 - fm1

LOOP UNTIL fz1 = fm1

fz = fz / fz1

fm = fm / fm1

Msgbox fz"/"fm'此处的FZ为约分后的分子,FM为分母

REM This program is from zona1993@gmail.com

这里在窗体上放置三个文本框,text1,text2,text3分别用来输入分子、分母和输出结果,再放置一个命令按钮来控制。

把下面的代码粘贴进去,运行后输入不同的数值试试,可是你想要的结果。

Private Sub Command1_Click()

Dim GYS As Integer '定义公约数

Dim XSW1 As Integer

Dim XSW2 As Integer

XSW1 = XSW(Text1)

XSW2 = XSW(Text2)

If XSW1 >XSW2 Then '根据小数位,将分子分母同时扩大相同的倍数,转为整数

Text1 = Val(Text1) * 10 ^ XSW1

Text2 = Val(Text2) * 10 ^ XSW1

Else

Text1 = Val(Text1) * 10 ^ XSW2

Text2 = Val(Text2) * 10 ^ XSW2

End If

GYS = GCD(Val(Text1.Text), Val(Text2.Text)) '将两个数同时除以最大公约数

Text1 = Val(Text1) / GYS

Text2 = Val(Text2) / GYS

Text3 = Text1 &"/" &Text2

End Sub

Private Function GCD(x As Integer, y As Integer) As Integer '求两个数的最大公约数

Dim r As Integer

Do Until y = 0

r = x Mod y

x = y

y = r

Loop

GCD = x

End Function

Function XSW(dd As String) '求小数位

XSW = 0

For i = 1 To Len(dd)

If Mid(dd, i, 1) = "." Then

XSW = Len(dd) - i

End If

Next

End Function


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11916064.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存