第5講 配列の学習

第2話 1次元配列を利用した簡単なソフト 
第1話問題解答例
Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     '変数の宣言
     Dim a(9) As Integer, i As Integer, w As String

     'データ発生
     For i = 0 To 9
       a(i) = i + 1
     Next

     'データ表示
     w = ""  '初期化
     For i = 0 To 9
       w = w + " " + a(i).ToString()
     Next
     TextBox1.Text = w

   End Sub
End Class
これが解答例ですが、今回作ったソフトは余りに芸がありませんね。
別に配列を使わなくても、
Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     '変数の宣言
     Dim i As Integer, w As String
     
     'データの発生と表示
     w = ""  '初期化
     For i = 1 To 10
       w = w + " " + i.ToString()
     Next
     TextBox1.Text = w

   End Sub
End Class
で十分だからです。そこで、ソフトを改良して配列のありがたみのわかるソフトにしましょう。
今回のような順に入れていくデータでなく、Rnd()(乱数)を利用して、アットランダムに1桁のデータを発生させ表示させてから、
合計値、平均値、最大値、最小値、大きい順に並び替えたデータを表示させてみましょう。
z
データ数は、今回と同じ10個としてプログラミングに挑戦しましょう。

尚、並び替えについては第4講の成績順並び替えを参考にしましょう。
プログラミング例は30行下。



























Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     '変数の宣言
     Dim a(9) As Integer, i As Integer, w As String

     'データ発生
     For i = 0 To 9
       a(i) = i + 1
     Next

     'データ表示
     w = ""  '初期化
     For i = 0 To 9
       w = w + " " + a(i).ToString()
     Next
     TextBox1.Text = w

     '合計値の算出
     Dim wa As Integer
     wa = 0 '初期化
     For i = 0 To 9
       wa = wa + a(i)
     Next
     '合計値の表示
     TextBox2.Text = wa

     '平均値
     TextBox3.Text = wa / 10

     '最大値の算出
     Dim max As Integer
     max = 0
     For i = 0 To 9
       If a(i) >= max Then max = a(i)
     Next
     '最大値の表示
     TextBox4.Text = max

     '最小値の算出
     Dim min As Integer
     min = 10
     For i = 0 To 9
       If a(i) <= min Then min = a(i)
     Next
     '最小値の表示
     TextBox5.Text = min

     '並び替え算出 
     Dim j As Integer, bn As Integer, wr As Integer
     For i = 9 To 0 Step -1
       min = 10
       For j = 0 To i
         If a(j) <= min Then
           min = a(j)
           bn = j
         End If
       Next
       wr = a(bn)
       a(bn) = a(i)
       a(i) = wr
     Next
     '並び替え表示
     
w = "" '初期化  これを忘れるとデータが20個表示されてしまう。
     For i = 0 To 9
       w = w + " " + a(i).ToString()
     Next
     TextBox6.Text = w

   End Sub
End Class実行結果例
x
因みにw = ""を入れ忘れると
c
と20個のデータが表示されてしまいます。
いったんw = ""で元データをクリアしなければなりません。

今回作ったソフトでは、配列のありがたさがわかります。
何度も同じデータを再利用し、それをすべてfor文、if文で扱えているからです。


第1話へ 第3話へ

006

VC++講義第1部へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座

数学研究室に戻る