ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

北海学園テスト対策コミュのプログラミング

  • mixiチェック
  • このエントリーをはてなブックマークに追加
章末問題5 解答

章末問題5-1

    Dim a, b As Double
a = Val(値a.Text)
b = Val(値b.Text)
和.Text = a + b
積.Text = a * b

章末問題5-2

    面積.Text = Math.Pow(Val(長さ.Text), 2)
体積.Text = Math.Pow(Val(長さ.Text), 3)

章末問題5-3

    合計.Text = Format(1000 * Val(大人.Text) + 500 * Val(子供.Text), "#,#")

章末問題5-4

    Dim 残り時間 As Integer
残り時間 = Val(入力秒.Text)
時間.Text = 残り時間 \ 3600
残り時間 = 残り時間 Mod 3600
分.Text = 残り時間 \ 60
残り時間 = 残り時間 Mod 60
秒.Text = 残り時間

章末問題5-5

    Dim b, c As Double
b = Val(入力b.Text)
c = Val(入力c.Text)
解1.Text = Format((-b + Math.Sqrt(Math.Pow(b, 2) - 4 * c)) / 2, "0.000")
解2.Text = Format((-b - Math.Sqrt(Math.Pow(b, 2) - 4 * c)) / 2, "0.000")



   ※Math.Powの代わりに、べき乗(^)を使ってもよい。計算結果は同じになります。

解1.Text = Format((-b + Math.Sqrt((b ^ 2) - 4 * c)) / 2, "0.000")
解2.Text = Format((-b - Math.Sqrt((b ^ 2) - 4 * c)) / 2, "0.000")

コメント(13)

    


6月22日


例題6-6




    '足し算
If 加算.Checked = True Then
答え.Text = Val(TextBox1.Text) + Val(TextBox2.Text)
End If
'引き算
If 減算.Checked = True Then
答え.Text = Val(TextBox1.Text) - Val(TextBox2.Text)
End If
'掛け算
If 乗算.Checked = True Then
答え.Text = Val(TextBox1.Text) * Val(TextBox2.Text)
End If
'割り算
If 除算.Checked = True Then
答え.Text = Val(TextBox1.Text) / Val(TextBox2.Text)
End If



’足し算 
等は

分かりやすくするためのコメントなのでなくてもよい





6月22日
例題7-1

基本のやり方



    gokei = 0

gokei = gokei + 1
gokei = gokei + 2
gokei = gokei + 3
gokei = gokei + 4
gokei = gokei + 5
gokei = gokei + 6
gokei = gokei + 7
gokei = gokei + 8
gokei = gokei + 9
gokei = gokei + 10

Label2.Text = gokei
例題7-1 
楽な方法


Dim i, 計算結果 As Integer
計算結果 = 0
For i = 1 To 10
計算結果 = 計算結果 + i
Next


合計.Text = 計算結果
6章の章末問題 ヒント 2010.txt



章末問題6-1
 
 \を付ける方法
   Format(???????????, "\\#,#") 76pを参考


章末問題6-2

条件分岐 a > b が真のとき 三角形である
          偽のとき 三角形は成立しない

章末問題6-3
  
  if文で作成する 
   ? a <= 0 又は b <= 0 又は c <= 0
  "三角形は作れない"
? (a + b) <= c 又は (a + c) <= b 又は (b + c) <= a
"三角形は作れない"
? a = b 且つ b = c
"正三角形"
?  a = b 又は a = c 又は b = c
 "二等辺三角形"
?でもなく、?でもない場合
"単なる三角形"

章末問題6-4

   if文で作成する 
   円の体積 4/3 * Math.PI * Math.Pow(半径, 3)

章末問題6-5

   1から4までの整数の乱数を求める
    Randomize()
Math.Floor(Rnd() * 4) + 1

   Select文で作成 
    例えば 乱数 1を大吉
           2を中吉
           3を小吉
           4を凶
元利合計


Dim 元金, 金利, 年数, 元利 As Long
元金 = Val(テキスト元金.Text)
金利 = Val(テキスト金利.Text)
年数 = 0
Do While 元利 <= 元金 * 2
年数 = 年数 + 1
元利 = 元金 * (1 + 金利 / 100) ^ 年数
Loop
ラベル年数.text = Format(年数, "###年後")
ラベル元利合計.text = Format(元利, "#,###円")
7月5日
元利計算
最終


Dim 元金, 年数, 元利 As Long
Dim 金利 As Double

元金 = Val(テキスト元金.Text)
金利 = Val(テキスト金利.Text)
年数 = 0
If 元金 > and 金利 > 0 then
Do While 元利 <= 元金 * 2
年数 = 年数 + 1
元利 = 元金 * (1 + 金利 / 100) ^ 年数
Loop
ラベル年数.Text = Format(年数, "###年後")
ラベル元利合計.Text = Format(元利, "#,###円")
Else
ラベル年数.Text = "未入力"
ラベル元利合計.Text = "未入力"
End If
章末問題6



