2017年2月14日火曜日

[UWSC]配列の最大要素を返す関数 [自作関数]

初心者のプログラミング導入のため、UWSCという開発ソフトを使って作り上げる作業を実際にやって見せるカテゴリ。準備した自作関数や使い方、トラブルを記事にしていきます。得るものがあれば幸いです。
今回は、配列変数の最大要素を返す関数です。

記事の内容

○配列の最大要素を返す関数
戻値(int)=ubound(ARRY)

昔使った開発環境にあった関数で便利なものを移植。
配列変数A[0]、A[1]、A[2]、A[3]、A[4]、A[5]
とあった場合、その最大要素5を返す関数です。


配列の最大要素番号を返すubound関数

ubound()関数
1
2
3
FUNCTION ubound(d[])
    RESULT=LENGTH(d)-1
FEND
関数プログラム説明(○⇒:成り立つ場合、×⇒:成り立たない場合)
1,3行目1
3
FUNCTION ubound(d[])
FEND
ubound(d[])関数宣言:配列の最大要素番号を返す関数。
2行目2    RESULT=LENGTH(d)-1
通常は当たり前のようにメインプログラム中に、
for i=0 to LENGTH(A)-1
next
と書きますが、「あれ?この言語って1引くんだったっけ?」と分からなくなって調べるのが面倒なので関数にしておくと便利です。(この例で対応しているのは1次元配列だけです。)


呼び出し側からは、例えば、
呼び出し側プログラム
1
2
3
4
5
FOR i=0 TO ubound(A)
 IF A[i]=""
  //ここに色んな命令を書く
 ENDIF
NEXT
プログラム説明(○⇒:成り立つ場合、×⇒:成り立たない場合)
1,5行目1
5
FOR i=0 TO ubound(A)
NEXT
配列Aの全要素番号をスキャンするループ。
for 変数=数1 to 数2 step 数3
next
変数を数1から数3づつ大きくしていって数2までnext文との間をループする命令です。これは大抵の開発環境にあるループ命令です。数3を少数にしてループしていった結果ピッタリ数2にならない場合は…やってみてください。
2,4行目2
4
 IF A[i]=""
 ENDIF
配列Aのうち空白であるものを選び出す条件。

などとして、配列変数の中を順番に調べて判断したりするのに使います。



記事の内容

記事の内容は伝わりましたでしょうか。
○配列の最大要素を返す関数
戻値(int)=ubound(ARRY)


関数群のダウンロードはこちら
func_poku.uwsのコメント欄に呼び出し方が書いてあります。

【関連記事】[UWSC]日付時刻を文字列で返す関数
[UWSC]よく使う記号をグローバル宣言
[UWSC]タイムアウト関数
[UWSC]文字列操作あれこれ2


スポンサーリンク



ブログ村へ blogramのブログランキング

ポク太郎の「俺の説明聞いてくれ」 コンテンツ
ポク太郎の「俺の説明聞いてくれ」最キラー記事 コンピュータ(ハード/ソフト)
映画・ドラマ・芸能
変人のつぶやきとトラブル
ホームへ戻る


0 件のコメント:

コメントを投稿