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
© Copyright 2024 ExpyDoc