VB　問題

練習問題

## 今回の内容
* 今回はただただ問題を解いていって自分の考えたコードとネットの解答を貼りつけて行く感じです。
* 最後に使用した問題一覧のリンクを貼っておきます。
* 問題が練習5からなのは、個人的に練習4までは考えさせられるような内容がなかったため、省略しました。


##練習問題 5 - 1

```vbnet:個人解答,資料解答
Dim values(9) As Integer

For i = 0 To 9
    values(i) = Integer.Parse(Console.ReadLine())
Next

For i = 0 To 9
    Console.WriteLine(values(i) * 2)
Next
```

##練習問題 5 - 2
次のプログラムを作成しなさい。
*10 個の数値を入力する。
*入力された順番と逆の順番で 10 個の数値を表示する。

```vbnet:個人解答
Dim x(9) As Integer

For i = 0 To 9
    x(i) = Integer.Parse(Console.ReadLine)
Next

For i = 0 To 9
    Console.WriteLine(x(9 - i))
Next
```

```vbnet:資料解答
Dim values(9) As Integer

For i = 0 To 9
    values(i) = Integer.Parse(Console.ReadLine())
Next

For i = 9 To 0 Step -1
    Console.WriteLine(values(i))
Next
```
##練習問題 5 - 3
間違えて解答を先に読んでしまったため省略。

##練習問題 5 - 4
数値を繰り返して入力し、合計が 100 を超えた場合、または入力が 10 回行われた場合、入力を止め入力された数値をすべて表示するプログラムを作成しなさい。

```vbnet:個人解答
Dim sum As Integer

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

    If sum >= 100 Then
        i = 10
    End If
Next

Console.Write(vbLf & "合計：" & sum)
```

```vbnet:資料解答
Dim sum As Integer = 0
Dim count As Integer = 0
Dim values(9) As Integer

While count < 10 And sum <= 100
    values(count) = Integer.Parse(Console.ReadLine())
    sum += values(count)
    count += 1
End While

For i = 0 To count - 1
    Console.WriteLine(values(i))
Next
```

## 練習問題 5 - 5
次のコードに追加し、入力された数値を 16 桁の 2 進数で表示するプログラムを完成させなさい。

```vbnet:追加前
Dim binary(15) As Integer

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

For i = 15 To 0 Step -1
    binary(i) = value Mod 2
    value \= 2
Next

For i = 0 To 15
    Console.Write(binary(i))
Next
```

```vbnet:個人解答
Dim binary(15) As Integer
Dim value = Integer.Parse(Console.ReadLine())

For i = 0 To 15
    binary(15 - i) = value Mod 2
    value \= 2
Next


For i = 0 To 15
    Console.Write(binary(i))
Next
```

```vbnet:資料解答
Dim binary(15) As Integer

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

For i = 15 To 0 Step -1
    binary(i) = value Mod 2
    value \= 2
Next

For i = 0 To 15
    Console.Write(binary(i))
Next
```
## 練習問題 5 - 6
次のコードに追加し、九九表を表示するプログラムを完成させなさい。

```vbnet:追加前
Dim kuku(8, 8) As Integer

' 配列 kuku に値を代入する

For i = 0 To 8
    For j = 0 To 8
        Console.Write(" {0,2}", kuku(i, j))
    Next

    Console.WriteLine()
Next
```

```vbnet:個人解答,資料解答
Dim kuku(8, 8) As Integer

For i = 0 To 8
    For j = 0 To 8
        kuku(i, j) = (i + 1) * (j + 1)
    Next
Next

For i = 0 To 8
    For j = 0 To 8
        Console.Write(" {0,2}", kuku(i, j))
    Next

    Console.WriteLine()
Next
```

## 練習問題 5 - 7
１桁の数値（ 1 ～ 9 に限定）を２つ入力し、その積を表示するプログラムを作成しなさい。ただし、九九の計算結果が入った配列を予め作成して利用すること。（前問を参考に）

```vbnet:個人解答
Console.WriteLine("1つ目の数値を入力してください")
Dim x = Integer.Parse(Console.ReadLine)
Console.WriteLine("2つ目の数値を入力してください")
Dim y = Integer.Parse(Console.ReadLine)


Dim kuku(8, 8) As Integer

For i = 0 To 8
    For j = 0 To 8
        kuku(i, j) = (i + 1) * (j + 1)
    Next
Next


Console.Write("合計:{0,2}" & vbLf, kuku(x - 1, y - 1))
```

```vbnet:資料解答
Dim kuku(8, 8) As Integer

For i = 0 To 8
    For j = 0 To 8
        kuku(i, j) = (i + 1) * (j + 1)
    Next
Next

Dim p = Integer.Parse(Console.ReadLine())
Dim q = Integer.Parse(Console.ReadLine())

Console.WriteLine(kuku(p - 1, q - 1))
```

## 練習問題 5 - 8
整数を 10 回入力し、小さい順に並べ替えて表示するプログラムを作成しなさい。

```vbnet:個人解答
Dim x(10) As Integer
Dim y As Integer

For i = 1 To 10
    Console.WriteLine("{0}回目の数値を入力してください", i)
    x(i) = Console.ReadLine
Next

For i = 1 To 10
    For j = 1 To 9
        If x(j) > x(j + 1) Then
            y = x(j)
            x(j) = x(j + 1)
            x(j + 1) = y
        End If
    Next
Next

For i = 1 To 10
    Console.Write(x(i))
Next
```

```vbnet:資料解答
Dim values(9) As Integer

For i = 0 To 9
    values(i) = Integer.Parse(Console.ReadLine())
Next

For i = 0 To 9
    For j = i + 1 To 9
        If values(i) > values(j) Then
            Dim t = values(i)
            values(i) = values(j)
            values(j) = t
        End If
    Next
Next

For i = 0 To 9
    Console.Write("{0} ", values(i))
Next
```

> [問題資料サイト](http://kitako.tokyo/lib/VBExercise.aspx?id=5)

個人的にはすべて正常な動作をしている？と思うのでまずまず。
参考書もネットサイトも参考にしないで自力ですべてやったので３週間で少しは力がついてるかも！と思えました。

なにか問題点があれば教えていただけると助かります。