§3 トレース(2) プログラミング実習
 back next 

☆ ☆ ☆ 課 題 ☆ ☆ ☆

【問題5】 次のプログラムについて設問に答えよ。変数は整数型で宣言されているものとする。

(1)
If a Mod 2 = 1 Then
    Label1.Text = ”奇数です”
Else
    Label1.Text = ”偶数です”
End If
@ a=234のときLabel1に何と表示されるか。 (  )
A a=345のときLabel1に何と表示されるか。 (  )

(2)
If x < 0 Then
    Label1.Text = ”@
Else
    Label1.Text = ”A
End If

設問 @、Aに入れるべき適切なメッセージを答えよ。

(3)
If 3 < m And m < 9 Then
    Label1.Text = ”yes”
Else
    Label1.Text = ”no”
End If

@ m=3のときLabel1に何と表示されるか。 (  )
A m=9のときLabel1に何と表示されるか。 (  )
B 「yes」と表示されるmの値(整数)をすべて答えよ。 (   )

(4)
If n < 10 Or n >= 15 Then
    Label1.Text = ”だめです”
Else
    Label1.Text = ”よろしい”
End If

@ n=3のときLabel1に何と表示されるか。 (  )
A n=9のときLabel1に何と表示されるか。 (  )
B 「よろしい」と表示されるnの値(整数)をすべて答えよ。
   (  )


【問題6】 次の設問に合うように、プログラムを完成せよ。変数は整数型で宣言されているものとする。

 
(1) 変数xが5を以上とき「OK」と表示する。
If  @   Then
    MsgBox(”OK”)
A

 
(2) 変数xが5以下のとき「OK」と表示する。
If  @   Then
    MsgBox(”OK”)
A

 
(3) 変数xが5を超えるとき「OK」と表示する。
If  @   Then
    MsgBox(”OK”)
A

 
(4) 変数xが5未満のとき「OK」と表示する。
If  @   Then
    MsgBox(”OK”)
A

 
(5) 変数xが6未満のとき「OK」、それ以外のとき「Error」と表示する。
If  @     Then
    MsgBox(”OK”)
A
    MsgBox(”Error”)
End If
 
If  B   Then
    MsgBox(”Error”)
C
    MsgBox(”OK”)
End If
(6) 変数aが負数、ゼロ、正数のいずれであるかを判定する。
If  @   Then
    MsgBox(”負数”)
ElseIf  A   Then
    MsgBox(”正数”)
Else
    MsgBox(”ゼロ”)
End If
 
If  B   Then
    MsgBox(”ゼロ”)
ElseIf  @   Then
    MsgBox(”負数”)
Else
    MsgBox(”正数”)
End If
(7) 変数mが3の倍数かどうか判定する。「3の倍数です」、「3の倍数ではない」と表示する。
If  @   Then
    MsgBox(”3の倍数です”)
Else
    MsgBox(”3の倍数ではない”)
End If
 ヒント  3の倍数は、3で割ったときの余りが0である。
 
(8) 変数pが整数2けたかどうか判定する。「2けたです」、「2けたではない」と表示する。
If  @   Then
    MsgBox(”2けたです”)
Else
    MsgBox(”2けたではない”)
End If
 
(9) 変数pが整数2けたかどうか判定する。「2けたです」、「2けたではない」と表示する。
If  @   Then
    MsgBox(”2けたではない”)
Else
    MsgBox(”2けたです”)
End If
 
(10) 1個100円の商品をn個買ったときの金額y円を求める。ただし、10個以上買ったときは1割引、20個以上買ったときは2割引とする。
If @   Then
    y = 100 * n * 0.8
A   n >= 10 Then
    y = 100 * n * 0.9
Else
    y = 100 * n
End If
 
 何個買っても「100*n」の計算は行うので、次のように書くこともできる。
y =  B
If  @   Then
    y = y * 0.8
ElseIf n >= 10 Then
    y = y * 0.9
End If
 1行減らすことができた。行数(命令)が減れば、それだけ処理速度は向上(アップ)する。
 こちらは誤りである。なぜか考えよう。
If n >= 10 Then
    y = 100 * n * 0.9   '1割引
ElseIf n >= 20 Then
    y = 100 * n * 0.8   '2割引
Else
    y = 100 * n
End If
 上のような順で判定をするには、次のように書く必要がある。
If n >= 10 And n <= 19 Then
    y = 100 * n * 0.9   '1割引
ElseIf n >= 20 Then
    y = 100 * n * 0.8   '2割引
Else
    y = 100 * n
End If


【課題4】 次のプログラムを作成せよ。 プロジェクト名:課題04
 フォームに次のオブジェクトを重ならないように配置する。配置場所、大きさは適当でよい。
  ・テキストボックス(TextBox1, TextBox2)  ・ボタン(Button1)  ・ラベル(Label1)
 Label1のTextプロパティには、「January, February, March, April」を設定する。

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim komoji As String
        komoji = TextBox1.Text.ToLower    '←ToLowerメソッドは大文字を小文字に
        If komoji = "january" Then
            TextBox2.Text = "1月"
        ElseIf komoji = "february" Then
            TextBox2.Text = "2月"
        ElseIf komoji = "march" Then
            TextBox2.Text = "3月"
        ElseIf komoji = "april" Then
            TextBox2.Text = "4月"
        Else
            TextBox2.Text = "その単語は知りません"
        End If
    End Sub

【設問】実行後、TextBox1にAPRILと入力して[Button1]ボタンをクリックしたときの結果を答えよ。  (  4月   )
【課題】12月まで処理できるようにプログラムを完成せよ。


【課題5】 次のプログラムを作成せよ。 プロジェクト名:課題05
 前の課題プログラムを参考にして、月の数(1〜12)を入力するとその月に対応する単語が表示されるプログラムを作成せよ。
 5=May, 6=June, 7=July, 8=August, 9=September,10=October, 11=November, 12=December


 back next 
 §3 トレース(2) Copyright©2008 Hiroshi Masuda 

 

 

inserted by FC2 system