章末問題6-1
  Dim 購入台数 As Integer

購入台数 = Val(台数.Text)
If 購入台数 < 10 Then
金額.Text = Format(購入台数 * 100000, "\\#,#")
Else
金額.Text = Format(購入台数 * 100000 * 0.9, "\\#,#")
End If

章末問題6-2
Dim a, b As Double
a = Val(テキストボックスa.Text)
b = Val(テキストボックスb.Text)

If (a > b) Then
ラベルc.Text = Format(Math.Sqrt(a ^ 2 - b ^ 2), "0.000")
Else
ラベルc.Text = "三角形は存在しません"
End If

章末問題6-3
   Dim a, b, c As Double
a = Val(テキストボックスa.Text)
b = Val(テキストボックスb.Text)
c = Val(テキストボックスc.Text)
If a < 0 Or b < 0 Or c < 0 Then
答え.Text = "三角形は作れない"
ElseIf (a + b) <= c Or (a + c) <= b Or (b + c) <= a Then
答え.Text = "三角形は作れない"
ElseIf a = b And b = c Then
答え.Text = "正三角形"
ElseIf a = b Or a = c Or b = c Then
答え.Text = "二等辺三角形"
Else
答え.Text = "単なる三角形"
End If

章末問題6-4
Dim 半径, 答え As Double
半径 = Val(テキストボックス半径.Text)
If 円周.Checked = True Then
答え = 2 * Math.PI * 半径
ElseIf 面積.Checked = True Then
答え = Math.PI * Math.Pow(半径, 2)
ElseIf 表面積.Checked = True Then
答え = 4 * Math.PI * Math.Pow(半径, 2)
ElseIf 体積.Checked = True Then
答え = 4 / 3 * Math.PI * Math.Pow(半径, 3)
End If
ラベル答え.Text = Format(答え, "0.000")

章末問題6-5
    Dim 占い As Integer
Randomize()
占い = Math.Floor(Rnd() * 4) + 1
Select Case 占い
Case 1
運勢.Text = "大吉"
Case 2
運勢.Text = "中吉"
Case 3
運勢.Text = "小吉"
Case 4
運勢.Text = "凶"
End Select
例題8-1


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
成績表.RowCount = 6
成績表.Columns(0).Width = 100
For i = 1 To 5
成績表.Columns(i).Width = 80
Next
成績表.Columns(6).Width = 120
成績表.Columns(7).Width = 120
成績表.Width = 100 + 80 * 5 + 120 * 2 + 4
成績表.Height = 成績表.ColumnHeadersHeight + 成績表.Rows(0).Height * 3 + 2
成績表(0, 0).Value = "国語"
成績表(1, 0).Value = "30"
成績表(2, 0).Value = "50"
成績表(3, 0).Value = "70"
成績表(4, 0).Value = "20"
成績表(5, 0).Value = "40"
成績表(0, 1).Value = "算数"
成績表(1, 1).Value = "10"
成績表(2, 1).Value = "80"
成績表(3, 1).Value = "100"
成績表(4, 1).Value = "40"
成績表(5, 1).Value = "90"
成績表(0, 2).Value = "理科"
成績表(1, 2).Value = "40"
成績表(2, 2).Value = "60"
成績表(3, 2).Value = "80"
成績表(4, 2).Value = "30"
成績表(5, 2).Value = "70"
成績表(0, 3).Value = "合計点"
成績表(0, 4).Value = "平均点"
成績表(0, 5).Value = "評価"


End Sub

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 = 6
Const 行平均点のインデックス番号 As Integer = 7
Const 列合計点のインデックス番号 As Integer = 3
Const 列平均点のインデックス番号 As Integer = 4
Const 評価のインデックス番号 As Integer = 5

Dim 成績(生徒数, 科目数) As Integer
Dim i, j, 合計 As Integer
Dim 平均 As Double
For i = 1 To 生徒数
For j = 1 To 科目数
成績(i, j) = Val(成績表(i, j - 1).Value)
Next
成績表(行合計点のインデックス番号, i - 1).Value = 合計
成績表(行平均点のインデックス番号, i - 1).Value = 合計 / 生徒数
Next

For i = 1 To 科目数
合計 = 0
For j = 1 To 生徒数
合計 = 合計 + 成績(j, i)
Next
成績表(i, 列合計点のインデックス番号).Value = 合計
平均 = 合計 / 科目数
成績表(i, 列平均点のインデックス番号).Value = Format(合計 / 科目数, "0.0")
Select Case 平均
Case Is >= 80
成績表(i, 評価のインデックス番号).Value = "優"
Case Is >= 60
成績表(i, 評価のインデックス番号).Value = "良"
Case Is >= 50
成績表(i, 評価のインデックス番号).Value = "可"
Case Else
成績表(i, 評価のインデックス番号).Value = "不可"

End Select
Next
例題8 4 2


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
成績表.RowCount = 7

