第3講 For文の学習
第10話 10行10列の場合の行(列)合計・行(列)平均の計算

前話解答例
Form1
入門
列幅はすべて初心者70

コード例

Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

     '変数の宣言
     Dim i As Integer, j As Integer, w As Integer

     '132行追加
     For i = 1 To 13
       DataGridView1.Rows.Add()
     Next

     '1行目に列表題を入れる。
     DataGridView1(11, 0).Value = "合計 "
     DataGridView1(12, 0).Value = "平均 "

     '5行目,6行目に行表題を入れる。
     DataGridView1(0, 11).Value = "合計 "
     DataGridView1(0, 12).Value = "平均 "

     '2次元データを入力
     For i = 1 To 11
       For j = 1 To 11
         DataGridView1(j, i).Value = 10 * ( i -1 ) + j
       Next
     Next

  
  '行の合計と平均の計算と表示
    For i = 1 To 11
      w = 0
      For j = 1 To 11
        w = w + DataGridView1(j, i).Value
      Next
      DataGridView1(11, i).Value = w
      DataGridView1(12, i).Value = w / 10
    Next


    '列の合計と平均の計算と表示
    For i = 1 To 11
      w = 0
      For j = 1 To 11
        w = w + DataGridView1(i, j).Value
      Next
      DataGridView1(i, 11).Value = w
      DataGridView1(i, 12).Value = w / 10
    Next

   End Sub
End Class


さて、この講最後の課題です。
まず、コードの最後にピンク

Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            ・
            ・
            ・
    '列の合計と平均の計算と表示
    For i = 1 To 11
      w = 0
      For j = 1 To 11
        w = w + DataGridView1(i, j).Value
      Next
      DataGridView1(i, 11).Value = w
      DataGridView1(i, 12).Value = w / 10
    Next

    
'6行追加
    For i = 1 To 6
      DataGridView1.Rows.Add()
    Next
    '15行目に列表題を入れる。
    DataGridView1(3, 14).Value = "合計 "
    DataGridView1(4, 14).Value = "平均 "

    '18目,19行目に行表題を入れる。
    DataGridView1(0, 18).Value = "合計 "
    DataGridView1(0, 19).Value = "平均 "


   End Sub
End Class

追加して、Form1のもう一つボタンを加え、二つのボタン名を
実行1と実行2にしてください。
入門これでビルドして実行1押すと、
初心者
入門と空のセルができます。
赤い囲いのところにキーボードから値を入力して、
実行2を押すと、その部分の合計や平均が出るようにプログラミングしてください。
プログラミングするには、Form1[デザイン]の実行2をダブルクリックすると、下図のようになりますから
初心者
Buton1(つまり実行1)のときのようにコードを入力してください。
尚、Button1でDim i As Integer, j As Integer, w As Integerと宣言していますが、
Button2でi,j,wを使いたいときは、赤い囲いの中でも
Dim i As Integer, j As Integer, w As Integer
と宣言し直すことが必要です。これが何度も出てきた構造化プログラミング
のおける各パーツの独立性です。
つまり、AというパーツとBというパーツで同じ変数名が使われていたとしても、
Aの変数がBの中で書き換えられてしまう心配がないので、
Aを担当しているプログラマは、Aのみの開発に専念できるのです。
昔のBASICは、各パーツの独立性がなく、同じ変数名が使われているとき、
他のパーツで書き換えられてしまう心配があり、
プログラミングは結局全体を常に見ていないとできなかったのです。
各パーツが有機的に関連しあっていて、
しかも、GO TO文でいろいろなパーツを行ったり来たりしていたので、
全体がスパゲティのように絡み合い混線して、
大変見通しの悪いプログラミングになっていました。

それに対して、Visual BasicではC言語のように各パーツが完全に独立しているので、
プロモデルの部品を組み立てるとプラモデル全体ができるように、
各パーツを単純に組み立てるだけで全体ができます。
このような独立パーツから全体を組み上げるプログラミングを構造化プログラミングというのです。
各部品が単純に連結しているのか、脳細胞やWebのように複雑に有機的に連結してしまっているのかの違いです。
かつてのBASICは、全体が複雑怪奇に絡み合い、わかりにくいプロラムになってしまうという欠点をもっていました。
Visual Basicになった現在この短所は解消され、構造化プログラミングができるようになっています。

実行2は、セルに値をキーボードから入力してから押してください。
データが入っていないのに実行2を押すとエラーします。

第9話へ 第11話へ

006


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

数学研究室に戻る