|
▼てぃん さん、IROCさん、こんにちは。
>教えてください!大学でVBAのプログラミング
>についての問題をだされたのですがまったくわかりません…。
>「ユーグリッドの互除法を、2数を設定してマクロにより説明せよ。」
2数を割り算した余りと割った数をまた割り算して・・・
余りが0になるまで繰り返す方法でしたよね?
'=========================================================
Sub main()
Dim GDC As Long
Dim a As Long
Dim b As Long
a = 19: b = 18
GDC = get_GCD(a, b)
MsgBox a & " と " & b & "の" & vbLf & _
"最大公約数: " & GDC & vbLf & _
"最小公倍数: " & a * b / GDC
End Sub
'================================================================
Function get_GCD(n1 As Long, n2 As Long) As Long
Dim big As Long
Dim smll As Long
Dim amari As Long
If n1 >= n2 Then
big = n1
smll = n2
Else
big = n2
smll = n1
End If
get_GCD = 1
Do While smll <> 0
amari = big Mod smll
If amari = 0 Then
get_GCD = smll
End If
big = smll
smll = amari
Loop
End Function
コメントは付けませんから、考えてみて下さい。
>という問題と、
>「倍精度で機械のエプシロンを出力するプログラムでセルのD54以降が
> 0となる。この理由を述べよ」
こっちは、まるっきり知らないのであしからず・・・。
|
|