ここでは、GDLプログラミングでよく使うバブルソートの方法について記録しておきます。
下記の例ではlist
という配列を定義し、適当な整数を順番に格納しています。なお、DIM
コマンドは「これから定義する変数が配列(リスト)型である」と宣言するために使用します。配列を宣言する場合はlist[]
、行列を宣言する場合はlist[][]
と書きます。
マスタースクリプト
DIM list[], _sorted[] list[1]=2 list[2]=4 list[3]=1 list[4]=5 list[5]=3 _sorted = list FOR i = 1 TO VARDIM1(list) - 1 FOR j = 1 TO VARDIM1(list) - i IF _sorted[j] > _sorted[j+1] THEN temp = _sorted[j] _sorted[j] = _sorted[j+1] _sorted[j+1] = temp ENDIF NEXT j NEXT i print(list) print(_sorted)
ソートの確認
マスタースクリプト内で
print
コマンドを使用すると、指定した引数(例えばlist
やsorted
)の中身をダイアログボックスまたはレポートウィンドウに出力することができます。これにより、配列の内容や変数の値を確認でき、デバッグに役立ちます。実際に上記のコードで「スクリプトを確認」ボタンを押すと以下の画像のようなダイアログが出現します。見ての通り、ソート後のリストは昇順になっていることが分かります。
降順にしたい場合は、if文の不等号の向きを逆にすれば良いです。
このような処理を組み合わせることで、GDLをより発展させることができます。
listの中身 (ソート前) |
sortedの中身 (ソート後) |
なお、基本的なGDLの学習はこちらの教材がおすすめです!
GDLリファレンスがgraphisoftが用意していますが、初見では理解しづらいので、
簡単にまとめられたやさしく学ぶArchiCAD GDLプログラミングという本で基礎をしっかり学びましょう!
【お知らせ】
Xのアカウントを作成しましたので、ぜひフォロー頂けると嬉しいです。
アカウントはこちらから⇨https://x.com/BIM_arekore
世界の建設業従事者、BIM推進者と繋がりたいです。よろしくお願いします。
0 件のコメント:
コメントを投稿
何でも気軽にコメントください。