第4講 If文の学習
第4話 If...Else...文の入れ子式による4段階ないし5段階評価

4段階解答例その1
Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
     '変数の宣言
     Dim a As Integer, b As Integer, c As Integer, d As Integer, f As Integer, w As Integer

     'TextBox1から値を取得
     a = TextBox1.Text
     b = TextBox2.Text
     c = TextBox3.Text
     d = TextBox4.Text
     f = TextBox5.Text 'eはすでに、
ByVal e As System.EventArgsと宣言されていて使えないのでfとなっている。

     '5教科合計を計算
     w = a + b + c + d + f

     '5教科合計を表示
     TextBox6.Text = w

     '合否の表示
     If w >= 300 Then
       TextBox7.Text = "合格"
     Else
       TextBox7.Text = "不合格"
     End If

     '講評の表示
     If w >= 450 Then
       TextBox8.Text = "超天才級"
     Else
       If w >= 380 Then
         TextBox8.Text = "天才級"
       Else
         If w >= 300 Then
           TextBox8.Text = "優秀です。"
         Else
           TextBox8.Text = "がんばりましょう"
         End If
       End If
     End If

   End Sub
End Class


[解説]
     If w >= 450 Then
       TextBox8.Text = "超天才級"
     Else
       If w >= 380 Then
         TextBox8.Text = "天才級"
       Else
         If w >= 300 Then
           TextBox8.Text = "優秀です。"
         Else
           TextBox8.Text = "がんばりましょう"
         End If
       End If
     End If         
今回もIf...Else...文について解説しておきましょう。
最初の

     If w >= 450 Then
       TextBox8.Text = "超天才級"

によって、450以上の場合にtextBox8に『超天才級』と表示されます。
次のElse文

     Else
       If w >= 380 Then
         TextBox8.Text = "天才級"
       Else
         If w >= 300 Then
           TextBox8.Text = "優秀です。"
         Else
           TextBox8.Text = "がんばりましょう"
         End If
       End If
     End If        

は450以上の否定で、450未満が対象になります。
すると、

       If w >= 380 Then
         TextBox8.Text = "天才級"

は、450未満で380以上が対象になります。
そして、次のElse文

       Else
         If w >= 300 Then
           TextBox8.Text = "優秀です。"
         Else
           TextBox8.Text = "がんばりましょう"
         End If
       End If

では、380以上の否定=380未満が対象になります。
ですから、

         If w >= 300 Then
           TextBox8.Text = "優秀です。"

は380未満で300以上が対象になります。
最後のElse文

         Else
           TextBox8.Text = "がんばりましょう"
         End If

は300以上の否定で300未満が対象になります。

4段階解答例その2(if文のみによる)
Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
     '変数の宣言
     Dim a As Integer, b As Integer, c As Integer, d As Integer, f As Integer, w As Integer

     'TextBox1から値を取得
     a = TextBox1.Text
     b = TextBox2.Text
     c = TextBox3.Text
     d = TextBox4.Text
     f = TextBox5.Text 'eはすでに、
ByVal e As System.EventArgsと宣言されていて使えないのでfとなっている。

     '5教科合計を計算
     w = a + b + c + d + f

     '5教科合計を表示
     TextBox6.Text = w

     '合否の表示
     If w >= 300 Then
       TextBox7.Text = "合格"
     Else
       TextBox7.Text = "不合格"
     End If

     '講評の表示
     If w >= 450 Then
       TextBox8.Text = "超天才級"
     End If
     If w < 450 And w >= 380 Then
       TextBox8.Text = "天才級"
     End If
     If w < 380 And w >= 300 Then
       TextBox8.Text ="優秀です。
     End If
     If w < 300 Then
       TextBox8.Text = "がんばりましょう"
     End If

   End Sub
End Class



5段階評価解答例その1
Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     '変数の宣言
     Dim a As Integer, b As Integer, c As Integer, d As Integer, f As Integer, w As Integer

     'TextBox1から値を取得
     a = TextBox1.Text
     b = TextBox2.Text
     c = TextBox3.Text
     d = TextBox4.Text
     f = TextBox5.Text 'eはすでに、ByVal e As System.EventArgsと宣言されていて使えないのでfとなっている。

     '5教科合計を計算
     w = a + b + c + d + f

     '5教科合計を表示
     TextBox6.Text = w

     '合否の表示
     If w >= 300 Then
       TextBox7.Text = "合格"
     Else
       TextBox7.Text = "不合格"
     End If

     '講評の表示
     If w >= 450 Then
       TextBox8.Text = "超天才級"
     Else
       If w >= 380 Then
         TextBox8.Text = "天才級"
       Else
         If w >= 300 Then
           TextBox8.Text = "優秀です。"
         Else
           If w >= 280 Then
             TextBox8.Text = "残念、後一歩でした。"
           Else
             TextBox8.Text = "残念"
           End If
         End If
      End If
    End If



   End Sub
End Class

5段階解答例その2(If文のみによる)

Public Class Form1

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     '変数の宣言
     Dim a As Integer, b As Integer, c As Integer, d As Integer, f As Integer, w As Integer

     'TextBox1から値を取得
     a = TextBox1.Text
     b = TextBox2.Text
     c = TextBox3.Text
     d = TextBox4.Text
     f = TextBox5.Text 'eはすでに、ByVal e As System.EventArgsと宣言されていて使えないのでfとなっている。

     '5教科合計を計算
     w = a + b + c + d + f

     '5教科合計を表示
     TextBox6.Text = w

     '合否の表示
     If w >= 300 Then
       TextBox7.Text = "合格"
     Else
       TextBox7.Text = "不合格"
     End If

     '講評の表示
     If w >= 450 Then
       TextBox8.Text = "超天才級"
     End If
     If w < 450 And w >= 380 Then
       TextBox8.Text = "天才級"
     End If
     If w < 380 And w >= 300 Then
       TextBox8.Text ="優秀です。
     End If
     If w < 300And w >= 280 Then
       TextBox8.Text ="残念、後一歩でした。"
     End If
     If w < 280 Then
       TextBox8.Text = "残念"
     End If



   End Sub
End Class

では、次の課題です。
今回は手でいちいちデータを入れていますが、
実行ボタンを押すと自動的に5教科のデータも入って、
合計、合否判定、評価も出るように変更しましょう。
0以上100以下の整数をランダムに発生させるには、
a = Int(101 * Rnd())
とします。
Rndは1未満の小数をランダムに発生させるものです。すなわち、1未満の乱数の発生です。
それに101をかけることによって、101未満の実数を発生させます。
Int(*)は、*の小数部分を切り捨てて整数にする命令です。
したがって、 Int(101 * Rnd())は101未満の整数になります。



第3話へ 第5話へ

006


VC++講義第1部へ
vb講義へ
VB講義基礎へ

数学研究室に戻る