土曜日, 8月 22, 2020

Visual Studio Basic_09 
円の面積と円周の計算&色々な数式

プログラムを作るというのは数式を組み合わせるといっても過言ではありません。入力したデータをどのように加工して求める値を導くか?という流れですね。今回は円の面積と円周を入力した直径から計算するプログラムです。

VS Basicを起動したら[新しいプロジェクトの作成]にて新規プログラム作成モードに入ります。最初にTextBox1つ、Button3つ、Label6つを配置します。

プロパティーにて文字やパーツのサイズを調整して上の様なレイアウトとしました。次にソースです。その前に数式の確認です。

円の面積は[半径×半径×π(パイ)]
円周は[直径×π(パイ)

今回は入力するデータを直径値としました。IllustratorなどのDraw系ソフトで円を数値描画する際は直径値で処理しているので、それを考慮しました。よって考え方としては・・・

円の面積は数値変換したTextBox1の値(直径値)を半分にして半径とし[半径×半径×π(パイ)]の公式に当てはめる。
円の円周は数値変換したTextBox1の値(直径値)を[直径×π(パイ)]の公式に当てはめる。

なお、計算結果は小数第2桁までとすることにしました。そのため、一旦計算結果を変数に入れ、変数を小数第2桁表示させるという流れにします。桁指定はFormatを利用します。

Format(変数, "0.00")

ということで[計算]ボタンをダブルクリックして以下のソースを記述します。

「-----------------」は区切り線なので記述の必要はありません。
青字は自動入力部分で修正の必要はありません。
黒字が入力部分です。
赤字はコメント文なので記述の必要はありません。

-----------------
 Public Class Form1
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        ' CircleAria, CircumferenceをDecimal変数宣言
        ' TextBox1に円の直径を入力。
        ' 円の面積は数値変換したTextBox1を半分にして半径とし、
        ' 半径掛ける半径にPI(3.14)を掛けてCircleAriaに入れる。
        ' CircleAriaの値をLabel4.Textに小数第2桁までの値で表示
        ' 円の円周は数値変換したTextBox1にPI(3.14)を掛けてCircumferenceに入れる。
        ' Circumferenceの値をLabel5.Textに小数第2桁までの値で表示。
        Dim CircleAria, Circumference As Decimal
        CircleAria = (Val(TextBox1.Text) /2) *(Val(TextBox1.Text) /2) * Math.PI
        Circumference = Val(TextBox1.Text)*Math.PI
        Label4.Text = Format(CircleAria, "0.00")
        Label5.Text = Format(Circumference, "0.00")
    End Sub
End Class
-----------------

続けて[C]ボタンをダブルクリックして以下のソースを記述します。
TextBox1のリセット(クリア)
-----------------
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        TextBox1.ResetText()
    End Sub
-----------------

更に[AC]ボタンをダブルクリックして以下のソースを記述します。
TextBox1、Label4、Label5のリセット(クリア)
-----------------
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        TextBox1.ResetText()
        Label4.ResetText()
        Label5.ResetText()
    End Sub
-----------------

最後にパレットの[Form1]をプロパティーの[font>Text]をForm1から[Circle calculator ver1.0]に変更します。

記述が済んだらデバッグを実行して問題が出なければ完成です。

最終的なソースは以下の様になりました。

-----------------
 Public Class Form1
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        ' CircleAria, CircumferenceをDecimal変数宣言
        ' TextBox1に円の直径を入力。
        ' 円の面積は数値変換したTextBox1を半分にして半径とし、
        ' 半径掛ける半径にPI(3.14)を掛けてCircleAriaに入れる。
        ' CircleAriaの値をLabel4.Textに小数第2桁までの値で表示
        ' 円の円周は数値変換したTextBox1にPI(3.14)を掛けてCircumferenceに入れる。
        ' Circumferenceの値をLabel5.Textに小数第2桁までの値で表示。
        Dim CircleAria, Circumference As Decimal
        CircleAria = (Val(TextBox1.Text) /2) *(Val(TextBox1.Text) /2) * Math.PI
        Circumference = Val(TextBox1.Text)*Math.PI
        Label4.Text = Format(CircleAria, "0.00")
        Label5.Text = Format(Circumference, "0.00")
    End Sub
-----------------
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        TextBox1.ResetText()
    End Sub
-----------------
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        TextBox1.ResetText()
        Label4.ResetText()
        Label5.ResetText()
    End Sub
End Class
-----------------

その他の数式としては以下が覚えておくと便利な数式です。

関数関数名関数の意味
絶対値Math.Abs(x)xの絶対値
余弦Math.Cos(x)xのcos値[radian]
指数Math.Exp(x)eのx乗の値
対数Math.Log(x)自然対数logの値
四捨五入Math.Round(x)xの小数点以下を四捨五入
切り上げMath.Ceiling(x) xの小数点以下を切り上げ
切り下げMath.Floor(x)xの小数点以下を切り下げ
正負符号 Math.Sign(x)xの値ら正・負・零を1,-1,0で与える
正弦Math.Sin(x)xのsin値[radian]
平方根Math.Sqrt(x)√xの値、xは正(x>0)
正接Math.Tan(x)xのtan値[radian]
※[radian]xはラジアン(角度の単位)で与える

Visual Studio Basic 2019