どうも!リョクちゃです。
だいぶ間が空いてしまいました。
初心に戻って、今回は約数を見つける関数を作成しアプリ化したので
載せておきます。
ちなみに前回はこちら、
目次
準備編
VisualStudio2019を使って、Windowsフォームアプリケーションを作成していきます。
最初の手順については、下記記事をご参照ください。
フォームの作成
以下のようなフォームを作成します。
①~⑤のコントロールについては以下の表のとおりです。
No | コントロール | 名前 |
---|---|---|
1 | Label | Label1 |
2 | TextBox | TextBox1 |
3 | Button | Button1 |
4 | Label | Label2 |
5 | TextBox | TextBox2 |
各コントロールのフォントは、メイリオの16ptを設定しています。
実行環境
筆者の実行環境は、
- VisualStudio2019
- Windows 10 64bit
- .Net Framework 4.5.1
になります。
※ Windows7 8 8.1でも動作はできますが、画面デザインの表示が変わるかもしれません。
アプリケーションの目的
「約数を算出」ボタンを押すことで、「約数を見つける数字」に入力された数字(自然数)の
約数を算出し、結果を「約数は」に表示するプログラムの作成を目的とします。
プログラム編
約数とは
ある整数を割りきることができる整数を約数といいました。
これは小学校ぐらいで習う最初の難関だったと記憶しています。
まず約数を算出する割り算の過程が、算数を学びたての頃は苦戦に感じ、
思うように答えを導き出せなかったのを覚えています。。。
今回は、そんな約数をプログラムで算出します。
約数の算出は関数として定義する
約数は、1~対象の数字までで割り算をしていき、
処理を繰り返していく過程で対象の数字を割り切れることができる数については、
約数とみなせます。
この一連の処理を今回は関数として定義していきます。
コードを書くと以下のような形になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
''' <summary> ''' 約数を見つける関数 ''' </summary> ''' <param name="target"></param> ''' <returns></returns> Private Function FindYaksu(ByVal target As Integer) As List(Of Integer) Dim lstRec As New List(Of Integer) For i As Integer = 1 To target If target Mod i = 0 Then lstRec.Add(i) End If Next i Return lstRec End Function |
戻り値には、リスト型で返すようにしています。
これは複数ある場合、リストに収めておく方が後で利用しやすいのと、
単純にリストが好きだからです。
……最近やたらとリストを使いがち、ちゃんと考えて使わないと、です(笑)
関数ができてしまえば、あとは作成した関数を呼び出してあげて、
引数として渡した数の約数をリスト型に収めて結果を返してあげれば、
今回の目的達成です。
呼び出し方と、結果の表示方法については、
コードのみを貼っておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Public Class TestYaksu ''' <summary> ''' 約数を算出するボタンをクリック ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' テキストボックスに数字が入力されているかチェック If Me.TextBox1.Text <> "" Then ' 入力されていれば約数を見つけます。 Dim lstOutput As New List(Of Integer) lstOutput = FindYaksu(CInt(Me.TextBox1.Text)) Dim output As String = "" For Each number As String In lstOutput output &= CStr(number) & "," Next number ' 結果をテキストボックスへ表示 Me.TextBox2.Text = output End If End Sub End Class |
実行編
まとめ
約数とは、ある数を割り切ることができる(割った時に0になる)数を約数といいます。
ある決まった法則に基づいて算出できるような式などをプログラムで表すときには、
関数として定義しておくのが便利です。何度も同じコードを書いてしまうと、
修正に手間がかかったり、コードの見栄えが悪くなってしまいがちです。
今回のような場合などは、関数として定義する癖をつけておくとよいでしょう。
最後までご覧いただきありがとうございます。
・参考になりそうなオススメVB.Net書籍
VisualBasic2019パーフェクトマスター (Perfect Master)
現場ですぐに使える! Visual Basic 2019 逆引き大全 500の極意
かんたん Visual Basic [改訂2版] (プログラミングの教科書)
作って覚えるVisual Basic 2019 デスクトップアプリ入門