§6 計算(3) 2 vb2005 プログラミング実習 [Menu]
 back next 

【3】 合計計算

 カンマで区切られたデータは、変数dに記憶される。このデータを加算(累算)していき、合計を計算させる。

(10) 合計計算をする。[計算](KeisanButton)のメソッドを次のように追加・修正する。

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KeisanButton.Click
        Dim moto As String, pt As Integer, d As Integer
        Dim goukei As Integer
        moto = Data1.Text & ","    'データの最後にカンマを追加
        pt = 1        '検索開始位置(1文字目)
        goukei = 0    '合計用
        Do        '永久ループ
            pt = InStr(pt, moto, vbCrLf)    '改行文字(VbCrLf)を検索
            If pt = 0 Then    '改行文字なし
                Exit Do        'ループを抜ける
            End If
            If Mid(moto, pt - 1, 1) = "," Then        '改行文字の直前がカンマ
                moto = Mid(moto, 1, pt - 1) & Mid(moto, pt + 2)    '改行文字削除
            Else
                moto = Mid(moto, 1, pt - 1) & "," & Mid(moto, pt + 2)    '連結
            End If
        Loop
        Do Until Len(moto) = 0
            pt = InStr(moto, ",")            'カンマを検索
            d = Val(Mid(moto, 1, pt - 1)) '先頭からカンマ直前まで
            moto = Mid(moto, pt + 1)        'カンマ直後をmotoに
            goukei = goukei + d    '合計計算
        Loop
        Kotae.Text = goukei    '合計表示
    End Sub

結果 1〜10のデータを@、A、Bいずれかの方法で入力して、[計算]ボタンをクリックすると計算結果の欄に"55"と表示される。

(11) [終了](EndButton)のクリックイベントに対応するメソッドを作成する。


 データをカンマ(,)で区切ったファイル形式を「CSV(Comma Separated Values)」形式と呼ぶ。表計算などの保存形式としても使われている。実態はテキストデータであるのでほかのアプリケーションとのデータ交換などにも使われる。

 

【4】 平均計算

 平均は、合計をデータの個数でわり算したものである。すでに合計は計算できているので、あとはデータの個数がわかればよい。
 個数をカウントする変数cntを用意して、データを取り出すごとに1ずつ加算していけばデータの個数を調べることができる。

(12) 平均の計算結果を表示する欄を図のように追加する。合計のラベルのメッセージも変更したので修正する。

ラベル (Name) Label3   テキストボックス (Name) Kotae2
Text 平均= Text 0

(13) 平均計算をする。[計算](KeisanButton)のメソッドを次のように追加・修正する。

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KeisanButton.Click
        Dim moto As String, pt As Integer, d As Integer
        Dim goukei As Integer, cnt As Integer
        moto = Data1.Text & ","    'データの最後にカンマを追加
        pt = 1        '検索開始位置(1文字目)
        goukei = 0    '合計用
        Do        '永久ループ
            pt = InStr(pt, moto, vbCrLf)    '改行文字(VbCrLf)を検索
            If pt = 0 Then    '改行文字なし
                Exit Do        'ループを抜ける
            End If
            If Mid(moto, pt - 1, 1) = "," Then        '改行文字の直前がカンマ
                moto = Mid(moto, 1, pt - 1) & Mid(moto, pt + 2)    '改行文字削除
            Else
                moto = Mid(moto, 1, pt - 1) & "," & Mid(moto, pt + 2)    '連結
            End If
        Loop
        cnt = 0    'データ個数用
        Do Until Len(moto) = 0
            pt = InStr(moto, ",")            'カンマを検索
            d = Val(Mid(moto, 1, pt - 1)) '先頭からカンマ直前まで
            moto = Mid(moto, pt + 1)        'カンマ直後をmotoに
            goukei = goukei + d    '合計計算
            cnt = cnt + 1           'データ個数カウント
        Loop
        Kotae.Text = goukei    '合計表示
        Kotae2.Text = goukei / cnt    '平均表示
    End Sub

結果 1〜10のデータを@、A、Bいずれかの方法で入力して、[計算]ボタンをクリックすると合計の欄に"55"、平均の欄に"5.5"と表示される。



 back next 
 §6 計算(3) 2 vb2005 Copyright©2007 Hiroshi Masuda 
inserted by FC2 system