最大値を求める関数 [VB]

VB2012-2017

簡単に最大値を求める

多くの数値、たとえば配列に格納されている数値から最大値を求める簡潔なプログラムを勉強します。

通常は、数値の先頭から順番に大小を比較し、その時点の最大値と次の数値を比較して、最大値を探すプログラムを見かけることがありますが、プログラムが長くなります。

Maxメソッドを選択

数値型配列の最大値を求めるときは、Max()メソッドが使えるので、最大値を簡単に求めることができます。

たとえば、Integer型の配列kakakuがあれば、kakaku.m と入力すれば、Maxメソッド(関数)を選択できるのがわかります。

また、最小値を求めるMinメソッドも選択できるので、最小値も簡単に求めることができます。

最小値を求めるMinメソッド はこちら

Maxメソッドを使ったサンプルプログラム

整数(Integer型)数値群の中から、最大値を求めるサンプルプログラムを作成します。

Integer型の配列の最大値は、Maxメソッドを使って求めることができるので、とてもシンプルなプログラムになります。

最大値をMsgBoxに表示します。

Module Module1

  Sub Main()
     ' 宣言と初期値代入
     Dim kakaku() As Integer = {120,  55, -300, 168, 250, 98}
     Dim maxKakaku As Integer = 0

     ' 最大値を求める
     maxKakaku = kakaku.Max()
     MsgBox("最大値は" & maxKakaku & "です")
  End Sub

End Module

2数値から大きい数値を求める

Math.Maxメソッドを使うと、引数に指定した2つの数値のうち大きい方の数値を返します。

第1引数と第2引数は同じデータ型に揃えて指定します。

  Dim x As Integer = 12
  Dim y As Integer = 5
  Dim ans As Integer = 0

  ans = Math.Max(x, y)      ' 12

Math.Maxメソッドを使ったやさしいプログラムを作成します。

キーボードから入力した2整数の大きいほうを取得します。

Module Module1

  Sub Main()
      ' 変数の宣言
      Dim inStr As String = ""
      Dim inNum1 As Integer = 0
      Dim inNum2 As Integer = 0
      Dim ans As Integer = 0
      Do
          Console.WriteLine("endを入力すれば終了")
          ' キーボードから入力
          Console.WriteLine("1番目の整数を入力して下さい")
          inStr = Console.ReadLine()
          If inStr = "end" Then
              ' endを入力したら、Exit Doで、Loopを抜ける
              Exit Do
          End If
          ' 入力した文字列を数値に変換
          inNum1 = Single.Parse(inStr)
          Console.WriteLine("2番目の整数を入力して下さい")
          inStr = Console.ReadLine()
          ' 入力した文字列を数値に変換
          inNum2 = Single.Parse(inStr)
          ' Math.Maxを使って数値の大小を判定
          ans = Math.Max(inNum1, inNum2)
          Console.WriteLine("大きいほうは、" & ans)
          Console.WriteLine()
      Loop
  End Sub

End Module