tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
引数の中で最小の正値を返す関数(VB6.0)_2 ( No.2 )  [親スレッドへ]
日時: 2011/04/05 13:07
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[基本コード][][]                                               *
* キーワード:プロシージャ,複数の引数,配列処理,コードの簡略化,,                   *
***********************************************************************************

----------------------------------------------------------------
Re^2: pMin(i,j,k) - ダンボ  2004/09/07-16:39 No.333
----------------------------------------------------------------

kazuやん さん、どうもありがとうございます。美しいです。
ソートでないのだから「必要最小限の比較にしろ」というところでしょうか。

。。すみません。。前提が間違えていました。
(誤)  pMin        :引数の中で最小の値を返す。但し3つとも0なら0を返す
(正)  pMin        :引数の中で最小の正値を返す。但し3つとも0なら0を返す

kazuやん さんのコーディングを流用してこんなにしてみましたが、pMin(6,0,32)=0
となってしまいましたわ(理由は分かる)。もう少し自分で考えて見ますね。

Function pMin(i As Integer, j As Integer, k As Integer) As Integer
    Dim min         As Integer  '最小値
    '全て0の場合
    If (i Or j Or k) = 0 Then
        pMin = 0
    Else
        '最小値初期設定
        If i > 0 Then
            min = i
            If (min > j) Then min = j
            If (min > k) Then min = k
            pMin = min
        End If
        If j > 0 Then
            min = j
            If (min > i) Then min = i
            If (min > k) Then min = k
            pMin = min
        End If
        If k > 0 Then
            min = k
            If (min > j) Then min = j
            If (min > i) Then min = i
            pMin = min
        End If

End Function



 [スレッド一覧へ] [親スレッドへ]