第15講 データの並び換え
第5話 並び換えプログラム例
mnfe
を実現するプログラム例
Private Sub CommandButton1_Click()

  CommandButton2_Click
  Dim a(200) As Integer, b(200) As Integer, c(200) As Integer
  Call f(a(), b(), c()) 'データ発生
  Call h(a(), 4) 'データ表示
  Call g1(b()) '昇順並び換え
  Call h(b(), 5) 'データ表示
  Call g2(c()) '昇順並び換え
  Call h(c(), 6) 'データ表示
  
End Sub

Sub f(a() As Integer, b() As Integer, c() As Integer)
  
  Dim i As Integer
  For i = 0 To 4
    a(i) = Int(100 * Rnd)
    b(i) = a(i)
    c(i) = a(i)
  Next
  
End Sub

Sub g1(a() As Integer)

  Dim i As Integer, j As Integer, min As Integer, jk As Integer, w As Integer
  
  For i = 0 To 3
    min = 100
    For j = i To 4
      If min > a(j) Then
        min = a(j)
        jk = j
      End If
    Next
    w = a(i)
    a(i) = a(jk)
    a(jk) = w
  Next
  
End Sub

Sub g2(a() As Integer)

  Dim i As Integer, j As Integer, max As Integer, jk As Integer, w As Integer
  
  For i = 0 To 3
    max = 0
    For j = i To 4
      If max < a(j) Then
        max = a(j)
        jk = j
      End If
    Next
    w = a(i)
    a(i) = a(jk)
    a(jk) = w
  Next

End Sub

Sub h(a() As Integer, n As Integer)

  Dim i As Integer
  For i = 0 To 4
    Cells(n, 1 + i) = a(i)
  Next
  
End Sub

Private Sub CommandButton2_Click()
  
  Rows("4:20000").Select
  Selection.ClearContents
  Cells(1, 1).Select
  
End Sub


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

次話では、隣項交換繰り返し法について述べます。

第4話へ 第6話へ
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入門へ
本サイトトップへ