第11講 ユークリッド互除法
第6話 ユークリッド互除法を利用して最小公倍数を求めるマクロ例
7
8
を実現するプログラム例
Private Sub CommandButton1_Click()
  
  Rows("4:2000").Select
  Selection.ClearContents
  Cells(1, 1).Select
  Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer
  
  a = f
  a = a * f
  a = a * f
  b = f
  b = b * f
  b = b * f
  c = a
  d = b
  Cells(3, 2) = c
  Cells(3, 3) = d
  If b > a Then Call g(a, b)
  e = h(a, b)
  Cells(4, 1) = "上記整数の最小公倍数は"
  Cells(5, 1) =
Int((c / e) * d)
  Cells(5, 2) = "です。"
  
End Sub
Function f()
  
tobi:
  f = Int(20 * Rnd)
  If f = 0 Then GoTo tobi
  
End Function
Sub g(a As Integer, b As Integer)

  Dim w As Integer
  w = a
  a = b
  b = w
  
End Sub
Function h(a As Integer, b As Integer)
  
  a = a Mod b
  If a = 0 Then
    h = b
    Exit Function
  End If
  h = h(b, a)
    
End Function
Private Sub CommandButton2_Click()
  
  Rows("4:2000").Select
  Selection.ClearContents
  Cells(1, 1).Select
  
End Sub

参考ダウンロード添付ファイル

Int((c / e) * d)が工夫した場所です。
Int(c * d / e)
だとオーバーフローします。

次ぎに、最小公倍数を利用して
分数の足し算a/c+b/d

を考えましょう。
今回、2つの整数がなるべく互いに素にならないように、
20以下の3つの整数の積としましたが
それでも残念ながら、互いに素になってしまう場合が結構ありますから、
絶対にcとdが互いに素にならないように、
工夫して下さい。
Integer型で収まるように発生させる整数は100未満にしましょう。
6
5

第5話へ 第7話へ
004

eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
excel 2013 2010 2007 vba入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門へ
小学生からエンジニアまでのRuby入門へ
本サイトトップへ