Top >VB.NET 練習問題集

4. 繰り返し

練習問題 4 - 1

SPAMという単語を 10 回表示するプログラムを作成しなさい


For i = 1 To 10
    Console.Write("SPAM")
Next

練習問題 4 - 2

九九、三の段( 3 ~ 27 の 3 の倍数)を表示するプログラムを作成しなさい


For i = 1 To 9
    Console.Write("{0} ", 3 * i)
Next

練習問題 4 - 3

2の1乗から8乗までを計算し表示するプログラムを作成しなさい


Dim x As Integer = 1

For n = 1 To 8
    x *= 2
    Console.WriteLine("2の{0}乗={1}", n, x)
Next
または、
For n = 1 To 8
    Console.WriteLine("2の{0}乗={1}", n, 2 ^ n)
Next

練習問題 4 - 4

7の階乗を計算し、表示するプログラムを作成しなさい


Dim x As Integer = 1

For i = 2 To 7
    x *= i
Next

Console.WriteLine(x)

練習問題 4 - 5

整数を 10 回入力し、平均値を求めるプログラムを作成しなさい


Dim sum As Integer = 0

For i = 1 To 10
    Dim value = Integer.Parse(Console.ReadLine())
    sum += value
Next

Console.WriteLine("平均は{0}", sum / 10)

練習問題 4 - 6

整数、0 か 1を 10 回入力するこれを対戦成績と考え、0 を負け、1 を勝ちとして、勝ちの総数、負けの総数を表示するプログラムを作成しなさい


Dim wins As Integer = 0

For i = 1 To 10
    Dim result = Integer.Parse(Console.ReadLine())

    If result = 1 Then
        wins += 1
    End If
Next

Console.WriteLine("勝ち{0}回、負け{1}回", wins, 10 - wins)

練習問題 4 - 7

次のプログラムを作成しなさい

  • 巨人、阪神戦で毎回の得点を入力する(1回~9回)
  • 入力が終わったら、それぞれの得点とどちらが勝ったかを表示する

Dim giants As Integer = 0
Dim tigers As Integer = 0

For game = 1 To 9
    Console.Write("{0}回表、巨人の得点は?", game)
    giants += Integer.Parse(Console.ReadLine())

    Console.Write("{0}回裏、阪神の得点は?", game)
    tigers += Integer.Parse(Console.ReadLine())
Next

Console.WriteLine("巨人:{0}点, 阪神:{1}点", giants, tigers)

If giants > tigers Then
    Console.WriteLine("巨人の勝ち")
ElseIf giants < tigers Then
    Console.WriteLine("阪神の勝ち")
Else
    Console.WriteLine("引き分け")
End If

練習問題 4 - 8

自然数(正の整数)を 10 回入力し、最大値を求めるプログラムを作成しなさい


Dim max_value As Integer = 0

For i = 1 To 10
    Dim value = Integer.Parse(Console.ReadLine())

    If value > max_value Then
        max_value = value
    End If
Next

Console.WriteLine("最大値={0}", max_value)

練習問題 4 - 9

整数を 10 回入力し、最大値と最小値を求めるプログラムを作成しなさい


Dim max_value, min_value As Integer

For i = 1 To 10
    Dim value = Integer.Parse(Console.ReadLine())

    If i = 1 Then
        max_value = value
        min_value = value
    Else
        If value > max_value Then
            max_value = value
        End If

        If value < min_value Then
            min_value = value
        End If
    End If
Next

Console.WriteLine("最大値={0} 最小値={1}", max_value, min_value)
または、
Dim max_value, min_value As Integer

For i = 1 To 10
    Dim value = Integer.Parse(Console.ReadLine())

    If i = 1 Or value > max_value Then
        max_value = value
    End If

    If i = 1 Or value < min_value Then
        min_value = value
    End If
Next

Console.WriteLine("最大値={0} 最小値={1}", max_value, min_value)

練習問題 4 - 10

個数を示す数値を入力し、その個数分だけ*を表示するプログラムを作成しなさい


Dim count = Integer.Parse(Console.ReadLine())

For i = 1 To count
    Console.Write("*")
Next

While~End Whileを使用した解答例

Dim count = Integer.Parse(Console.ReadLine())

While count > 0
    Console.Write("*")
    count -= 1
End While

Do Until~Loopを使用した解答例

Dim count = Integer.Parse(Console.ReadLine())

Do Until count = 0
    Console.Write("*")
    count -= 1
Loop

Do While~Loopを使用した解答例

Dim count = Integer.Parse(Console.ReadLine())

Do While count > 0
    Console.Write("*")
    count -= 1
Loop

練習問題 4 - 11

個数を示す数値を入力し、その個数分だけ 0 ~ 9 の数字を表示するプログラムを作成しなさい数字は 0, 1, 2, 3, , の順に表示し、9 の次は 0 に戻るものとします


Dim out As Integer = 0

Dim count = Integer.Parse(Console.ReadLine())

For i = 1 To count
    Console.Write(out)
    out += 1

    If out > 9 Then
        out = 0
    End If
