§6 計算(3) 2 vb2005 | プログラミング実習 [Menu] | |
【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"と表示される。
§6 計算(3) 2 vb2005 | Copyright©2007 Hiroshi Masuda |