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 |