Next
別の解答例
Dim count = Integer.Parse(Console.ReadLine())

For i = 0 To count - 1
    Console.Write(i Mod 10)
Next

練習問題 4 - 12

数値を繰り返し入力し、合計が 100 を超えたら入力を止めて合計を表示するプログラムを作成しなさい


Dim sum As Integer = 0

While sum <= 100
    sum += Integer.Parse(Console.ReadLine())
End While

Console.WriteLine("合計は{0}", sum)

練習問題 4 - 13

ストライク・カウントを数えるプログラムを作成しなさい

  • 1球ごとにストライクかボールかを入力する
  • 3ストライクまたはフォアボールになったら入力を止め、ストライクとボールのカウントを表示する

Dim strike As Integer = 0
Dim ball As Integer = 0

While strike < 3 And ball < 4
    Console.Write("ストライク=1 or ボール=2 ?")

    Dim judge = Integer.Parse(Console.ReadLine())

    If judge = 1 Then
        strike += 1
    ElseIf judge = 2 Then
        ball += 1
    End If
End While

Console.WriteLine("{0}ストライク,{1}ボール", strike, ball)

練習問題 4 - 14

前の問題に次の修正を加えなさい

  • 1球ごとにストライク、ボール、ファウルの何れかを入力する(残念ながらヒットにはなりません)
  • ファウルの場合、2ストライクまではストライクにカウントするが、3ストライクにはならない
  • 3ストライクまたはフォアボールになったら入力を止め、ストライクとボールのカウントを表示する

Dim strike As Integer = 0
Dim ball As Integer = 0

While strike < 3 And ball < 4
    Console.Write("ストライク=1 or ボール=2 or ファウル=3?")

    Dim judge = Integer.Parse(Console.ReadLine())

    If judge = 1 Then
        strike += 1
    ElseIf judge = 2 Then
        ball += 1
    ElseIf judge = 3 And strike < 2 Then
        strike += 1
    End If
End While

Console.WriteLine("{0}ストライク,{1}ボール", strike, ball)

練習問題 4 - 15

2 以上の数値を入力し、素因数分解した結果を表示しなさい


Dim x As Integer = 2

Dim n = Integer.Parse(Console.ReadLine())

While n <> 1
    While (n Mod x) = 0
        Console.Write("{0} ", x)
        n \= x
    End While

    x += 1
End While

練習問題 4 - 16

入力された数が素数かどうかを判定するプログラムを作成しなさい


Dim isprime As Boolean = True

Dim value = Integer.Parse(Console.ReadLine())

For i As Integer = 2 To (value \ 2)
    If (value Mod i) = 0 Then
        isprime = False
        Exit For
    End If
Next

If isprime Then
    Console.WriteLine("{0}は素数です", value)
Else
    Console.WriteLine("{0}は素数ではありません", value)
End If

練習問題 4 - 17

九九表(一の段~九の段)を表示するプログラムを作成しなさい


For p = 1 To 9
    For q = 1 To 9
        Console.Write(" {0,2}", p * q)
    Next

    Console.WriteLine()
Next

練習問題 4 - 18

数値を繰り返して入力し、0 が入力されたら入力を止め、それまでの合計を表示するプログラムを作成しなさい


Dim sum As Integer = 0

While True
    Dim value = Integer.Parse(Console.ReadLine())

    If value = 0 Then
        Exit While
    End If

    sum += value
End While

Console.WriteLine("合計は{0}", sum)

練習問題 4 - 19

数値を繰り返して入力し、0 が入力されたら入力を止め、平均値を表示するプログラムを作成しなさい


Dim sum As Integer = 0
Dim count As Integer = 0

While True
    Dim value = Integer.Parse(Console.ReadLine())

    If value = 0 Then
        Exit While
    End If

    sum += value
    count += 1
End While

Console.WriteLine("平均は{0}", sum / count)

練習問題 4 - 20

サイズを示す数値を入力し、何等かの文字で例のような三角形を表示するプログラムを作成しなさい


Dim size = Integer.Parse(Console.ReadLine())

For i = 1 To size
    For j = 1 To i
        Console.Write("$")
    Next

    Console.WriteLine("")
Next

練習問題 4 - 21

サイズを示す数値を入力し、そのサイズの×印を何等かの文字で表示するプログラムを作成しなさい


Dim size = Integer.Parse(Console.ReadLine())

For i = 1 To size
    For j = 1 To size
        If i = j Or (size - i + 1) = j Then
            Console.Write("X")
        Else
            Console.Write(" ")
        End If
    Next

    Console.WriteLine()
Next

練習問題 4 - 22

フィボナッチ数列を表示するプログラムを作成しなさい

最初の2つの項を 0、1 とし、1000 まで( 1000 以下の項)を表示するものとします


Dim n1 As Integer = 0
Dim n2 As Integer = 1
Dim n3 As Integer = n1 + n2

While n1 <= 1000
    Console.Write("{0},", n1)

    n1 = n2
    n2 = n3
    n3 = n1 + n2
End While
PAPER BOWL
NEZEN