成績表.Width = 120 + 100 * 3 + 120 * 2 + 4
成績表.Height = 成績表.ColumnHeadersHeight + 成績表.Rows(0).Height * 7 + 2
成績表(0, 0).Value = "1"
成績表(1, 0).Value = "30"
成績表(2, 0).Value = "10"
成績表(3, 0).Value = "40"
成績表(0, 1).Value = "2"
成績表(1, 1).Value = "50"
成績表(2, 1).Value = "80"
成績表(3, 1).Value = "60"
成績表(0, 2).Value = "3"
成績表(1, 2).Value = "70"
成績表(2, 2).Value = "100"
成績表(3, 2).Value = "80"
成績表(0, 3).Value = "4"
成績表(1, 3).Value = "20"
成績表(2, 3).Value = "40"
成績表(3, 3).Value = "30"
成績表(0, 4).Value = "5"
成績表(1, 4).Value = "40"
成績表(2, 4).Value = "90"
成績表(3, 4).Value = "70"
成績表(0, 5).Value = "合計点"
成績表(0, 6).Value = "平均点"


End Sub

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



Dim 成績(科目数, 生徒数) As Integer
Dim i, j, 行合計, 列合計 As Integer

For i = 1 To 科目数
For j = 1 To 生徒数
成績(i, j) = Val(成績表(i, j - 1).Value)
Next

Next

For i = 1 To 生徒数
行合計 = 0
For j = 1 To 科目数
行合計 = 行合計 + 成績(j, i)
Next
成績表(科目数 + 1, i - 1).Value = 行合計
成績表(科目数 + 2, i - 1).Value = Format(行合計 / 科目数, "0.0")
Next

For j = 1 To 科目数
列合計 = 0
For j = 1 To 科目数
行合計 = 行合計 + 成績(j, i)
Next
成績表(j, 生徒数).Value = 行合計
成績表(j, 生徒数 + 1).Value = Format(行合計 / 科目数, "0.0")
Next
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'
Dim a, b, c As Double
a = TextBox1.Text
b = TextBox2.Text
c = TextBox3.Text

Dim Re1, Re2, Im1, Im2, D As Double

D = b * b - 4 * a * c '解の判別式

If D > 0 Then
Re1 = (-b + Math.Sqrt(D)) / (2 * a)
Re2 = (-b - Math.Sqrt(D)) / (2 * a)
Im1 = 0
Im2 = 0
ElseIf D = 0.0 Then
Re1 = -b / (2 * a)
Im1 = 0
Re2 = Im2 = 0
Else
Re1 = -b / (2 * a)
Re2 = Re1
Im1 = Math.Sqrt(-D) / (2 * a)
Im2 = -Im1
End If

If D = 0 Then
TextBox4.Text = Re1 & "+i" & Im1
Else
TextBox4.Text = Re1 & "+i" & Im1 & vbCrLf & Re2 & "+i" & Im2
End If
'
End Sub

Public Class Form1

Private myImages As New List(Of Bitmap)
Private points As New List(Of Point)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'画像のロード(画像は先にメモリ上に読み込んでおく)
myImages.Add(New Bitmap("C:\Test\Sample1.bmp"))
myImages.Add(New Bitmap("C:\Test\Sample2.bmp"))
myImages.Add(New Bitmap("C:\Test\Sample3.bmp"))

'初期設定
For i = 0 To myImages.Count - 1
'白を透明化
myImages(i).MakeTransparent(Color.White)
'初期位置は(0,0)
points.Add(New Point(0, 0))
Next

'この段階で3つの画像は座標(0,0)に重なって表示されます。

End Sub

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click

'▼対象の画像を決定
'「リストボックスで選択されているパスの画像」ということですが、
'ここでは[Ctrl]キーか、[Alt]キーかが押されているかいないかで判定しています。
'仕様に応じて対象の画像の決定方法は適宜変更してください。
Dim targetIndex As Integer

Select Case Control.ModifierKeys
Case Keys.Control
'Controlキーが押されている場合は0番目が対象
targetIndex = 0
Case Keys.Alt
'Altキーが押されている場合は1番目が対象
targetIndex = 1
Case Else
'何も押されていない場合は2番目が対象
targetIndex = 2
End Select

'対象の画像の座標を現在のマウスの座標にセット
points(targetIndex) = PictureBox1.PointToClient(System.Windows.Forms.Cursor.Position)

'※この段階では座標がセットされただけで、画像は描画していない。

'PictureBox1に再描画を指示
PictureBox1.Invalidate()

End Sub

Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint

'現在セットされている座標にそれぞれの画像を描画
For i = 0 To myImages.Count - 1
e.Graphics.DrawImage(myImages(i), points(i))
Next

'なお、再描画時にはそれまでの描画内容はすべてクリアされているので、
'以前に描画した画像を消すような処理は必要ない。

End Sub
End Class



ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

北海学園テスト対策 更新情報

北海学園テスト対策のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。