HSP3 プログラミングの基礎W
前へ 目次へ 次へ 

(3) 最大値・最小値

サンプル配列のデータから最大値を求める。

;最大値
    dim data, 10
    data = 4, 2, 8, 6, 1, 10, 7, 9, 3, 5
    mm = data(0)    ;初期値
    foreach data
        if mm < data(cnt) : mm = data(cnt)
    loop
    mes mm
    stop

実行配列内のデータの最大値である10が表示される。


サンプル配列のデータから最小値を求める。

;最小値
    dim data, 10
    data = 4, 2, 8, 6, 1, 10, 7, 9, 3, 5
    mm = data(0)    ;初期値
    foreach data
        if mm > data(cnt) : mm = data(cnt)
    loop
    mes mm
    stop

実行配列内のデータの最小値である1が表示される。

 変数mmに最大値・最小値が格納されるようにしている。変数mmの初期値としてdata(0)のデータを格納しているので、比較はdata(1)からすればよいが、「foreach data - 1」とは書けないのでサンプルのようにしている。
 どうしてもdata(1)から比較したいときは、「repeat length(data) - 1, 1」と書けばよい。(length(data)は配列の個数である10、したがって、length(data)-1は9となる。次の1はシステム変数cntの初期値である。)



最大値取得関数(max)、最小値取得関数(min)作成

 最大値(最小値)を求める関数に必要なデータは、配列に格納されたデータである。したがって、この関数が受け取るパラメータは「配列」である。

サンプル最大値を求める関数を作成する。

#module
#defcfunc max array dd
;
;max(配列)
;  返却値=int/double 最大値
;
    mm = dd(0)
    foreach dd
        if mm < dd(cnt) : mm = dd(cnt)
    loop
    return mm
#global
    dim data, 10
    data = 4, 2, 8, 6, 1, 10, 7, 9, 3, 5
    mes max(data)
    stop

実行配列内のデータの最大値である10が表示される。

試してみよう最小値を求める関数minを作成せよ。

 

前へ 目次へ 次へ 
2006  © Hiroshi Masuda 

 

 

inserted by FC2 system