スライド 1

8-4 基本ソース
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Const 生徒数 As Integer = 5
Const 科目数 As Integer = 3
Const 合計点のインデックス番号 As Integer = 5
Const 平均点のインデックス番号 As Integer = 6
Dim 成績(科目数, 生徒数) As Integer
Dim i, j, 合計 As Integer
For i = 1 To 科目数
For j = 1 To 生徒数
成績(i, j) = Val(成績のグループ.Controls(i - 1).Controls(j - 1).Text)
Next
Next
For i = 1 To 科目数
合計 = 0
For j = 1 To 生徒数
合計 = 合計 + 成績(i, j)
Next
成績のグループ.Controls(i - 1).Controls(合計点のインデックス番号).Text = 合計
成績のグループ.Controls(i - 1).Controls(平均点のインデックス番号).Text = 合計 / 生徒数
Next
End Sub
P133
8-3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Const 生徒数 As Integer = 5
'生徒
Const 科目数 As Integer = 3
'科目数
Const 合計点のインデックス番号 As Integer = 5 '合計点
Const 平均点のインデックス番号 As Integer = 6 '平均点
Dim 成績(科目数, 生徒数) As Integer '成績を
Dim i, j, 合計 As Integer
'カウンタ変数i, jと合計を
'繰り返しにより、
For i = 1 To 科目数
For j = 1 To 生徒数
成績(i, j) = Val(成績のグループ.Controls(i - 1).Controls(j - 1).Text)
Next
Next
'繰り返しにより
For i = 1 To 科目数
合計 = 0
For j = 1 To 生徒数
合計 = 合計 + 成績(i, j)
Next
'結果を
成績のグループ.Controls(i - 1).Controls(合計点のインデックス番号).Text = 合計
成績のグループ.Controls(i - 1).Controls(平均点のインデックス番号).Text = 合計 / 生徒数
Next
Const 生徒の合計点のインデックス番号 As Integer = 3 '合計点の
Const 生徒の平均点のインデックス番号 As Integer = 4 '平均点の
'繰り返しを使って、
For i = 1 To 生徒数
合計 = 0
For j = 1 To 科目数
合計 = 合計 + 成績(j, i)
Next
'結果を
成績のグループ.Controls(生徒の合計点のインデックス番号).Controls(i - 1).Text = 合計
成績のグループ.Controls(生徒の平均点のインデックス番号).Controls(i - 1).Text = 合計 / 科目数
Next
End Sub
時計 11-2
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'グラフィックスに関する変数の宣言
Dim g As Graphics
Dim ブラシ As Brush
'グラフィックスに関するオブジェクトの作成
g = Me.CreateGraphics
ブラシ = New SolidBrush(Color.Black)
'ウィンドウを背景色で塗りつぶす
g.Clear(Me.BackColor)
g.DrawString(TimeOfDay, Me.Font, ブラシ, 10, 10)
'アラームを鳴らす
If アラームスイッチ.Checked = True And Hour(TimeOfDay) = Val(アラーム時間.Text) And
Minute(TimeOfDay) = Val(アラーム分.Text) Then
Beep()
End If
End Sub
時計 11-3
p178
'文字盤に関する定数の宣言
Const 文字盤の中心X As Integer = 140
Const 文字盤の中心Y As Integer = 110
Const 文字盤の半径 As Integer = 100
'グラフィックスに関する変数の宣言
Dim g As Graphics
Dim 文字盤のペン As Pen
Dim ブラシ As Brush
'グラフィックスに関するオブジェクトの作成
g = Me.CreateGraphics
文字盤のペン = New Pen(Color.Black)
ブラシ = New SolidBrush(Color.Black)
'ウィンドウを背景色で塗りつぶす
g.Clear(Me.BackColor)
'時計の文字盤の枠を描画する
g.DrawEllipse(文字盤のペン, 文字盤の中心X - 文字盤の半径, 文字盤の中心Y - 文字盤の半径, 2 * 文字盤の
半径, 2 * 文字盤の半径)
時計 11-3
p180
Public Sub 円周の座標計算(ByVal 中心X As Integer, ByVal
中心Y As Integer, ByVal 半径 As Integer, ByVal 角度 As
Integer, ByRef x As Integer, ByRef y As Integer)
x = 中心X + 半径 * Math.Sin(角度 * Math.PI / 180)
y = 中心Y - 半径 * Math.Cos(角度 * Math.PI / 180)
End Sub
P181 追加ソース
Const 目盛りの長さ As Integer = 5
'カウンタ変数の宣言
Dim i As Integer
'円周の座標の計算結果を格納するための変数の宣言
Dim x1, y1, x2, y2 As Integer
'時計の文字盤のメモリを描画する
For i = 1 To 12
円周の座標計算(文字盤の中心X, 文字盤の中心Y, 文字盤の半径, i * 30, x1, y1)
円周の座標計算(文字盤の中心X, 文字盤の中心Y, 文字盤の半径 - 目盛りの長さ, i *
30, x2, y2)
g.DrawLine(文字盤のペン, x1, y1, x2, y2)
Next
P182からのソース
'時計の文字盤の数字を描画する
Const 時間の文字の半径 As Integer = 80
For i = 1 To 12
円周の座標計算(文字盤の中心X, 文字盤の中心Y, 時間の文字の半径, i * 30, x1, y1)
If i < 10 Then
x1 = x1 - 9
Else
x1 = x1 - 13
End If
y1 = y1 - 9
g.DrawString(Format(i, "#"), Me.Font, ブラシ, x1, y1)
Next
'秒針を描画する
Const 秒針の長さ As Integer = 80
Dim 秒針のペン As Pen
秒針のペン = New Pen(Color.Black, 1)
円周の座標計算(文字盤の中心X, 文字盤の中心Y, 秒針の長さ, Second(TimeOfDay) * 6, x1, y1)
g.DrawLine(秒針のペン, 文字盤の中心X, 文字盤の中心Y, x1, y1)
'分針を描画する
Const 分針の長さ As Integer = 80
Dim 分針のペン As Pen
分針のペン = New Pen(Color.Black, 2)
円周の座標計算(文字盤の中心X, 文字盤の中心Y, 分針の長さ, Minute(TimeOfDay) * 6, x1, y1)
g.DrawLine(分針のペン, 文字盤の中心X, 文字盤の中心Y, x1, y1)
'短針を描画する
Const 短針の長さ As Integer = 50
Dim 短針のペン As Pen
短針のペン = New Pen(Color.Black, 3)
円周の座標計算(文字盤の中心X, 文字盤の中心Y, 短針の長さ, Hour(TimeOfDay) * 30 + Minute(TimeOfDay) / 2, x1, y1)
g.DrawLine(短針のペン, 文字盤の中心X, 文字盤の中心Y, x1, y1)
'アラームを鳴らす
If アラームスイッチ.Checked = True And Hour(TimeOfDay) = Val(アラーム時間.Text) And Minute(TimeOfDay) = Val(アラーム分.Text) Then
Beep()
End If